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
percpu: use dynamic percpu allocator as the default percpu allocator
2009-06-24 15:13:35 +09:00
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
block: remove some includings of blktrace_api.h
2009-06-16 11:19:36 +02:00
debug-pagealloc.c
dmapool.c
dmapools: protect page_list walk in show_pools()
2009-06-30 18:56:00 -07:00
fadvise.c
readahead: move max_sane_readahead() calls into force_page_cache_readahead()
2009-06-16 19:47:28 -07:00
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
block: remove some includings of blktrace_api.h
2009-06-16 11:19:36 +02:00
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
mm: consolidate init_mm definition
2009-06-16 19:47:28 -07:00
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
kmemcheck: add hooks for the page allocator
2009-06-15 15:48:33 +02:00
kmemleak-test.c
percpu: clean up percpu variable definitions
2009-06-24 15:13:48 +09:00
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
[S390] maccess: add weak attribute to probe_kernel_write
2009-06-12 10:27:37 +02:00
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
[ARM] Double check memmap is actually valid with a memmap has unexpected holes V2
2009-05-18 11:22:24 +01:00
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
mm: remove file argument from swap_readpage()
2009-06-16 19:47:44 -07:00
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
readahead: introduce context readahead algorithm
2009-06-16 19:47:30 -07:00
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
slab: remove duplicate kmem_cache_init_late() declarations
2009-08-06 11:36:25 +03:00
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
mm: pass mm to grab_swap_token
2009-06-23 12:50:05 -07:00
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
Merge branches 'slab/documentation', 'slab/fixes', 'slob/cleanups' and 'slub/fixes' into for-linus
2009-06-17 08:30:15 +03:00
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