http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.61/2.5.61-mm1/
. Jens has fixed the request queue aliasing problem and we are no longer
able to break the IO scheduler. This was preventing the OSDL team from
running dbt2 against recent kernels, so hopefully that is all fixed up now.
. The anticipatory scheduler is performing well. I've included that now.
. Also included the CFQ I/O scheduler. The kernel defaults to using the
deadline/anticipatory scheduler. Select CFQ by adding "elevator=cfq" to
the kernel command line. Do "dmesg|grep elevator" to see which one you
are using.
. There is an updated version of the reiserfs_file_write patch here. This
patch addresses CPU efficiency when performing appending writes (ie: the
usual sort).
To do this, it requires that userspace pass "large" amounts of data into
the write() system call. So the filesystem returns a value of 128k in the
stat.st_blksize field from the stat(2) system call. In the hope that some
applications are using that kernel-provided hint.
Turns out that some parts of KDE (kmail, at least) were indeed using this
hint, and it triggers a nasty bug in (at least) kmail: it is reading the
same 128k of the file again and again and again. It runs like a dog.
Ed Tomlinson upgraded his KDE/kmail version and this problem went away.
So that is something for reiserfs users to keep an eye on.
Changes since 2.5.60-mm2:
-smctr-fix.patch
Merged
+deadline-alias-3.patch
Fix an elevator aliasing bug (was causing direct-io lockups and oopses)
+linear-gcc-workaround.patch
Work around a gcc-2.95.3 ICE in drivers/md/linear.c
+flush_tlb_all-preempt-safety.patch
Make flush_tlb_all preempt+SMP-safe
-reiserfs_file_write.patch
+reiserfs_file_write-3.patch
Updated
+tcp-wakeups.patch
Resurrect this patch which uses faster wakeups in ipv4. Worth 2% in a
famous web serving benchmark on an 8-way.
-deadline-hash-fix.patch
Obsoleted.
-cciss-2.patch
-cciss-3.patch
-cciss-5.patch
-cciss-6.patch
-cciss-7.patch
-cciss-8.patch
-cciss-9.patch
-cciss-10.patch
-cciss-11.patch
Merged into ciss-1.patch
+cciss-overrun-fix.patch
Fix a cciss_scsi bug
+ext3_debug-fix.patch
Fix ext3 build when EXT3_DEBUG is defined
+visws-1.patch
+visws-2.patch
+visws-3.patch
+visws-4.patch
+visws-5.patch
+visws-6.patch
+visws-7.patch
+visws-8.patch
+visws-9.patch
+visws-10.patch
+visws-11.patch
+visws-12.patch
+visws-13.patch
Resurrect visws support
+profiling-cleanup.patch
Consolidate kernel profiling code
+remove-unused-congestion-stuff.patch
Hugh keeps deleting all my lovely code.
+fix-Wundef.patch
Clean up the build with -Wundef
+scsi-fix-NCR53C9x.patch
Build fix
+radix_tree_maxindex-cleanup.patch
radix-tree simplification and cleanup
+tty-module-refcounting.patch
New module refcounting for the tty layer
+anticipatory_io_scheduling.patch
-ant-sched-9feb.patch
-ant-sched-12feb.patch
Rolled-up anticipatory scheduler diff
+cfq-2.patch
Complete Fair Queueing for the disk scheduler
+elevator-selection.patch
Allow CFQ to be selected with "elevator=cfq" on the kernel boot
commandline.
All 78 patches:
kgdb.patch
deadline-alias-3.patch
ppc64-reloc_hide.patch
ppc64-time-warning.patch
kill ppc64 unused var warning
xfs-warning-fixes.patch
xfs-cli-fix.patch
xfs interrupt flags fix
ppc64-smp_prepare_cpus-warning.patch
ppc64: fix warning
report-lost-ticks.patch
make lost-tick detection more informative
devfs-fix.patch
ptrace-flush.patch
Subject: [PATCH] ptrace on 2.5.44
buffer-debug.patch
buffer.c debugging
warn-null-wakeup.patch
jfs-build-fix.patch
JFS build fix with gcc-2.95.3
ext3-truncate-ordered-pages.patch
ext3: explicitly free truncated pages
linear-gcc-workaround.patch
work around gcc-2.95.3 internal compler error in linear.c
flush_tlb_all-preempt-safety.patch
Subject: [PATCH][2.5] flush_tlb_all is not preempt safe.
mandlock-fix.patch
Fix mandatory locking
fault_in_pages-move.patch
move fault_in_pages_readable/writeable to header
generic_write_checks.patch
separate checks from generic_file_aio_write
reiserfs_file_write-3.patch
ext3-eio-fix.patch
fix ext3 BUG due to race with truncate
tcp-wakeups.patch
Use fast wakeups in TCP/IPV4
deadline-np-42.patch
(undescribed patch)
deadline-np-43.patch
(undescribed patch)
batch-tuning.patch
I/O scheduler tuning
starvation-by-read-fix.patch
fix starvation-by-readers in the IO scheduler
crc32-speedup.patch
crc32 improvements for 2.5
scheduler-tunables.patch
scheduler tunables
sched-f3.patch
scheduler F3-updated
rml-scheduler-bits.patch
scheduler bits
lockd-lockup-fix.patch
Subject: Re: Fw: Re: 2.4.20 NFS server lock-up (SMP)
rcu-stats.patch
RCU statistics reporting
dcache_rcu-fast_walk-revert.patch
dcache_rcu: revert fast_walk code
dcache_rcu-main.patch
dcache_rcu
smalldevfs.patch
smalldevfs
ext3-journalled-data-assertion-fix.patch
Remove incorrect assertion from ext3
nfs-speedup.patch
nfs-oom-fix.patch
nfs oom fix
sk-allocation.patch
Subject: Re: nfs oom
nfs-more-oom-fix.patch
nfs-sendfile.patch
Implement sendfile() for NFS
rpciod-atomic-allocations.patch
Make rcpiod use atomic allocations
put_page-speedup.patch
hugetlb put_page speedup
kernel_lock_bug2.patch
ext2_ext3_listxattr-bug.patch
xattr: listxattr fix
xattr-flags.patch
xattr: infrastructure for permission overrides
xattr-flags-policy.patch
xattr: allow kernel code to override EA permissions
xattr-trusted.patch
xattr: trusted extended attributes
balance_dirty_pages-lockup-fix.patch
blk_congestion_wait tuning and lockup fix
cciss-1.patch
make cciss driver compile
cciss-overrun-fix.patch
Subject: [PATCH] 2.5.60, cciss, fix array bounds overrun
direct-io-retval-fix.patch
direct-io return value fix
dio-eof-read.patch
direct-io: allow reading of the part-filled EOF block
linux-isp.patch
linux-isp-update.patch
ext3_debug-fix.patch
Fix ext3 build when EXT#_DEBUG is defined
visws-1.patch
visws: allow SMP kernel build without io_apic.c (1/13)
visws-2.patch
visws: export some functions from i8259.c (2/13)
visws-3.patch
visws: make startup_32 kernel entry point (3/13)
visws-4.patch
visws: export boottime gdt descriptor (4/13)
visws-5.patch
visws: boot changes (5/13)
visws-6.patch
Subject: [PATCH] visws: move header file into asm/arch-visws (6/13)
visws-7.patch
visws: add missing mach_apic.h file (7/13)
visws-8.patch
visws: pci support (8/13)
visws-9.patch
visws: core (9/13)
visws-10.patch
visws: framebuffer driver update (10/13)
visws-11.patch
visws: sound update (11/13)
visws-12.patch
visws: MAINTAINERS file update (12/13)
visws-13.patch
visws: i386/KConfig update (13/13)
profiling-cleanup.patch
Subject: [PATCH]: consolidate and cleanup profiling code.
remove-unused-congestion-stuff.patch
Subject: [PATCH] remove unused congestion stuff
fix-Wundef.patch
Make the world safe for -Wundef
scsi-fix-NCR53C9x.patch
fix compile breakage on drivers/scsi/NCR53C9x.c
radix_tree_maxindex-cleanup.patch
Use table lookup for radix_tree_maxindex()
tty-module-refcounting.patch
TYT module refcounting fix
anticipatory_io_scheduling.patch
Subject: [PATCH] 2.5.59-mm3 antic io sched
cfq-2.patch
CFQ scheduler, #2
elevator-selection.patch
boot-time selection of disk elevator type
Andrew Morton wrote:
>http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.61/2.5.61-mm1/
>
>. Jens has fixed the request queue aliasing problem and we are no longer
> able to break the IO scheduler. This was preventing the OSDL team from
> running dbt2 against recent kernels, so hopefully that is all fixed up now.
>
>. The anticipatory scheduler is performing well. I've included that now.
>
And for those interested, if you find unusual IO performance,
please try disabling AS and reporting results. Thanks.
echo 0 > /sys/block/?/iosched/antic_expire
This value defaults to 10 (ms). More than around 20 might do
funny though not harmful stuff due to a fragile bitshift.
Nick
I'm getting the same problem as 2.5.60-mm2 during boot:
bad: scheduling while atomic!
Call Trace:
[<c0112ab1>] do_schedule+0x3d/0x2f4
[<c0112fb5>] wait_for_completion+0x8d/0xd0
[<c0112dac>] default_wake_function+0x0/0x1c
[<c0112dac>] default_wake_function+0x0/0x1c
[<c0122219>] create_workqueue+0x125/0x178
[<c010508e>] init+0x2a/0x17c
[<c0105064>] init+0x0/0x17c
[<c0106e5d>] kernel_thread_helper+0x5/0xc
aio_setup: sizeof(struct page) = 40
Journalled Block Device driver loaded
bad: scheduling while atomic!
Call Trace:
[<c0112ab1>] do_schedule+0x3d/0x2f4
[<c0112fb5>] wait_for_completion+0x8d/0xd0
[<c0112dac>] default_wake_function+0x0/0x1c
[<c0112dac>] default_wake_function+0x0/0x1c
[<c010508e>] init+0x2a/0x17c
[<c0105064>] init+0x0/0x17c
[<c0106e5d>] kernel_thread_helper+0x5/0xc
bad: scheduling while atomic!
Call Trace:
[<c0112ab1>] do_schedule+0x3d/0x2f4
[<c0112fb5>] wait_for_completion+0x8d/0xd0
[<c0112dac>] default_wake_function+0x0/0x1c
[<c0112dac>] default_wake_function+0x0/0x1c
[<c010508e>] init+0x2a/0x17c
[<c0105064>] init+0x0/0x17c
[<c0106e5d>] kernel_thread_helper+0x5/0xc
bad: scheduling while atomic!
Call Trace:
[<c0112ab1>] do_schedule+0x3d/0x2f4
[<c0112fb5>] wait_for_completion+0x8d/0xd0
[<c0112dac>] default_wake_function+0x0/0x1c
[<c0112dac>] default_wake_function+0x0/0x1c
[<c010508e>] init+0x2a/0x17c
[<c0105064>] init+0x0/0x17c
[<c0106e5d>] kernel_thread_helper+0x5/0xc
SGI XFS for Linux 2.5.61-mm1 with no debug enabled
bad: scheduling while atomic!
Call Trace:
[<c0112ab1>] do_schedule+0x3d/0x2f4
[<c0112fb5>] wait_for_completion+0x8d/0xd0
[<c0112dac>] default_wake_function+0x0/0x1c
[<c0112dac>] default_wake_function+0x0/0x1c
[<c0122219>] create_workqueue+0x125/0x178
[<c021711f>] pagebuf_daemon_start+0xb/0x4c
[<c0161a4a>] create_proc_entry+0x9a/0xb4
[<c0151d2b>] register_filesystem+0x3b/0x70
[<c010508e>] init+0x2a/0x17c
[<c0105064>] init+0x0/0x17c
[<c0106e5d>] kernel_thread_helper+0x5/0xc
Serial: 8250/16550 driver $Revision: 1.90 $ IRQ sharing enabled
tts/0 at I/O 0x3f8 (irq = 4) is a 16550A
tts/1 at I/O 0x2f8 (irq = 3) is a 16550A
pty: 256 Unix98 ptys configured
Real Time Clock Driver v1.11
Non-volatile memory driver v1.2
using deadline elevator
Intel(R) PRO/100 Network Driver - version 2.1.29-k4
Copyright (c) 2002 Intel Corporation
PCI: Found IRQ 11 for device 00:04.0
bad: scheduling while atomic!
Call Trace:
[<c0112ab1>] do_schedule+0x3d/0x2f4
[<c011b977>] add_timer+0x11b/0x120
[<c011c4e8>] schedule_timeout+0x84/0xac
[<c011c458>] process_timeout+0x0/0xc
[<c024e944>] e100_selftest+0x58/0xb0
[<c02297d9>] pci_device_probe+0x41/0x5c
[<c02302b3>] bus_match+0x37/0x60
[<c0230374>] driver_attach+0x3c/0x5c
[<c0230602>] bus_add_driver+0xa6/0xd8
[<c023093c>] driver_register+0x34/0x38
[<c02298d2>] pci_register_driver+0x42/0x54
[<c010508e>] init+0x2a/0x17c
[<c0105064>] init+0x0/0x17c
[<c0106e5d>] kernel_thread_helper+0x5/0xc
bad: scheduling while atomic!
Call Trace:
[<c0112ab1>] do_schedule+0x3d/0x2f4
[<c011b977>] add_timer+0x11b/0x120
[<c011c4e8>] schedule_timeout+0x84/0xac
[<c011c458>] process_timeout+0x0/0xc
[<c02297d9>] pci_device_probe+0x41/0x5c
[<c02302b3>] bus_match+0x37/0x60
[<c0230374>] driver_attach+0x3c/0x5c
[<c0230602>] bus_add_driver+0xa6/0xd8
[<c023093c>] driver_register+0x34/0x38
[<c02298d2>] pci_register_driver+0x42/0x54
[<c010508e>] init+0x2a/0x17c
[<c0105064>] init+0x0/0x17c
[<c0106e5d>] kernel_thread_helper+0x5/0xc
Freeing alive device c13a6000, eth%d
alloc_skb called nonatomically from interrupt c027a74c
------------[ cut here ]------------
kernel BUG at net/core/skbuff.c:178!
invalid operand: 0000
CPU: 0
EIP: 0060:[<c0271823>] Not tainted
EFLAGS: 00010246
EIP is at alloc_skb+0x43/0x1a4
eax: 0000003a ebx: c038adc0 ecx: c02f5308 edx: 00000296
esi: c13a6000 edi: 000000d0 ebp: c13a6000 esp: c129feac
ds: 007b es: 007b ss: 0068
Process swapper (pid: 1, threadinfo=c129e000 task=c129c040)
Stack: c02ea8c0 c027a74c c038adc0 c13a6000 00000005 c027a74c 00000f60 000000d0
c038adc0 c027abfe 00000010 c13a6000 ffffffff c011f9fa c038adc0 00000005
c13a6000 c129e000 c03888e1 c0388908 c0276470 c04111c4 00000005 c13a6000
Call Trace:
[<c027a74c>] rtmsg_ifinfo+0x10/0x78
[<c027a74c>] rtmsg_ifinfo+0x10/0x78
[<c027abfe>] rtnetlink_event+0x36/0x3c
[<c011f9fa>] notifier_call_chain+0x1e/0x38
[<c0276470>] register_netdevice+0x168/0x174
[<c0255c0e>] register_netdev+0x5e/0x70
[<c02297d9>] pci_device_probe+0x41/0x5c
[<c02302b3>] bus_match+0x37/0x60
[<c0230374>] driver_attach+0x3c/0x5c
[<c0230602>] bus_add_driver+0xa6/0xd8
[<c023093c>] driver_register+0x34/0x38
[<c02298d2>] pci_register_driver+0x42/0x54
[<c010508e>] init+0x2a/0x17c
[<c0105064>] init+0x0/0x17c
[<c0106e5d>] kernel_thread_helper+0x5/0xc
Code: 0f 0b b2 00 63 a8 2e c0 83 c4 08 83 e7 ef 31 c0 9c 59 fa be
<0>Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing
Con
On February 15, 2003 02:13 am, Andrew Morton wrote:
> Turns out that some parts of KDE (kmail, at least) were indeed using this
> hint, and it triggers a nasty bug in (at least) kmail: it is reading the
> same 128k of the file again and again and again. It runs like a dog.
> Ed Tomlinson upgraded his KDE/kmail version and this problem went away.
The versions of kmail involved were 3.04, which manifests the bug when switching
between folders with lots of entries (10,000+). The kmail in kde 3.1 does not
have this problem.
Ed Tomlinson
Con Kolivas <[email protected]> wrote:
>
> I'm getting the same problem as 2.5.60-mm2 during boot:
>
> bad: scheduling while atomic!
> Call Trace:
> [<c0112ab1>] do_schedule+0x3d/0x2f4
> [<c0112fb5>] wait_for_completion+0x8d/0xd0
> [<c0112dac>] default_wake_function+0x0/0x1c
> [<c0112dac>] default_wake_function+0x0/0x1c
> [<c0122219>] create_workqueue+0x125/0x178
> [<c010508e>] init+0x2a/0x17c
> [<c0105064>] init+0x0/0x17c
> [<c0106e5d>] kernel_thread_helper+0x5/0xc
This appears to be due to smalldevfs disagreeing with dcache_rcu over
dcache_lock conventions.
I'll drop out smalldevfs until Adam returns, and has time to look at it,
Thanks.
I just tried 2.5.61 and 2.5.61-mm1 on a dell inspiron 8100.
2.5.61 is working OK, but -mm1 hung as soon as it tried to exec init.
init=/bin/bash showed the same failure.
init(8) was able to print out it's first line, announcing its version
but then stopped. with init=/bin/bash bash did not output anything.
-JimC
"James H. Cloos Jr." <[email protected]> wrote:
>
> I just tried 2.5.61 and 2.5.61-mm1 on a dell inspiron 8100.
>
> 2.5.61 is working OK, but -mm1 hung as soon as it tried to exec init.
> init=/bin/bash showed the same failure.
>
> init(8) was able to print out it's first line, announcing its version
> but then stopped. with init=/bin/bash bash did not output anything.
>
If you are using devfs then yes, there is a locking problem.
If you are not using devfs then please send me your .config.
Thanks.
On Sun, 16 Feb 2003 10:41 am, Andrew Morton wrote:
> Con Kolivas <[email protected]> wrote:
> > I'm getting the same problem as 2.5.60-mm2 during boot:
> >
> > bad: scheduling while atomic!
> > Call Trace:
> > [<c0112ab1>] do_schedule+0x3d/0x2f4
> > [<c0112fb5>] wait_for_completion+0x8d/0xd0
> > [<c0112dac>] default_wake_function+0x0/0x1c
> > [<c0112dac>] default_wake_function+0x0/0x1c
> > [<c0122219>] create_workqueue+0x125/0x178
> > [<c010508e>] init+0x2a/0x17c
> > [<c0105064>] init+0x0/0x17c
> > [<c0106e5d>] kernel_thread_helper+0x5/0xc
>
> This appears to be due to smalldevfs disagreeing with dcache_rcu over
> dcache_lock conventions.
>
> I'll drop out smalldevfs until Adam returns, and has time to look at it,
Backing out that patch fixes it thanks.
Con
On Sun, Feb 16, 2003 at 12:31:31AM +0000, Andrew Morton wrote:
> "James H. Cloos Jr." <[email protected]> wrote:
> >
> > I just tried 2.5.61 and 2.5.61-mm1 on a dell inspiron 8100.
> >
> > 2.5.61 is working OK, but -mm1 hung as soon as it tried to exec init.
> > init=/bin/bash showed the same failure.
> >
> > init(8) was able to print out it's first line, announcing its version
> > but then stopped. with init=/bin/bash bash did not output anything.
> >
>
> If you are using devfs then yes, there is a locking problem.
>
> If you are not using devfs then please send me your .config.
>
> Thanks.
Hello Andrew,
The following patch should enable smalldevfs to work with dcache_rcu. The
locking problem is because smalldevfs is written keeping fastwalk
in mind where as dcache_rcu backs out fastwalk code to 2.5.10 level.
Patch is based on 2.5.61-mm1.
Regards,
Maneesh
dcache_rcu-smalldevfs.patch
diff -urN linux-2.5.61-mm1/fs/devfs/base.c linux-2.5.61-mm1-smalldevfs-dcache_rcu/fs/devfs/base.c
--- linux-2.5.61-mm1/fs/devfs/base.c 2003-02-17 12:04:54.000000000 +0530
+++ linux-2.5.61-mm1-smalldevfs-dcache_rcu/fs/devfs/base.c 2003-02-17 12:29:46.000000000 +0530
@@ -60,8 +60,7 @@
memcpy(buf, *path, len);
buf[len] = '\0';
- spin_lock(&dcache_lock);
- err = link_path_walk(buf, nd); /* releases dcache_lock */
+ err = link_path_walk(buf, nd);
if (err)
return err;
@@ -101,14 +100,13 @@
memset(&nd, 0, sizeof(nd));
nd.flags = LOOKUP_PARENT;
- nd.mnt = devfs_vfsmount;
- nd.dentry = dir;
+ nd.mnt = mntget(devfs_vfsmount);
+ nd.dentry = dget(dir);
err = walk_parents_mkdir(&name, &nd, is_dir);
if (err)
return err;
- spin_lock(&dcache_lock);
err = link_path_walk(name, &nd);
if (err)
return err;
@@ -247,10 +245,9 @@
buf[sizeof(buf)-1] = '\0';
memset(&nd, 0, sizeof(nd));
- nd.mnt = devfs_vfsmount;
- nd.dentry = devfs_vfsmount->mnt_sb->s_root;
+ nd.mnt = mntget(devfs_vfsmount);
+ nd.dentry = dget(devfs_vfsmount->mnt_sb->s_root);
- spin_lock(&dcache_lock);
err = link_path_walk(buf, &nd);
if (!err) {
devfs_unregister(nd.dentry);
--
Maneesh Soni
IBM Linux Technology Center,
IBM India Software Lab, Bangalore.
Phone: +91-80-5044999 email: [email protected]
http://lse.sourceforge.net/
Maneesh Soni <[email protected]> wrote:
>
> The following patch should enable smalldevfs to work with dcache_rcu.
I suspected this might happen ;) Many thanks.
>
> http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.61/2.5.61-mm1/
>
> . Jens has fixed the request queue aliasing problem and we are no longer
> able to break the IO scheduler. This was preventing the OSDL team from
> running dbt2 against recent kernels, so hopefully that is all fixed up now.
>
Thanks again for doing all this, really appreciate it.
Well, we're closer....
The showstopper for us is still the flock() issue. We have Mathew Wilcox's patch from
2.5.52, which we have been applying to all recent kernels. The patch is in PLM as patch id
# 1061. The issue is in BugMe as bug #94 .
Without proper flock() we cannot stop and restart the database, which means we can't run the test.
We've tried applying Wilcox's flock patch to -mm1, but it's doesn't go clean, and frankly we're not smart enough
to do the merge by hand - lock code scares us.
We just tested 2.5.61 vanilla, and 2.5.61-mm1.
The patch applies cleanly to stock 2.5.61, and we can cycle the database.
We can't run dbt2 on stock 2.5.61, because of the scheduler bug.
We believe the scheduler fix in -mm1 will be the ticket, but we can't try
it because of the flock() issue. So we're wedged.
Can someone smarter than us maybe do a merge?
thanks,
cliffw