2002-10-16 06:57:48

by Andrew Morton

[permalink] [raw]
Subject: 2.5.43-mm1


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

- The faster copy_*_user patch for Intel ia32 CPUs has been updated to
be a little faster.

- A few 2.5.43 compilation fixes are included.

- Ingo's get_unmapped_area() speedup is added

- Included the extended attributes and posix ACL code. This feature
is late, IMO. People who want this would be advised to help shake
it down.

- There are still a few problems with the shared pagetable code. One
of David's fixup patches didn't work out, so there are two followup
patches over in the experimental/ directory. They're for David - don't
use them.

- There's a little tweak here (no-reclaim-throttle.patch) which will
improve interactivity on small machines during heavy writeout.

But generally, for those people who have had problems with sluggishness
and swappiness in the 2.5 VM: 2.5.43 pretty much has it all. Please
give it a shot.

/proc/sys/vm/swappiness is available for playing with. Default value
is 60%, and 100 gives you the previous 2.5 behaviour.

Some things are slower - most notably things which involve simultaneous
reading from and writing to the same disk. Such workloads were traded
off against latency under write loads. I expect that with careful attention
some of this can be pulled back, but it's not a large regression. Maybe
up to 10-20%.


Since 2.5.42-mm3:

+mpparse-fix.patch
+md-fix.patch

2.5.43 compile fixes

-oprofile-25.patch

Merged

+disable-ppc-lbd.patch

Don't offer 64-bit sector_t on PPC32

+reiserfs-kmap-fix.patch

Fix a highmem oops in reiserfs_ioctl()

+refill-inactive-lockup-fix.patch

Fix a VM lockup under weird loads

+simple_rename-link-count.patch

Fix fs/libfs:simple_rename()

+static-filemap_sync.patch

Make filemap_sync() static, don't export to modules

-raid0-fix.patch
-fsync_buffers_list-fix.patch

Merged

-intel-user-copy.patch
+intel-user-copy-taka.patch

New, improved

+meminfo-numa.patch

Add /proc/meminfo.numa

+ingo-mmap-speedup.patch

Faster search heuristic for mmap()

+ingo-oom-kill.patch

Make the oom killer smarter for threaded apps

+vmalloc-overalloc.patch

Don't allocate an extra page in vmalloc()

+no-reclaim-throttle.patch

Don't make writers wait on writeback in page reclaim

+shpte-lock-ranking-fix.patch

shared pagetable locking fix

+handle-mm-fault-locking.patch
+mremap-shared-pagetable-fix.patch

shared pagetable fixes

-xattr-2.patch
-xattr-shrinker.patch
-xattr-3.patch
-xattr-4.patch

Obsoleted

+xattr-01-metablock-cache.patch
+xattr-02-ext3.patch
+xattr-03-ext2.patch
+fix-xattr.patch

Extended Attributes, and a fix thereto

+posix-acl-01-core.patch
+posix-acl-02-umask.patch
+posix-acl-03-user-api.patch
+posix-acl-04-ext3.patch

Posix ACLs

+acl-ext3-fix-tree.patch
+acl-ext3-inode.patch

Fixes to the above

+posix-acl-05-ext2.patch

Posix ACLs

+ext23-mount-options.patch

Clean up parsing of ext2/3 mount options

-rcu_ltimer.patch

Merged




mpparse-fix.patch

md-fix.patch

kgdb.patch

disable-ppc-lbd.patch
Disable CONFIG_LBD for ppc32

mod_timer-race.patch

net-loopback.patch
Disable second copy in the network loopback driver

reiserfs-kmap-fix.patch
reiserfs: remove stray kunmap

blkdev-o_direct-short-read.patch
Fix O_DIRECT blockdev reads at end-of-device

refill-inactive-lockup-fix.patch
Fix a refill_inactive_zone lockup

orlov-allocator.patch

blk-queue-bounce.patch
inline blk_queue_bounce

lseek-ext2_readdir.patch
remove lock_kernel() from ext2_readdir()

