Re: disk speed regression kernel 2.6.29 and after

From: odie
Date: Thu Sep 24 2009 - 05:55:02 EST


(Bart, a commit by you might be involved here, please see below.)

I had been using an old 2.6.22 kernel on my machine, and I often backup
one partition of my main hard drive to a partition on a second hard
drive. The main hard drive is sata 640 gigs, and the second is a pata
320 gig. copying this partition from one drive to the other with dd
takes about 3 minutes and 30 seconds. When I installed kernel 2.6.30,
and 2.6.31, the time took 9 minutes and 20 seconds. I decided to go to
the trouble of compiling all the kernels between, and kernels
2.6.22-2.6.28 all do the operation in about 3 minutes and 30 seconds.
2.6.29- newer all take about 9 minutes and 20 seconds. The partition is
16 gigs. each drive seems to be as fast as before otherwise, it's just
much slower copying from one drive to another, which I do very often.
This is an nforce 3 based motherboard, amd southbridge, i think, with 4
gigs of ram, athlon 64x2. 32 bit kernel. has anyone heard of this problem?
I currently have 3 hard drives hooked up.
a 200 gig on a promise controller,
a 320 gig on the amd pata?
a 640 sata on the nv i think.
The motherboard is a Asrock-AM2NF3-VSTA
copying this partition with dd or cat or schily's dd between any of these 3
different hard drives takes different times depending on the speed of
the drive with
kernels 2.6.22-2.6.28, but takes about 9 minutes and 30 seconds on any
of the drives
with the kernels 2.6.29 and after.

Can you post the dmesg output from bootup on both the good and bad kernels?

So, the good and bad below are a result of a git bisect run?

And did you notice these warnings?

good
Linux version 2.6.28-04985-gebdab07 (root@xxxxxxx) (gcc version 4.4.1 (GCC) ) #14 SMP Wed Sep 23 21:12:50 CDT 2009
[...]

Freeing unused kernel memory: 284k freed
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: sda5: warning: vs-500: unknown uniqueness -107167201[18060 33348 0xf6c5325c UNKNOWN] not found
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: sda5: warning: vs-500: unknown uniqueness -107167201[18060 113891 0xf6c55758 UNKNOWN] not found
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: sda5: warning: vs-500: unknown uniqueness -107167201[117144 365484 0xf6c56188 UNKNOWN] not found

Hmm, this looks like a reiserfs problem that was present for a while between
2.6.28 and 2.6.29-rc1 [1]. You'd probably like to run fsck.

ip_tables: (C) 2000-2006 Netfilter Core Team
hdb: UDMA/33 mode selected
------------[ cut here ]------------
WARNING: at fs/sysfs/dir.c:462 sysfs_add_one+0x3c/0x50()
Hardware name: To Be Filled By O.E.M.
sysfs: duplicate filename 'audio' can not be created
Modules linked in: sound(+) ipt_LOG ip_tables x_tables
Pid: 1666, comm: modprobe Not tainted 2.6.28-04985-gebdab07 #14
Call Trace:
[<c01406b2>] warn_slowpath+0x82/0xc0
[<c050a8fe>] schedule+0x21e/0x780
[<c012eb77>] xapic_wait_icr_idle+0x17/0x20
[<c035ca84>] idr_get_empty_slot+0xe4/0x260
[<c035cc79>] ida_get_new_above+0x79/0x1b0
[<c01cfcd0>] sysfs_ilookup_test+0x0/0x10
[<c01cfff1>] sysfs_find_dirent+0x21/0x30
[<c01d012d>] __sysfs_add_one+0x1d/0xe0
[<c019e8a6>] ilookup5+0x36/0x40
[<c01d022c>] sysfs_add_one+0x3c/0x50
[<c01d07d8>] create_dir+0x48/0x90
[<c01d0849>] sysfs_create_dir+0x29/0x40
[<c035d75f>] kobject_get+0xf/0x20
[<c035d853>] kobject_add_internal+0x83/0x1d0
[<c035da2a>] kobject_set_name_vargs+0x3a/0x50
[<c035da5e>] kobject_add_varg+0x1e/0x60
[<c035dafd>] kobject_add+0x2d/0x60
[<c035d75f>] kobject_get+0xf/0x20
[<c03c9a0a>] device_add+0xca/0x600
[<c035d515>] kobject_init+0x25/0xa0
[<c03c9fdb>] device_create_vargs+0x8b/0xd0
[<c03ca04b>] device_create+0x2b/0x30
[<f85ff0a5>] oss_init+0xa5/0x149 [sound]
[<c0101123>] do_one_initcall+0x33/0x170
[<f85ff000>] oss_init+0x0/0x149 [sound]
[<c016345b>] sys_init_module+0x8b/0x1b0
[<c018b688>] sys_close+0x58/0x90
[<c011c26e>] syscall_call+0x7/0xb
---[ end trace c45370bb6aa94452 ]---
kobject_add_internal failed for audio with -EEXIST, don't try to register things with the same name in the same directory.
Pid: 1666, comm: modprobe Tainted: G W 2.6.28-04985-gebdab07 #14
Call Trace:
[<c035d902>] kobject_add_internal+0x132/0x1d0
[<c035dafd>] kobject_add+0x2d/0x60
[<c035d75f>] kobject_get+0xf/0x20
[<c03c9a0a>] device_add+0xca/0x600
[<c035d515>] kobject_init+0x25/0xa0
[<c03c9fdb>] device_create_vargs+0x8b/0xd0
[<c03ca04b>] device_create+0x2b/0x30
[<f85ff0a5>] oss_init+0xa5/0x149 [sound]
[<c0101123>] do_one_initcall+0x33/0x170
[<f85ff000>] oss_init+0x0/0x149 [sound]
[<c016345b>] sys_init_module+0x8b/0x1b0
[<c018b688>] sys_close+0x58/0x90
[<c011c26e>] syscall_call+0x7/0xb
hdc: UDMA/33 mode selected
Driver 'sr' needs updating - please use bus_type methods
hdd: UDMA/66 mode selected
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: warning: vs-500: unknown uniqueness -1071672013
ReiserFS: sda5: warning: vs-500: unknown uniqueness -107167201[117144 365494 0xf6ca87d8 UNKNOWN] not found
w83627ehf: Found W83627EHG chip at 0x290
warning: process `update' used the obsolete bdflush system call
Fix your initscripts?
warning: process `update' used the obsolete bdflush system call
Fix your initscripts?

These warnings are a consequence of the problem above I believe. I don't
know whether they have affected your bisect run, you should really apply
the patch in [1] and rerun the tests.


bad

Linux version 2.6.28-04986-g295f000 (root@xxxxxxx) (gcc version 4.4.1 (GCC) ) #13 SMP Wed Sep 23 21:08:03 CDT 2009

So if your bisect is correct, then 295f000
(ide: don't execute the next queued command from the hard-IRQ context (v2))
is faulty.

Bart, any ideas or would you like a rerun with the reiserfs patch in place
by Will?

[1] http://lkml.org/lkml/2009/1/12/471


Simon Holm Thøgersen

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/