Bo Liu
32c5fc10e7
mm: remove incorrect swap_count() from try_to_unuse()
...
In try_to_unuse(), swcount is a local copy of *swap_map, including the
SWAP_HAS_CACHE bit; but a wrong comparison against swap_count(*swap_map),
which masks off the SWAP_HAS_CACHE bit, succeeded where it should fail.
That had the effect of resetting the mm from which to start searching
for the next swap page, to an irrelevant mm instead of to an mm in which
this swap page had been found: which may increase search time by ~20%.
But we're used to swapoff being slow, so never noticed the slowdown.
Remove that one spurious use of swap_count(): Bo Liu thought it merely
redundant, Hugh rewrote the description since it was measurably wrong.
Signed-off-by: Bo Liu <bo-liu@hotmail.com>
Signed-off-by: Hugh Dickins <hugh.dickins@tiscali.co.uk>
Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-11-02 09:44:41 -08:00
..
allocpercpu.c
backing-dev.c
backing-dev: ensure that a removed bdi no longer has super_block referencing it
2009-10-29 11:46:12 +01:00
bootmem.c
kmemleak: Do not report alloc_bootmem blocks as leaks
2009-08-27 14:29:17 +01:00
bounce.c
debug-pagealloc.c
dmapool.c
fadvise.c
failslab.c
filemap.c
const: mark struct vm_struct_operations
2009-09-27 11:39:25 -07:00
filemap_xip.c
const: mark struct vm_struct_operations
2009-09-27 11:39:25 -07:00
fremap.c
highmem.c
hugetlb.c
const: mark struct vm_struct_operations
2009-09-27 11:39:25 -07:00
hwpoison-inject.c
HWPOISON: Add simple debugfs interface to inject hwpoison on arbitary PFNs
2009-09-16 11:50:17 +02:00
init-mm.c
internal.h
mm: move highest_memmap_pfn
2009-09-22 07:17:41 -07:00
Kconfig
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
2009-10-29 08:59:06 -07:00
Kconfig.debug
trivial: improve help text for mm debug config options
2009-09-21 15:14:57 +02:00
kmemcheck.c
kmemleak-test.c
kmemleak.c
kmemleak: Check for NULL pointer returned by create_object()
2009-10-09 13:28:47 -07:00
ksm.c
ksm: more on default values
2009-10-08 07:36:38 -07:00
maccess.c
madvise.c
Merge branch 'hwpoison' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6
2009-09-24 07:53:22 -07:00
Makefile
procfs: disable per-task stack usage on NOMMU
2009-09-24 17:11:24 -07:00
memcontrol.c
memcg: reduce check for softlimit excess
2009-10-01 16:11:13 -07:00
memory-failure.c
hwpoison: fix oops on ksm pages
2009-10-29 07:39:24 -07:00
memory.c
Merge branch 'hwpoison-2.6.32' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6
2009-10-29 08:20:00 -07:00
memory_hotplug.c
walk system ram range
2009-09-23 07:39:41 -07:00
mempolicy.c
do_mbind(): fix memory leak
2009-10-29 07:39:29 -07:00
mempool.c
mm: remove broken 'kzalloc' mempool
2009-09-22 07:17:35 -07:00
migrate.c
Merge branch 'hwpoison' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6
2009-09-24 07:53:22 -07:00
mincore.c
mlock.c
mm: m(un)lock avoid ZERO_PAGE
2009-09-22 07:17:40 -07:00
mm_init.c
mmap.c
const: mark struct vm_struct_operations
2009-09-27 11:39:25 -07:00
mmu_context.c
mm: reduce atomic use on use_mm fast path
2009-09-22 07:17:42 -07:00
mmu_notifier.c
ksm: add mmu_notifier set_pte_at_notify()
2009-09-22 07:17:31 -07:00
mmzone.c
mprotect.c
perf: Do the big rename: Performance Counters -> Performance Events
2009-09-21 14:28:04 +02:00
mremap.c
truncate: new helpers
2009-09-24 08:41:47 -04:00
msync.c
nommu.c
NOMMU: Don't pass NULL pointers to fput() in do_mmap_pgoff()
2009-10-31 12:11:37 -07:00
oom_kill.c
oom: oom_kill doesn't kill vfork parent (or child)
2009-09-22 07:17:39 -07:00
page-writeback.c
writeback: account IO throttling wait as iowait
2009-10-09 12:40:42 +02:00
page_alloc.c
revert "mm: oom analysis: add buffer cache information to show_free_areas()"
2009-10-29 07:39:27 -07:00
page_cgroup.c
memory hotplug: alloc page from other node in memory online
2009-09-22 07:17:26 -07:00
page_io.c
page_isolation.c
pagewalk.c
percpu.c
percpu: allow pcpu_alloc() to be called with IRQs off
2009-10-29 00:25:59 +09:00
prio_tree.c
quicklist.c
cpumask: use new-style cpumask ops in mm/quicklist.
2009-09-24 09:34:52 +09:30
readahead.c
rmap.c
mm/rmap.c: fix comment
2009-10-01 16:11:12 -07:00
shmem.c
const: mark struct vm_struct_operations
2009-09-27 11:39:25 -07:00
shmem_acl.c
shmfs: use 'check_acl' instead of 'permission'
2009-09-08 11:08:46 -07:00
slab.c
mm: replace various uses of num_physpages by totalram_pages
2009-09-22 07:17:38 -07:00
slob.c
slub.c
mm: kmem_cache_create(): make it easier to catch NULL cache names
2009-09-22 07:17:33 -07:00
sparse-vmemmap.c
memory hotplug: alloc page from other node in memory online
2009-09-22 07:17:26 -07:00
sparse.c
memory hotplug: alloc page from other node in memory online
2009-09-22 07:17:26 -07:00
swap.c
mm: replace various uses of num_physpages by totalram_pages
2009-09-22 07:17:38 -07:00
swap_state.c
mm: add_to_swap_cache() does not return -EEXIST
2009-09-22 07:17:35 -07:00
swapfile.c
mm: remove incorrect swap_count() from try_to_unuse()
2009-11-02 09:44:41 -08:00
thrash.c
truncate.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
2009-09-24 08:32:11 -07:00
util.c
vmalloc.c
headers: remove sched.h from interrupt.h
2009-10-11 11:20:58 -07:00
vmscan.c
vmscan: order evictable rescue in LRU putback
2009-10-29 07:39:30 -07:00
vmstat.c
mm: vmstat: add isolate pages
2009-09-22 07:17:29 -07:00