dio-fine-alignment.patch
Allow O_DIRECT to use 512-byte alignment

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)

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

hugetlb-prefault.patch
hugetlbpages: factor out some code for hugetlbfs

ramfs-aops.patch
Move ramfs address_space ops into libfs

hugetlb-header-split.patch
Move hugetlb declarations into their own header

hugetlbfs.patch
hugetlbfs file system

hugetlb-shm.patch
hugetlbfs backing for SYSV shared memory

page_reserved-accounting.patch
Global PageReserved accounting

use-page_reserved_accounting.patch
Use PG_reserved accounting in the VM

ramfs-prepare-write-speedup.patch
correctness fixes in libfs address_space ops

simple_rename-link-count.patch
Fix link count in simple_rename()

truncate-bkl.patch
don't take the BKL in inode_setattr

static-filemap_sync.patch
Make filemap_sync() static

akpm-deadline.patch
deadline scheduler tweaks

intel-user-copy-taka.patch
Faster copy_*_user for Intel ia32 CPUs

meminfo-numa.patch
NUMA: /proc/meminfo.numa

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

o_streaming.patch
O_STREAMING support

ingo-mmap-speedup.patch
Ingo's mmap speedup

ingo-oom-kill.patch
oom-killer changes for threaded apps

vmalloc-overalloc.patch
Avoid overallocating pages in vmalloc()

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

no-reclaim-throttle.patch
Don't wait on page writeout in page reclaim

