. Various fixes to various things.
. Spent some time tuning up 2.5's StupidSwapStorm throughput. It's
on par with 2.4 for single-threaded things, but not for multiple
processes.
This is because 2.4's virtual scan allows individual processes to
hammer all the others into swap and to make lots of progress then
exit. In the 2.5 VM all processes make equal progress and just
thrash each other to bits.
This is an innate useful side-effect of the virtual scan, although
it may have significant failure modes. The 2.5 VM would need an
explicit load control algorithm if we care about such workloads.
. Included a patch to fix the inodes-pinned-by-highmem-pagecache
problem. I'm not 100% happy with this yet - in some tests the
VM is reclaiming tons of inodes but slab memory isn't decreasing
because of slab fragmentation. Probably we need to take the
overall slab occupancy into account there.
But that's a performance thing, not a stability thing.
. Uploaded patch-scripts-0.4 to
http://www.zip.com.au/~akpm/linux/patches/patch-scripts-0.4/
This contains some new commands from Stephen Cameron and myself:
export_patch, import_patch, tag-series
They are described in docco.txt.
Since 2.5.44-mm5:
+set_page_dirty-pf_memalloc.patch
Fix the indirect-blocks-never-get-written bug
-deferred-lru-add-fix.patch
Junk. Dropped.
+blkdev_get_block-fix.patch
Fix premature -EIO from blkdev_get_block.
+radix-tree-full-search.patch
Fix the last bug in radix_tree_gang_lookup()
+lru_add_active.patch
+pages-on-the-right-list.patch
+swapin_readahead-lru_drain.patch
+swapcache-pages-inuse.patch
+larger-page_cluster.patch
Swap stuff
+invalidate_inode_pages-race.patch
More paranoid locking around invalidate_inode_pages()
+inode-highmem-balance.patch
Pagecache takedown for icache
+display-ht-in-proc.patch
Display HT info in /proc/cpuinfo
+ipc-mempool.patch
Use a mempool to back the objects for freeing IPC things. Ongoing
saga.
All 118 patches:
set_page_dirty-pf_memalloc.patch
Fix: dirty blockdev pages can get stuck on ->clean_pages
rcu-idle-fix.patch
RCU idle detection fix
read-barrier-depends.patch
read_barrier_depends fix
ide-warnings.patch
Fix some IDE compile warnings
dmi-warning.patch
fix a compile warning in dmi_scan.c
blkdev_get_block-fix.patch
Fix i_blkbits/bd_block_size inconsistency
scsi-reboot-fix.patch
kgdb.patch
misc.patch
misc fixes
ramfs-aops.patch
Move ramfs address_space ops into libfs
ramfs-prepare-write-speedup.patch
correctness fixes in libfs address_space ops
pipe-fix.patch
use correct wakeups in fs/pipe.c
dio-submit-fix.patch
rework direct-io for bio_add_page
dio-fine-alignment.patch
Allow O_DIRECT to use 512-byte alignment
file_ra_state_init.patch
Add a function to initialise file readahead state
less-unlikelies.patch
reduced buslocked traffic in the page allocator
radix-tree-full-search.patch
radix_tree_gang_lookup bugfix
running-iowait.patch
expose nr_running and nr_iowait task counts in /proc
intel-user-copy-taka.patch
Faster copy_*_user for Intel ia32 CPUs
shrink_slab-overflow.patch
Avoid 32-bit math overflows in the slab shrinking code
uaccess-uninline.patch
ingo-oom-kill.patch
oom-killer changes for threaded apps
unbloat-pid.patch
Reduce RAM use in kernel/pid.c
per-cpu-ratelimits.patch
per-cpu-warning.patch
Fix per-cpu compile warnings on UP
cpuup-notifiers.patch
extended cpu hotplug notifiers
per-cpu-02-rcu.patch
cpu_possible rcu per_cpu data
per-cpu-03-timer.patch
cpu_possible timer percpu data
per-cpu-04-tasklet.patch
cpu_possible tasklet percpu data
per-cpu-05-bh.patch
cpu_possible bh_accounting
export-per-cpu-symbol.patch
create EXPORT_PER_CPU_SYMBOL
per-cpu-page_state.patch
add_timer_on.patch
add_timer_on(): function to start a timer on a particular CPU
slab-split-01-rename.patch
slab cleanup: rename static functions
slab-split-02-SMP.patch
slab: enable the cpu arrays on uniprocessor
slab-split-03-tail.patch
slab: reduced internal fragmentation
slab-split-04-drain.patch
slab: take the spinlock in the drain function.
slab-split-05-name.patch
slab: remove spaces from /proc identifiers
slab-split-06-mand-cpuarray.patch
slab: cleanups and speedups
slab-split-07-inline.patch
slab: uninline poisoning checks
slab-split-08-reap.patch
slab: reap timers
slab-timer.patch
slab-use-sem.patch
slab-cleanup.patch
Slab cleanup
slab-per-cpu.patch
Use CPU notifiers in slab
ingo-mmap-speedup.patch
Ingo's mmap speedup
mm-inlines.patch
remove some inlines from mm/*
o_streaming.patch
O_STREAMING support
lru_add_active.patch
Infrastructure for loading pages onto the active list
pages-on-the-right-list.patch
Get mapped pages onto the right list
swapin_readahead-lru_drain.patch
Drain the deferred lru-addition lists after swap readahead
swapcache-pages-inuse.patch
Exempt swapcache pages from use-once
larger-page_cluster.patch
Increase the default value of page_cluster
shmem_getpage-unlock_page.patch
tmpfs 1/9 shmem_getpage unlock_page
shmem_getpage-beyond-eof.patch
tmpfs 2/9 shmem_getpage beyond eof
shmem_getpage-reading-holes.patch
tmpfs 3/9 shmem_getpage reading holes
shmem-fs-cleanup.patch
tmpfs 4/9 shmem fs cleanup
shmem_file_sendfile.patch
tmpfs 5/9 shmem_file_sendfile
shmem_file_write-update.patch
tmpfs 6/9 shmem_file_write update
shmem_getpage-flush_dcache.patch
tmpfs 7/9 shmem_getpage flush_dcache
loopable-tmpfs.patch
tmpfs 8/9 loopable tmpfs
event-II.patch
f_version/i_version cleanups
event-ext2.patch
f_version/i_version cleanups: ext2
mod_timer-race.patch
invalidate_inode_pages-race.patch
Better locking in invalidate_inode_pages()
inode-highmem-balance.patch
Fix the inodes-pinned-by-highmem-pagecache problem
blkdev-o_direct-short-read.patch
Fix O_DIRECT blockdev reads at end-of-device
orlov-allocator.patch
blk-queue-bounce.patch
inline blk_queue_bounce
lseek-ext2_readdir.patch
remove lock_kernel() from ext2_readdir()
decoded-wchan-output.patch
pre-decoded wchan output in /proc/pid/wchan
write-deadlock.patch
Fix the generic_file_write-from-same-mmapped-page deadlock
rd-cleanup.patch
Cleanup and fix the ramdisk driver (doesn't work right yet)
hugetlb-prefault.patch
hugetlbpages: factor out some code for hugetlbfs
hugetlb-header-split.patch
Move hugetlb declarations into their own header
htlb-update.patch
hugetlb fixes and cleanups
hugetlb-page-count.patch
fix hugetlb thinko
hugetlbfs.patch
hugetlbfs file system
hugetlb-shm.patch
hugetlbfs backing for SYSV shared memory
truncate-bkl.patch
don't take the BKL in inode_setattr
akpm-deadline.patch
deadline scheduler tweaks
pipe-speedup.patch
user faster wakeups in the pipe code
display-ht-in-proc.patch
hyper-threading information in /proc/cpuinfo
dcache_rcu.patch
Use RCU for dcache
mpopulate.patch
remap_file_pages
shmem_populate.patch
tmpfs 9/9 Ingo's shmem_populate
ext23-acl-xattr-01.patch
ext23-acl-xattr-02.patch
ext23-acl-xattr-03.patch
ext23-acl-xattr-04.patch
ext23-acl-xattr-05.patch
ext23-acl-xattr-06.patch
ext23-acl-xattr-07.patch
ext23-acl-xattr-08.patch
ext23-acl-xattr-09.patch
ext23-acl-xattr-10.patch
ext23-acl-xattr-11.patch
ext2-mount-fix.patch
acl-xattr-on.patch
turn on posix acls and extended attributes
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
readahead-cold-pages.patch
Use cache-cold pages for pagecache reads.
pagevec-hot-cold-hint.patch
hot/cold hints for truncate and page reclaim
page-reservation.patch
Page reservation API
wli-show_free_areas.patch
show_free_areas extensions
shpte-ng.patch
generic-nonlinear-mappings-D0.patch
generic nonlinear mappings
md-01-driverfs-core.patch
Core driverfs Topology
md-02-driverfs-topology.patch
i386 driverfs Topology
md-03-numa-meminfo.patch
NUMA meminfo for driverfs Topology
md-04-memblk_online_map.patch
create memblk_online_map
md-05-node_online_map.patch
create node_online_map
ipclock-2544mm4.patch
IPC lock contention reduction
ipc-akpm.patch
uninline things in ipc/
ipc-mempool.patch
Use a mempool to back rcu_ipc_free allocations
kstat.patch
Use per-cpu infrastructure for kernel_stat accounting
kstat-arch.patch
non-ia32 support for the per-cpu kernel_stat patch
-
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/