2002-09-22 05:25:03

by Andrew Morton

[permalink] [raw]
Subject: 2.5.37-mm1


url: http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.37/2.5.37-mm1/

Reminder: it breaks top(1) and vmstat(1). Updates to these tools
are at http://surriel.com/procps/

+ide-high-1.patch

Fix block-highmem for IDE. From Jens.

+ide-block-fix-1.patch

Fix some boot-time hang which I had. From Jens.

-writeback-control.patch
-free_area_init-cleanup.patch
-alloc_pages-cleanup.patch
-statm_pgd_range-sucks.patch
-remove-sync_thresh.patch
-vm-mapping-fix.patch
-taka-writev.patch
-writev-fix.patch
-pf_nowarn.patch
-misc.patch
-release_pages-speedup.patch
-highmem-huge-tlb.patch

Merged

+might_sleep.patch

Debug patch to catch people calling things like kmalloc(__GFP_WAIT),
down(), etc from inside spinlocks. This is a much stronger test than
the one in schedule(). It's really only effective with CONFIG_PREEMPT=y.

Causes a storm of complaints and stack backtraces at boot due to
drivers/ide/ide-probe.c:init_irq() calling lots of things which it
shouldn't under ide_lock. It will find other bugs.

+set_page_dirty-locking-fix.patch

We don't need to hold mapping->private_lock while moving the page
onto its mapping's dirty_pages list.

+swsusp-feature.patch

Feature for software suspend to force page reclaim. Doesn't work right.

+adaptec-fix.patch

Fix the lockup which happens each time the aic7xxx driver encounters
an IO error.

+remove-page-virtual.patch

Remove page->virtual, hash for it.

+dirty-memory-clamp.patch

Kill off the secret benchmarking feature which allowed the dirty memory
threshold to be exceeded when running dbench. Makes the kernel really
strict about limiting the amount of dirty memory and should make the
buffer_head stripping code more effective.

+mempool-wakeup-fix.patch

Fix a task lockup which can happen in mempool_alloc() when the number
of sleeping tasks exceeds the size of the mempool.

+remove-write_mapping_buffers.patch

Remove the write_mapping_buffers() function. It didn't work out.

+buffer_boundary-scheduling.patch

Use the buffer_boundary() block-mapping hint for scheduling of IO
against indirect blocks. This _does_ work out. Large-file writeback
is now smooth and seekless.

+ll_rw_block-cleanup.patch

Clean up the ll_rw_block() function.

+lseek-ext2_readdir.patch

Remove the lock_kernel() in ext2_readdir(). I'm fairly sure that it's
superfluous, and it was being irritating.

+discontig-no-contig_page_data.patch

Make sure that contig_page_data is undefined on discontigmem builds.

+per-node-zone_normal.patch

Make the normal zone per-node rather than global on the NUMAQ's.

+alloc_pages_node-cleanup.patch

Clean up alloc_pages_node()

+read_barrier_depends.patch
+rcu_ltimer.patch
+dcache_rcu.patch

The dcache RCU code.

I do not intend to send this on to Linus. It is not my area and I
do not understand the code.

But a 15% hit in specweb99 on an 8-way is sigificant and no other
solution has presented itself. So this way, this code gets some extra
testing. Plus clearing away this problem helps us to identify other
bottlenecks.

I shall keep these patches ticking over as a general service to the
people who are interested in, and working on 2.5 performance.


No real progress has been made on the writer-starves-reader problem
which is impacting the `contest' io_fullload test. This is a severe
problem - a streaming write is decreasing read performance from the
same disk by a factor of 4000. Working on it.




linus.patch
cset-1.565.1.13-to-1.565.6.1.txt.gz

ide-high-1.patch

ide-block-fix-1.patch

scsi_hack.patch
Fix block-highmem for scsi

ext3-htree.patch
Indexed directories for ext3

spin-lock-check.patch
spinlock/rwlock checking infrastructure

rd-cleanup.patch
Cleanup and fix the ramdisk driver (doesn't work right yet)

might_sleep.patch
debug code to detect might-sleep-inside-spinlock bugs

queue-congestion.patch
Infrastructure for communicating request queue congestion to the VM

nonblocking-ext2-preread.patch
avoid ext2 inode prereads if the queue is congested

nonblocking-pdflush.patch
non-blocking writeback infrastructure, use it for pdflush

nonblocking-vm.patch
Non-blocking page reclaim

set_page_dirty-locking-fix.patch
don't call __mark_inode_dirty under spinlock

prepare_to_wait.patch
prepare_to_wait/finish_wait: new sleep/wakeup API

vm-wakeups.patch
Use the faster wakeups in the VM and block layers

sync-helper.patch
Speed up sys_sync() against multiple spindles

slabasap.patch
Early and smarter shrinking of slabs

write-deadlock.patch
Fix the generic_file_write-from-same-mmapped-page deadlock

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

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

remove-gfp_nfs.patch
remove GFP_NFS

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

adaptec-fix.patch
partial fix for aic7xxx error recovery

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

read_barrier_depends.patch
extended barrier primitives

rcu_ltimer.patch
RCU core

dcache_rcu.patch
Use RCU for dcache


2002-09-22 06:24:02

by Robert Love

[permalink] [raw]
Subject: Re: 2.5.37-mm1

On Sun, 2002-09-22 at 01:30, Andrew Morton wrote:

> Reminder: it breaks top(1) and vmstat(1). Updates to these tools
> are at http://surriel.com/procps/

FYI, for testers: I have a tarball and RPM available of CVS as of
yesterday, at:

http://tech9.net/rml/procps/

Rik and I have both been merging some neat code; take a look.

Robert Love



2002-09-22 07:52:43

by Robert Love

[permalink] [raw]
Subject: Re: 2.5.37-mm1

On Sun, 2002-09-22 at 02:29, Robert Love wrote:

> FYI, for testers: I have a tarball and RPM available of CVS as of
> yesterday, at:
>
> http://tech9.net/rml/procps/
>
> Rik and I have both been merging some neat code; take a look.

Updated: some fixes for 2.5 users, care of Andrew Morton... plus a dump
of tonight's CVS.

I feel like having some pizza.

Robert Love