This patchset includes the per-cpu-pages stuff which Martin and I
have been working on. This is designed to:
- increase the probability of the page allocator returning a page
which is cache-warm on the calling CPU
- amortise zone->lock contention via work batching.
- provide the basis for a page reservation API, so we can guarantee
that some troublesome inside-spinlock allocations will succeed.
Mainly pte_chains and radix_tree_nodes (haven't implemented this yet).
I must say that based on a small amount of performance testing the
benefits of the cache warmness thing are disappointing. Maybe 1% if
you squint. Martin, could you please do a before-and-after on the
NUMAQ's, double check that it is actually doing the right thing?
And Anton, could you please test this, make sure that it fixes the
rmqueue() and __free_pages_ok() lock contention as effectively as
the old per-cpu-pages patch did? Thanks.
There is a reiserfs compilation problem at present.
Rick has a modified version of iostat. Please use that for extracting the
SARD info. Also the version at http://linux.inet.hr/ is reasonably uptodate.
New versions of procps are at http://surriel.com/procps/ - the version
from cygnus CVS works for me.
+module-fix.patch
Compile fix for current Linus BK diff (Ingo)
+might_sleep-2.patch
Additional might_sleep checks
+slab-fix.patch
Fix a kmem_cache_destroy problem
+hugetlb-doc.patch
hugetlbpage docco
+get_user_pages-PG_reserved.patch
Don't bump the refcount on PageReserved pages in get_user_pages()
+move_one_page_fix.patch
kmap_atomic atomicity fix
+zab-list_heads.patch
Initialise some uninitialised VMA list_heads
+batched-slab-asap.patch
Batch up the slab shrinking work.
+rmqueue_bulk.patch
+free_pages_bulk.patch
Multipage page allocation and freeing
+hot_cold_pages.patch
Per-cpu hot-n-cold page lists.
+readahead-cold-pages.patch
Select cold pages for reading into pagecache
+pagevec-hot-cold-hint.patch
Pages which are freed by page reclaim and truncate are probably
cache-cold. Don't pollute the cache-hot pool with them.
linus.patch
cset-1.622.1.14-to-1.651.txt.gz
module-fix.patch
compile fixes from Ingo
ide-high-1.patch
scsi_hack.patch
Fix block-highmem for scsi
ext3-dxdir.patch
ext3 htree
spin-lock-check.patch
spinlock/rwlock checking infrastructure
rd-cleanup.patch
Cleanup and fix the ramdisk driver (doesn't work right yet)
might_sleep-2.patch
more sleep-inside-spinlock checks
slab-fix.patch
slab: put the spare page on cachep->pages_free
hugetlb-doc.patch
hugetlbpage documentation
get_user_pages-PG_reserved.patch
Check for PageReserved pages in get_user_pages()
move_one_page_fix.patch
pte_highmem atomicity fix in move_one_page()
zab-list_heads.patch
vm_area_struct list_head initialisation
remove-gfp_nfs.patch
remove GFP_NFS
buddyinfo.patch
Add /proc/buddyinfo - stats on the free pages pool
free_area.patch
Remove struct free_area_struct and free_area_t, use `struct free_area'
per-node-kswapd.patch
Per-node kswapd instance
topology-api.patch
Simple topology API
topology_fixes.patch
topology-api cleanups
write-deadlock.patch
Fix the generic_file_write-from-same-mmapped-page deadlock
radix_tree_gang_lookup.patch
radix tree gang lookup
truncate_inode_pages.patch
truncate/invalidate_inode_pages rewrite
proc_vmstat.patch
Move the vm accounting out of /proc/stat
kswapd-reclaim-stats.patch
Add kswapd_steal to /proc/vmstat
iowait.patch
I/O wait statistics
sard.patch
SARD disk accounting
dio-bio-add-page.patch
Use bio_add_page() in direct-io.c
tcp-wakeups.patch
Use fast wakeups in TCP/IPV4
swapoff-deadlock.patch
Fix a tmpfs swapoff deadlock
dirty-and-uptodate.patch
page state cleanup
shmem_rename.patch
shmem_rename() directory link count fix
dirent-size.patch
tmpfs: show a non-zero size for directories
tmpfs-trivia.patch
tmpfs: small fixlets
per-zone-vm.patch
separate the kswapd and direct reclaim code paths
swsusp-feature.patch
add shrink_all_memory() for swsusp
remove-page-virtual.patch
remove page->virtual for !WANT_PAGE_VIRTUAL
dirty-memory-clamp.patch
sterner dirty-memory clamping
mempool-wakeup-fix.patch
Fix for stuck tasks in mempool_alloc()
remove-write_mapping_buffers.patch
Remove write_mapping_buffers
buffer_boundary-scheduling.patch
IO schduling for indirect blocks
ll_rw_block-cleanup.patch
cleanup ll_rw_block()
lseek-ext2_readdir.patch
remove lock_kernel() from ext2_readdir()
discontig-no-contig_page_data.patch
undefine contif_page_data for discontigmem
per-node-zone_normal.patch
ia32 NUMA: per-node ZONE_NORMAL
alloc_pages_node-cleanup.patch
alloc_pages_node cleanup
batched-slab-asap.patch
batched slab shrinking
akpm-deadline.patch
deadline scheduler tweaks
rmqueue_bulk.patch
bulk page allocator
free_pages_bulk.patch
Bulk page freeing function
hot_cold_pages.patch
Hot/Cold pages and zone->lock amortisation
EDEC
Hot/Cold pages and zone->lock amortisation
readahead-cold-pages.patch
Use cache-cold pages for pagecache reads.
pagevec-hot-cold-hint.patch
hot/cold hints for truncate and page reclaim
read_barrier_depends.patch
extended barrier primitives
rcu_ltimer.patch
RCU core
dcache_rcu.patch
Use RCU for dcache
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/