Re: disk speed regression kernel 2.6.29 and after

From: Bartlomiej Zolnierkiewicz
Date: Thu Sep 24 2009 - 08:25:31 EST



Hi,

On Thursday 24 September 2009 09:44:47 odie@xxxxxxxxx wrote:
> (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

I don't see how could commit 295f00 be the guilty one here. I'm suspecting
that bisection went wrong at some point (easy to verify by checking if commit
295f00^1 is also bad).

PS Will, it would be useful to try libata first and possibly rule out PATA out
of the picture completely.
--
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/