Matt Mackall
d6269543ef
slob: reduce list scanning
...
The version of SLOB in -mm always scans its free list from the beginning,
which results in small allocations and free segments clustering at the
beginning of the list over time. This causes the average search to scan
over a large stretch at the beginning on each allocation.
By starting each page search where the last one left off, we evenly
distribute the allocations and greatly shorten the average search.
Without this patch, kernel compiles on a 1.5G machine take a large amount
of system time for list scanning. With this patch, compiles are within a
few seconds of performance of a SLAB kernel with no notable change in
system time.
Signed-off-by: Matt Mackall <mpm@selenic.com>
Cc: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-21 17:49:16 -07:00
..
allocpercpu.c
Slab allocators: Replace explicit zeroing with __GFP_ZERO
2007-07-17 10:23:02 -07:00
backing-dev.c
remove mm/backing-dev.c:congestion_wait_interruptible()
2007-07-16 09:05:52 -07:00
bootmem.c
[PATCH] remove EXPORT_UNUSED_SYMBOL'ed symbols
2006-12-07 08:39:44 -08:00
bounce.c
block: blk_max_pfn is somtimes wrong
2007-03-27 08:52:47 +02:00
fadvise.c
[PATCH] mm: change uses of f_{dentry,vfsmnt} to use f_path
2006-12-08 08:28:43 -08:00
filemap.c
readahead: split ondemand readahead interface into two functions
2007-07-19 10:04:44 -07:00
filemap.h
Remove all inclusions of <linux/config.h>
2006-10-04 03:38:54 -04:00
filemap_xip.c
mm: fault feedback #2
2007-07-19 10:04:41 -07:00
fremap.c
only allow nonlinear vmas for ram backed filesystems
2007-07-19 10:04:41 -07:00
highmem.c
Create the ZONE_MOVABLE zone
2007-07-17 10:22:59 -07:00
hugetlb.c
hugetlb: use set_compound_page_dtor
2007-07-19 10:04:50 -07:00
internal.h
Make page->private usable in compound pages
2007-05-07 12:12:53 -07:00
Kconfig
CONFIG_BOUNCE to avoid useless inclusion of bounce buffer logic
2007-07-17 10:23:02 -07:00
madvise.c
speed up madvise_need_mmap_write() usage
2007-07-16 09:05:36 -07:00
Makefile
CONFIG_BOUNCE to avoid useless inclusion of bounce buffer logic
2007-07-17 10:23:02 -07:00
memory.c
remove handle_mm_fault export
2007-07-21 17:49:16 -07:00
memory_hotplug.c
memory hotplug: fix unnecessary calling of init_currenty_empty_zone()
2007-06-01 08:18:29 -07:00
mempolicy.c
mm: Remove slab destructors from kmem_cache_create().
2007-07-20 10:11:58 +09:00
mempool.c
Slab allocators: Replace explicit zeroing with __GFP_ZERO
2007-07-17 10:23:02 -07:00
migrate.c
Add __GFP_MOVABLE for callers to flag allocations from high memory that may be migrated
2007-07-17 10:22:59 -07:00
mincore.c
[PATCH] mincore: vma crossing fix
2007-02-15 09:57:03 -08:00
mlock.c
do not limit locked memory when RLIMIT_MEMLOCK is RLIM_INFINITY
2007-07-16 09:05:37 -07:00
mmap.c
mm: variable length argument support
2007-07-19 10:04:45 -07:00
mmzone.c
[PATCH] remove EXPORT_UNUSED_SYMBOL'ed symbols
2006-12-07 08:39:44 -08:00
mprotect.c
mm: variable length argument support
2007-07-19 10:04:45 -07:00
mremap.c
mm: variable length argument support
2007-07-19 10:04:45 -07:00
msync.c
Detach sched.h from mm.h
2007-05-21 09:18:19 -07:00
nommu.c
nommu: vmalloc_32_user()/vm_insert_page() and symbol exports.
2007-07-21 17:49:14 -07:00
oom_kill.c
oom: fix constraint deadlock
2007-05-07 12:12:55 -07:00
page-writeback.c
move page writeback acounting out of macros
2007-07-19 10:04:52 -07:00
page_alloc.c
mm: fix memory hotplug oops from ZONE_MOVABLE changes.
2007-07-20 08:44:19 -07:00
page_io.c
[PATCH] swsusp: use block device offsets to identify swap locations
2006-12-07 08:39:27 -08:00
pdflush.c
Freezer: make kernel threads nonfreezable by default
2007-07-17 10:23:02 -07:00
prio_tree.c
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
quicklist.c
Quicklists for page table pages
2007-05-07 12:12:54 -07:00
readahead.c
readahead: sanify file_ra_state names
2007-07-19 10:04:44 -07:00
rmap.c
mm: Remove slab destructors from kmem_cache_create().
2007-07-20 10:11:58 +09:00
shmem.c
mm: Remove slab destructors from kmem_cache_create().
2007-07-20 10:11:58 +09:00
shmem_acl.c
[PATCH] Fix typos in mm/shmem_acl.c
2006-10-11 11:14:23 -07:00
slab.c
mm: Remove slab destructors from kmem_cache_create().
2007-07-20 10:11:58 +09:00
slob.c
slob: reduce list scanning
2007-07-21 17:49:16 -07:00
slub.c
mm: Remove slab destructors from kmem_cache_create().
2007-07-20 10:11:58 +09:00
sparse.c
Move three functions that are only needed for CONFIG_MEMORY_HOTPLUG
2007-06-08 17:23:33 -07:00
swap.c
Add suspend-related notifications for CPU hotplug
2007-05-09 12:30:56 -07:00
swap_state.c
Add __GFP_MOVABLE for callers to flag allocations from high memory that may be migrated
2007-07-17 10:22:59 -07:00
swapfile.c
vmscan: fix comments related to shrink_list()
2007-07-16 09:05:35 -07:00
thrash.c
Bug in mm/thrash.c function grab_swap_token()
2007-05-11 08:29:32 -07:00
tiny-shmem.c
[PATCH] mm/{,tiny-}shmem.c cleanups
2007-03-01 14:53:35 -08:00
truncate.c
mm: merge populate and nopage into fault (fixes nonlinear)
2007-07-19 10:04:41 -07:00
util.c
add kstrndup
2007-07-18 08:47:39 -07:00
vmalloc.c
lguest: export symbols for lguest as a module
2007-07-19 10:04:52 -07:00
vmscan.c
Freezer: make kernel threads nonfreezable by default
2007-07-17 10:23:02 -07:00
vmstat.c
Create the ZONE_MOVABLE zone
2007-07-17 10:22:59 -07:00