diff options
author | Hugh Dickins <hugh@veritas.com> | 2005-09-03 15:54:37 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-09-05 00:05:41 -0700 |
commit | fb4f88dcabdc716c7c350e09cf4a38a419b007e1 (patch) | |
tree | 1a7806e3ac8bd45eded544763324c13c9f95c0e6 /mm/sparse.c | |
parent | 89d09a2c80ea6baafb559b86d545fada05e14ab5 (diff) | |
download | linux-3.10-fb4f88dcabdc716c7c350e09cf4a38a419b007e1.tar.gz linux-3.10-fb4f88dcabdc716c7c350e09cf4a38a419b007e1.tar.bz2 linux-3.10-fb4f88dcabdc716c7c350e09cf4a38a419b007e1.zip |
[PATCH] swap: get_swap_page drop swap_list_lock
Rewrite get_swap_page to allocate in just the same sequence as before, but
without holding swap_list_lock across its scan_swap_map. Decrement
nr_swap_pages and update swap_list.next in advance, while still holding
swap_list_lock. Skip full devices by testing highest_bit. Swapoff hold
swap_device_lock as well as swap_list_lock to clear SWP_WRITEOK. Reduces lock
contention when there are parallel swap devices of the same priority.
Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm/sparse.c')
0 files changed, 0 insertions, 0 deletions