fs-inlines.patch
Kill some inlining in fs/*

mm-inlines.patch
remove some inlines from mm/*

uninline-highmem.patch
uninline the highmem mapping functions

shpte.patch

shpte-lock-ranking-fix.patch
shared pte lock ranking fix

shmmap.patch
Proactively share page tables for shared memory

handle-mm-fault-locking.patch
handle_mm_fault locking fix

mremap-shared-pagetable-fix.patch
fix mremap for shared page tables

xattr-01-metablock-cache.patch
EA: meta block cache

xattr-02-ext3.patch
EA: ext3 support

xattr-03-ext2.patch
EA: ext2 support

fix-xattr.patch
EA: compile warning fix

posix-acl-01-core.patch
posixacl: core support

posix-acl-02-umask.patch
posixacl: umask support

posix-acl-03-user-api.patch
posixacl: user API

posix-acl-04-ext3.patch
posixacl: ext3 support

acl-ext3-fix-tree.patch

acl-ext3-inode.patch

posix-acl-05-ext2.patch
posixacl: ext2 support

ext23-mount-options.patch
ext2/3 mount option processing cleanup

read_barrier_depends.patch
extended barrier primitives

dcache_rcu.patch
Use RCU for dcache

mpopulate.patch
remap_file_pages


2002-10-16 07:15:40

by Maneesh Soni

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

Hello Andrew,

Few changes in dcache_rcu patch due to new intermezzo file system. Patch against
2.5.43-mm1

Regards,
Maneesh


diff -urN linux-2.5.43-mm1/fs/intermezzo/journal.c linux-2.5.43-mm1-dcache_rcu/fs/intermezzo/journal.c
--- linux-2.5.43-mm1/fs/intermezzo/journal.c Wed Oct 16 12:30:03 2002
+++ linux-2.5.43-mm1-dcache_rcu/fs/intermezzo/journal.c Wed Oct 16 12:26:47 2002
@@ -1518,7 +1518,7 @@
}

if (!dentry->d_inode || (dentry->d_inode->i_nlink == 0)
- || ((dentry->d_parent != dentry) && list_empty(&dentry->d_hash))) {
+ || ((dentry->d_parent != dentry) && d_unhashed(dentry))) {
EXIT;
return 0;
}
@@ -2129,7 +2129,7 @@
}

if (!dentry->d_inode || (dentry->d_inode->i_nlink == 0)
- || ((dentry->d_parent != dentry) && list_empty(&dentry->d_hash))) {
+ || ((dentry->d_parent != dentry) && d_unhashed(dentry))) {
EXIT;
return 0;
}
@@ -2391,7 +2391,7 @@
}

if (!dentry->d_inode || (dentry->d_inode->i_nlink == 0)
- || ((dentry->d_parent != dentry) && list_empty(&dentry->d_hash))) {
+ || ((dentry->d_parent != dentry) && d_unhashed(dentry))) {
EXIT;
return 0;
}



--
Maneesh Soni
IBM Linux Technology Center,
IBM India Software Lab, Bangalore.
Phone: +91-80-5044999 email: [email protected]
http://lse.sourceforge.net/

2002-10-16 11:09:55

by Matt Bernstein

[permalink] [raw]
Subject: oops (Re: 2.5.43-mm1)

My SMP highmem Athlon did the following (further details on request):

kernel BUG at arch/i386/mm/highmem.c:40!
invalid operand: 0000
autofs4 usbtest ohci-hcd r128 agpgart 3c59x af_packet iptable_filter ip_tables floppy mousedev hid usbcore rtc unix
CPU: 1
EIP: 0060:[<c011ca7a>] Not tainted
EFLAGS: 00010206
EIP is at kmap_atomic+0x4a/0x90
eax: c0004f34 ebx: fffcd000 ecx: c2117708 edx: 6d62d163
esi: 0000000f edi: 0000004c ebp: 00001000 esp: f5821ec8
ds: 0068 es: 0068 ss: 0068
Process crond (pid: 2353, threadinfo=f5820000 task=f7756040)
Stack: f5612400 00000000 c013cc8a c2117708 0000000f fffcd000 fffcb000 f74dd640
c0455edc c2117708 f5612400 40413000 40014000 c013cecf c0455edc f5612400
40013000 00001000 c0455edc 40013000 f5612404 40014000 c0455edc c013cf63
Call Trace:
[<c013cc8a>] zap_pte_range+0xaa/0x240
[<c013cecf>] zap_pmd_range+0xaf/0x100
[<c013cf63>] unmap_page_range+0x43/0x70
[<c0140b80>] unmap_region+0xf0/0x180
[<c0140efc>] do_munmap+0x17c/0x210
[<c0140fe9>] sys_munmap+0x59/0x80
[<c0109773>] syscall_call+0x7/0xb

Code: 0f 0b 28 00 64 a4 30 c0 2b 0d 8c 31 48 c0 c1 f9 03 69 c9 cd
<6>note: crond[2353] exited with preempt_count 4
Debug: sleeping function called from illegal context at include/linux/rwsem.h:44
Call Trace:
[<c01244a0>] profile_exit_task+0x20/0x60
[<c012817a>] do_exit+0x7a/0x320
[<c0268156>] unblank_screen+0x26/0x100
[<c010a930>] do_invalid_op+0x0/0x70
[<c010a7c8>] die+0xe8/0xf0
[<c010a997>] do_invalid_op+0x67/0x70
[<c011ca7a>] kmap_atomic+0x4a/0x90
[<c014d5cc>] buffered_rmqueue+0xcc/0x1e0
[<c0149ebf>] cache_free_debugcheck+0x12f/0x1b0
[<c0148f09>] __cache_free+0x39/0x80
[<c010a1b5>] error_code+0x2d/0x38
[<c011ca7a>] kmap_atomic+0x4a/0x90
[<c013cc8a>] zap_pte_range+0xaa/0x240
[<c013cecf>] zap_pmd_range+0xaf/0x100
[<c013cf63>] unmap_page_range+0x43/0x70
[<c0140b80>] unmap_region+0xf0/0x180
[<c0140efc>] do_munmap+0x17c/0x210
[<c0140fe9>] sys_munmap+0x59/0x80
[<c0109773>] syscall_call+0x7/0xb


2002-10-16 16:23:50

by Andrew Morton

[permalink] [raw]
Subject: Re: oops (Re: 2.5.43-mm1)

Matt Bernstein wrote:
>
> My SMP highmem Athlon did the following (further details on request):
>
> kernel BUG at arch/i386/mm/highmem.c:40!

Yup, thanks. I think we'll separate the shared pagetables patches
out for a little while.