2008-03-05 05:03:58

by Linus Torvalds

[permalink] [raw]
Subject: Linux 2.6.25-rc4


It's a few days late, but I was waiting for some updates for some of the
most annoying regressions until releasing it, so the end result is
hopefully more useful as a result.

In particular, the block layer changes should hopefully have sorted
themselves out, and CD burning etc hopefully works for people again. Same
goes for the the scheduler regressions, and a number of annoying boot-time
problems.

In short, if you had any issues, please do test, and make sure that the
regression list gets updated (whether fixed or not).

The dirstat shows that (as usual) most of the changes are in drivers and
arch (~51% and ~17% respectively), with about half the driver updates
being in network drivers. Full details for those who care:

2.0% Documentation/
3.6% arch/blackfin/
3.6% arch/cris/
2.3% arch/sparc/kernel/
2.8% arch/x86/
17.3% arch/
2.1% drivers/char/
7.0% drivers/dma/
3.0% drivers/firewire/
24.0% drivers/net/
50.6% drivers/
5.6% fs/cifs/
9.4% fs/
3.6% include/
5.2% kernel/
3.9% mm/
2.5% net/

but in general, it's really a fair amount of small changes spread all
over, with most of the changes being quite small (604 commits, most of
them small, with the BNX2X network driver being and the new fsldma driver
the only one that got some bigger changes).

So give it all a good testing,

Linus


2008-03-05 08:14:27

by FUJITA Tomonori

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

On Tue, 4 Mar 2008 21:03:44 -0800 (PST)
Linus Torvalds <[email protected]> wrote:

>
> It's a few days late, but I was waiting for some updates for some of the
> most annoying regressions until releasing it, so the end result is
> hopefully more useful as a result.

Ah, the IOMMU patches (alpha and parisc) that I submitted for -mm have
been merged somehow.

The parisc patches were tested but probably the alpha patches not.

Here's a patch for 32bits arch parisc.

=
From: FUJITA Tomonori <[email protected]>
Subject: [PATCH] parisc: fix IOMMU's device boundary overflow bug on 32bits arch

On 32bits boxes, boundary_size becomes zero due to a overflow and we
hit BUG_ON in iommu_is_span_boundary.

Signed-off-by: FUJITA Tomonori <[email protected]>
Cc: Kyle McMartin <[email protected]>
Cc: Matthew Wilcox <[email protected]>
Cc: Grant Grundler <[email protected]>
---
drivers/parisc/ccio-dma.c | 4 ++--
drivers/parisc/sba_iommu.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/parisc/ccio-dma.c b/drivers/parisc/ccio-dma.c
index 60d338c..62db3c3 100644
--- a/drivers/parisc/ccio-dma.c
+++ b/drivers/parisc/ccio-dma.c
@@ -366,8 +366,8 @@ ccio_alloc_range(struct ioc *ioc, struct device *dev, size_t size)
** ggg sacrifices another 710 to the computer gods.
*/

- boundary_size = ALIGN(dma_get_seg_boundary(dev) + 1, 1 << IOVP_SHIFT);
- boundary_size >>= IOVP_SHIFT;
+ boundary_size = ALIGN((unsigned long long)dma_get_seg_boundary(dev) + 1,
+ 1ULL << IOVP_SHIFT) >> IOVP_SHIFT;

if (pages_needed <= 8) {
/*
diff --git a/drivers/parisc/sba_iommu.c b/drivers/parisc/sba_iommu.c
index e834127..bdbe780 100644
--- a/drivers/parisc/sba_iommu.c
+++ b/drivers/parisc/sba_iommu.c
@@ -341,8 +341,8 @@ sba_search_bitmap(struct ioc *ioc, struct device *dev,
unsigned long shift;
int ret;

- boundary_size = ALIGN(dma_get_seg_boundary(dev) + 1, 1 << IOVP_SHIFT);
- boundary_size >>= IOVP_SHIFT;
+ boundary_size = ALIGN((unsigned long long)dma_get_seg_boundary(dev) + 1,
+ 1ULL << IOVP_SHIFT) >> IOVP_SHIFT;

#if defined(ZX1_SUPPORT)
BUG_ON(ioc->ibase & ~IOVP_MASK);
--
1.5.3.7

2008-03-05 16:47:22

by Grant Grundler

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

On Wed, Mar 05, 2008 at 05:09:30PM +0900, FUJITA Tomonori wrote:
> On Tue, 4 Mar 2008 21:03:44 -0800 (PST)
> Linus Torvalds <[email protected]> wrote:
>
> >
> > It's a few days late, but I was waiting for some updates for some of the
> > most annoying regressions until releasing it, so the end result is
> > hopefully more useful as a result.
>
> Ah, the IOMMU patches (alpha and parisc) that I submitted for -mm have
> been merged somehow.
>
> The parisc patches were tested but probably the alpha patches not.
>
> Here's a patch for 32bits arch parisc.
>
> =
> From: FUJITA Tomonori <[email protected]>
> Subject: [PATCH] parisc: fix IOMMU's device boundary overflow bug on 32bits arch
>
> On 32bits boxes, boundary_size becomes zero due to a overflow and we
> hit BUG_ON in iommu_is_span_boundary.
>
> Signed-off-by: FUJITA Tomonori <[email protected]>
> Cc: Kyle McMartin <[email protected]>
> Cc: Matthew Wilcox <[email protected]>
> Cc: Grant Grundler <[email protected]>

Acked-by: Grant Grundler <[email protected]>

thanks,
grant

> ---
> drivers/parisc/ccio-dma.c | 4 ++--
> drivers/parisc/sba_iommu.c | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/parisc/ccio-dma.c b/drivers/parisc/ccio-dma.c
> index 60d338c..62db3c3 100644
> --- a/drivers/parisc/ccio-dma.c
> +++ b/drivers/parisc/ccio-dma.c
> @@ -366,8 +366,8 @@ ccio_alloc_range(struct ioc *ioc, struct device *dev, size_t size)
> ** ggg sacrifices another 710 to the computer gods.
> */
>
> - boundary_size = ALIGN(dma_get_seg_boundary(dev) + 1, 1 << IOVP_SHIFT);
> - boundary_size >>= IOVP_SHIFT;
> + boundary_size = ALIGN((unsigned long long)dma_get_seg_boundary(dev) + 1,
> + 1ULL << IOVP_SHIFT) >> IOVP_SHIFT;
>
> if (pages_needed <= 8) {
> /*
> diff --git a/drivers/parisc/sba_iommu.c b/drivers/parisc/sba_iommu.c
> index e834127..bdbe780 100644
> --- a/drivers/parisc/sba_iommu.c
> +++ b/drivers/parisc/sba_iommu.c
> @@ -341,8 +341,8 @@ sba_search_bitmap(struct ioc *ioc, struct device *dev,
> unsigned long shift;
> int ret;
>
> - boundary_size = ALIGN(dma_get_seg_boundary(dev) + 1, 1 << IOVP_SHIFT);
> - boundary_size >>= IOVP_SHIFT;
> + boundary_size = ALIGN((unsigned long long)dma_get_seg_boundary(dev) + 1,
> + 1ULL << IOVP_SHIFT) >> IOVP_SHIFT;
>
> #if defined(ZX1_SUPPORT)
> BUG_ON(ioc->ibase & ~IOVP_MASK);
> --
> 1.5.3.7

2008-03-05 22:30:45

by Jonathan McDowell

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

In article
<[email protected]>
(earth.lists.linux-kernel) you wrote:

> It's a few days late, but I was waiting for some updates for some of the
> most annoying regressions until releasing it, so the end result is
> hopefully more useful as a result.

Still crashes in acpi_get_data for me; the patch mentioned
<[email protected]> and tracked at

http://bugzilla.kernel.org/show_bug.cgi?id=10132

still doesn't seem to have hit mainline and still fixes the issue for me.

-----
From: Lin Ming <[email protected]>

Fix a memory overflow bug when copying
NULL internal package element object to external.

Signed-off-by: Lin Ming <[email protected]>
Signed-off-by: Zhang Rui <[email protected]>
---
drivers/acpi/utilities/utobject.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6/drivers/acpi/utilities/utobject.c
===================================================================
--- linux-2.6.orig/drivers/acpi/utilities/utobject.c
+++ linux-2.6/drivers/acpi/utilities/utobject.c
@@ -432,7 +432,7 @@ acpi_ut_get_simple_object_size(union acp
* element -- which is legal)
*/
if (!internal_object) {
- *obj_length = 0;
+ *obj_length = sizeof(union acpi_object);
return_ACPI_STATUS(AE_OK);
}

-----

J.

--
/-\ | 101 things you can't have too much
|@/ Debian GNU/Linux Developer | of : 8 - Hard drive space.
\- |

2008-03-06 09:02:03

by Ingo Molnar

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


* Linus Torvalds <[email protected]> wrote:

> In particular, the block layer changes should hopefully have sorted
> themselves out, and CD burning etc hopefully works for people again.

hm, tonight's randconfig bootrun produced a failing (soft-hung) kernel
after about 120 iterations - and the log i captured _seems_ to indicate
some block IO (or libata) completion weirdness.

unfortunately, it's not readily reproducible, and i triggered it with
about 100 sched.git and 300 x86.git patches applied. BUT, virtually the
same 100+300 patches queue produced a successful 1000+ randconfig
testrun over the last weekend so i'm reasonably sure the regression is
new and came in via upstream. Also, the config is UP (and it's a rather
simple config in other aspects as well), so this must be something
rather fundamental, not an SMP race.

I just spent about an hour trying to figure out a pattern but the bug
just doesnt reproduce after 20 bootup attempts with the same bzImage.
When it hung then it hung for hours, so the condition is permanent.

I've attached the bootup log which includes the SysRq-T output and the
config. The hang seems to occur because an rc.sysinit task is not coming
back from io_schedule():

rc.sysinit D f75bcc24 0 1922 1893
f761c810 00000086 f75bcd38 f75bcc24 1954bff5 00000015 f7746000 f761c974
f761c974 f7c17698 c180e7a8 f7747cc4 00000000 f7747ccc c180e7a8 c097bff7
c01a3acb c097c27d c01a3aa0 f7872a90 00000002 c01a3aa0 f7747e48 c097c2fc
Call Trace:
[<c097bff7>] io_schedule+0x37/0x70
[<c01a3acb>] sync_buffer+0x2b/0x30
[<c097c27d>] __wait_on_bit+0x4d/0x80
[<c01a3aa0>] sync_buffer+0x0/0x30
[<c01a3aa0>] sync_buffer+0x0/0x30
[<c097c2fc>] out_of_line_wait_on_bit+0x4c/0x60
[<c0142340>] wake_bit_function+0x0/0x40
[<c01a3a51>] __wait_on_buffer+0x21/0x30
[<c0209915>] ext3_bread+0x55/0x70
[<c020cff8>] ext3_find_entry+0x258/0x660
[<c03a0026>] avc_has_perm+0x46/0x50
[<c03a0d14>] inode_has_perm+0x44/0x80
[<c020de69>] ext3_lookup+0x29/0xa0
[<c0189f90>] do_lookup+0x130/0x180
[<c018b540>] __link_path_walk+0x340/0xd50
[<c03a0d14>] inode_has_perm+0x44/0x80
[<c018bf8a>] link_path_walk+0x3a/0xa0
[<c016feb4>] __do_fault+0x1a4/0x3d0
[<c018c1b7>] do_path_lookup+0x77/0x210
[<c018cb57>] __user_walk_fd+0x27/0x40
[<c01860d5>] vfs_stat_fd+0x15/0x40
[<c016feb4>] __do_fault+0x1a4/0x3d0
[<c01861ef>] sys_stat64+0xf/0x30
[<c0125a5d>] do_page_fault+0x2ad/0x670
[<c03db6cc>] trace_hardirqs_on_thunk+0xc/0x10
[<c0115a5f>] sysenter_past_esp+0x5f/0x90
=======================

So the last known-good kernel would be last Friday's -git:

commit d395991c117d43bfca97101a931a41d062a93852
Merge: b73384f... b445c56...
Author: Linus Torvalds <[email protected]>
Date: Fri Feb 29 16:54:33 2008 -0800

but ... "git-log d395991c117d4.. block/" does not show anything
particularly exciting. Note that the IO scheduler in question is:

CONFIG_DEFAULT_IOSCHED="anticipatory"

so it's not the usual CFQ - that's due to randconfig.

Ingo


Attachments:
(No filename) (2.98 kB)
hang.log (228.61 kB)
config.hang (47.18 kB)
Download all attachments

2008-03-06 12:59:44

by Jens Axboe

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

On Thu, Mar 06 2008, Ingo Molnar wrote:
>
> * Linus Torvalds <[email protected]> wrote:
>
> > In particular, the block layer changes should hopefully have sorted
> > themselves out, and CD burning etc hopefully works for people again.
>
> hm, tonight's randconfig bootrun produced a failing (soft-hung) kernel
> after about 120 iterations - and the log i captured _seems_ to indicate
> some block IO (or libata) completion weirdness.
>
> unfortunately, it's not readily reproducible, and i triggered it with
> about 100 sched.git and 300 x86.git patches applied. BUT, virtually the
> same 100+300 patches queue produced a successful 1000+ randconfig
> testrun over the last weekend so i'm reasonably sure the regression is
> new and came in via upstream. Also, the config is UP (and it's a rather
> simple config in other aspects as well), so this must be something
> rather fundamental, not an SMP race.
>
> I just spent about an hour trying to figure out a pattern but the bug
> just doesnt reproduce after 20 bootup attempts with the same bzImage.
> When it hung then it hung for hours, so the condition is permanent.
>
> I've attached the bootup log which includes the SysRq-T output and the
> config. The hang seems to occur because an rc.sysinit task is not coming
> back from io_schedule():
>
> rc.sysinit D f75bcc24 0 1922 1893
> f761c810 00000086 f75bcd38 f75bcc24 1954bff5 00000015 f7746000 f761c974
> f761c974 f7c17698 c180e7a8 f7747cc4 00000000 f7747ccc c180e7a8 c097bff7
> c01a3acb c097c27d c01a3aa0 f7872a90 00000002 c01a3aa0 f7747e48 c097c2fc
> Call Trace:
> [<c097bff7>] io_schedule+0x37/0x70
> [<c01a3acb>] sync_buffer+0x2b/0x30
> [<c097c27d>] __wait_on_bit+0x4d/0x80
> [<c01a3aa0>] sync_buffer+0x0/0x30
> [<c01a3aa0>] sync_buffer+0x0/0x30
> [<c097c2fc>] out_of_line_wait_on_bit+0x4c/0x60
> [<c0142340>] wake_bit_function+0x0/0x40
> [<c01a3a51>] __wait_on_buffer+0x21/0x30
> [<c0209915>] ext3_bread+0x55/0x70
> [<c020cff8>] ext3_find_entry+0x258/0x660
> [<c03a0026>] avc_has_perm+0x46/0x50
> [<c03a0d14>] inode_has_perm+0x44/0x80
> [<c020de69>] ext3_lookup+0x29/0xa0
> [<c0189f90>] do_lookup+0x130/0x180
> [<c018b540>] __link_path_walk+0x340/0xd50
> [<c03a0d14>] inode_has_perm+0x44/0x80
> [<c018bf8a>] link_path_walk+0x3a/0xa0
> [<c016feb4>] __do_fault+0x1a4/0x3d0
> [<c018c1b7>] do_path_lookup+0x77/0x210
> [<c018cb57>] __user_walk_fd+0x27/0x40
> [<c01860d5>] vfs_stat_fd+0x15/0x40
> [<c016feb4>] __do_fault+0x1a4/0x3d0
> [<c01861ef>] sys_stat64+0xf/0x30
> [<c0125a5d>] do_page_fault+0x2ad/0x670
> [<c03db6cc>] trace_hardirqs_on_thunk+0xc/0x10
> [<c0115a5f>] sysenter_past_esp+0x5f/0x90
> =======================

Sorry, I have _no_ ideas on what this could be. We haven't really had
any related changes in the block layer over that short a time frame. It
could of course have been introduced earlier, since it seems to be quite
elusive.

Presumably any hw issues would get noticed (like missing interrupt) and
trigger the error handler, so it looks like this IO is still stuck in
the queue somewhere. That mainly points the finger at AS, but given that
you cannot reproduce I'm not sure how best to proceed with this...

--
Jens Axboe

2008-03-06 13:07:55

by Ingo Molnar

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


* Jens Axboe <[email protected]> wrote:

> Presumably any hw issues would get noticed (like missing interrupt)
> and trigger the error handler, so it looks like this IO is still stuck
> in the queue somewhere. That mainly points the finger at AS, but given
> that you cannot reproduce I'm not sure how best to proceed with
> this...

me neither... just wanted to give notice that something's brewing in
this area. Will know more after tonight's qa series i guess, if it gets
above 100 bootups ;-)

Ingo

2008-03-06 13:12:51

by Jens Axboe

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

On Thu, Mar 06 2008, Ingo Molnar wrote:
>
> * Jens Axboe <[email protected]> wrote:
>
> > Presumably any hw issues would get noticed (like missing interrupt)
> > and trigger the error handler, so it looks like this IO is still stuck
> > in the queue somewhere. That mainly points the finger at AS, but given
> > that you cannot reproduce I'm not sure how best to proceed with
> > this...
>
> me neither... just wanted to give notice that something's brewing in
> this area. Will know more after tonight's qa series i guess, if it gets
> above 100 bootups ;-)

Could be old brew, depends on when/how you can re-trigger it :-)

--
Jens Axboe

Subject: Re: Linux 2.6.25-rc4

On Thursday 06 March 2008, Jens Axboe wrote:
> On Thu, Mar 06 2008, Ingo Molnar wrote:
> >
> > * Linus Torvalds <[email protected]> wrote:
> >
> > > In particular, the block layer changes should hopefully have sorted
> > > themselves out, and CD burning etc hopefully works for people again.
> >
> > hm, tonight's randconfig bootrun produced a failing (soft-hung) kernel
> > after about 120 iterations - and the log i captured _seems_ to indicate
> > some block IO (or libata) completion weirdness.
> >
> > unfortunately, it's not readily reproducible, and i triggered it with
> > about 100 sched.git and 300 x86.git patches applied. BUT, virtually the
> > same 100+300 patches queue produced a successful 1000+ randconfig
> > testrun over the last weekend so i'm reasonably sure the regression is
> > new and came in via upstream. Also, the config is UP (and it's a rather
> > simple config in other aspects as well), so this must be something
> > rather fundamental, not an SMP race.
> >
> > I just spent about an hour trying to figure out a pattern but the bug
> > just doesnt reproduce after 20 bootup attempts with the same bzImage.
> > When it hung then it hung for hours, so the condition is permanent.
> >
> > I've attached the bootup log which includes the SysRq-T output and the
> > config. The hang seems to occur because an rc.sysinit task is not coming
> > back from io_schedule():
> >
> > rc.sysinit D f75bcc24 0 1922 1893
> > f761c810 00000086 f75bcd38 f75bcc24 1954bff5 00000015 f7746000 f761c974
> > f761c974 f7c17698 c180e7a8 f7747cc4 00000000 f7747ccc c180e7a8 c097bff7
> > c01a3acb c097c27d c01a3aa0 f7872a90 00000002 c01a3aa0 f7747e48 c097c2fc
> > Call Trace:
> > [<c097bff7>] io_schedule+0x37/0x70
> > [<c01a3acb>] sync_buffer+0x2b/0x30
> > [<c097c27d>] __wait_on_bit+0x4d/0x80
> > [<c01a3aa0>] sync_buffer+0x0/0x30
> > [<c01a3aa0>] sync_buffer+0x0/0x30
> > [<c097c2fc>] out_of_line_wait_on_bit+0x4c/0x60
> > [<c0142340>] wake_bit_function+0x0/0x40
> > [<c01a3a51>] __wait_on_buffer+0x21/0x30
> > [<c0209915>] ext3_bread+0x55/0x70
> > [<c020cff8>] ext3_find_entry+0x258/0x660
> > [<c03a0026>] avc_has_perm+0x46/0x50
> > [<c03a0d14>] inode_has_perm+0x44/0x80
> > [<c020de69>] ext3_lookup+0x29/0xa0
> > [<c0189f90>] do_lookup+0x130/0x180
> > [<c018b540>] __link_path_walk+0x340/0xd50
> > [<c03a0d14>] inode_has_perm+0x44/0x80
> > [<c018bf8a>] link_path_walk+0x3a/0xa0
> > [<c016feb4>] __do_fault+0x1a4/0x3d0
> > [<c018c1b7>] do_path_lookup+0x77/0x210
> > [<c018cb57>] __user_walk_fd+0x27/0x40
> > [<c01860d5>] vfs_stat_fd+0x15/0x40
> > [<c016feb4>] __do_fault+0x1a4/0x3d0
> > [<c01861ef>] sys_stat64+0xf/0x30
> > [<c0125a5d>] do_page_fault+0x2ad/0x670
> > [<c03db6cc>] trace_hardirqs_on_thunk+0xc/0x10
> > [<c0115a5f>] sysenter_past_esp+0x5f/0x90
> > =======================
>
> Sorry, I have _no_ ideas on what this could be. We haven't really had
> any related changes in the block layer over that short a time frame. It
> could of course have been introduced earlier, since it seems to be quite
> elusive.
>
> Presumably any hw issues would get noticed (like missing interrupt) and
> trigger the error handler, so it looks like this IO is still stuck in
> the queue somewhere. That mainly points the finger at AS, but given that
> you cannot reproduce I'm not sure how best to proceed with this...

The problem looks very similar to the one recently reported by Anders:

http://lkml.org/lkml/2008/2/22/239

"Trying out 2.6.25-rc2 smartd always causes my box to hang. I can switch
vt:s and the keyboard seems to work.

Using sysrq-e I noticed a callpath open -> ext3 -> journals -> sync_buffer ->
io_scheduel -> generic_unplig_device.
I'd guess the open stems from smartd. Removing smartd from the startup, I'm
now using rc2 fine..."

Initially we thought that it is an IDE regression but after some testing
and further investigation it seems that IDE changes just made it more
likely to occur (yesterday it turned out that the kernel with the "guilty"
IDE commit sometimes boots fine). The issue is easily reproducible.

PS We've already verified that it is not PREEMPT related or a compiler bug.

Thanks,
Bart

2008-03-06 13:34:50

by Ingo Molnar

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


* Bartlomiej Zolnierkiewicz <[email protected]> wrote:

> The problem looks very similar to the one recently reported by Anders:
>
> http://lkml.org/lkml/2008/2/22/239
>
> "Trying out 2.6.25-rc2 smartd always causes my box to hang. I can
> switch vt:s and the keyboard seems to work.
>
> Using sysrq-e I noticed a callpath open -> ext3 -> journals ->
> sync_buffer -> io_scheduel -> generic_unplig_device. I'd guess the
> open stems from smartd. Removing smartd from the startup, I'm now
> using rc2 fine..."
>
> Initially we thought that it is an IDE regression but after some
> testing and further investigation it seems that IDE changes just made
> it more likely to occur (yesterday it turned out that the kernel with
> the "guilty" IDE commit sometimes boots fine). The issue is easily
> reproducible.
>
> PS We've already verified that it is not PREEMPT related or a compiler
> bug.

smartd is not active here though - and starting/restarting it doesnt
provoke a hang.

Ingo

Subject: Re: Linux 2.6.25-rc4

On Thursday 06 March 2008, Ingo Molnar wrote:
>
> * Bartlomiej Zolnierkiewicz <[email protected]> wrote:
>
> > The problem looks very similar to the one recently reported by Anders:
> >
> > http://lkml.org/lkml/2008/2/22/239
> >
> > "Trying out 2.6.25-rc2 smartd always causes my box to hang. I can
> > switch vt:s and the keyboard seems to work.
> >
> > Using sysrq-e I noticed a callpath open -> ext3 -> journals ->
> > sync_buffer -> io_scheduel -> generic_unplig_device. I'd guess the
> > open stems from smartd. Removing smartd from the startup, I'm now
> > using rc2 fine..."
> >
> > Initially we thought that it is an IDE regression but after some
> > testing and further investigation it seems that IDE changes just made
> > it more likely to occur (yesterday it turned out that the kernel with
> > the "guilty" IDE commit sometimes boots fine). The issue is easily
> > reproducible.
> >
> > PS We've already verified that it is not PREEMPT related or a compiler
> > bug.
>
> smartd is not active here though - and starting/restarting it doesnt
> provoke a hang.

I was a bit unclear on this, the problem is easily reproducible but _only_
on Anders' system (I couldn't reproduce it with smartd here either).

Thanks,
Bart

2008-03-06 13:55:48

by Jens Axboe

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

On Thu, Mar 06 2008, Bartlomiej Zolnierkiewicz wrote:
> On Thursday 06 March 2008, Ingo Molnar wrote:
> >
> > * Bartlomiej Zolnierkiewicz <[email protected]> wrote:
> >
> > > The problem looks very similar to the one recently reported by Anders:
> > >
> > > http://lkml.org/lkml/2008/2/22/239
> > >
> > > "Trying out 2.6.25-rc2 smartd always causes my box to hang. I can
> > > switch vt:s and the keyboard seems to work.
> > >
> > > Using sysrq-e I noticed a callpath open -> ext3 -> journals ->
> > > sync_buffer -> io_scheduel -> generic_unplig_device. I'd guess the
> > > open stems from smartd. Removing smartd from the startup, I'm now
> > > using rc2 fine..."
> > >
> > > Initially we thought that it is an IDE regression but after some
> > > testing and further investigation it seems that IDE changes just made
> > > it more likely to occur (yesterday it turned out that the kernel with
> > > the "guilty" IDE commit sometimes boots fine). The issue is easily
> > > reproducible.
> > >
> > > PS We've already verified that it is not PREEMPT related or a compiler
> > > bug.
> >
> > smartd is not active here though - and starting/restarting it doesnt
> > provoke a hang.
>
> I was a bit unclear on this, the problem is easily reproducible but _only_
> on Anders' system (I couldn't reproduce it with smartd here either).

What IO scheduler is Anders using (and does it have an impact, eg does
it hang with deadline as well)?

--
Jens Axboe

2008-03-06 21:19:25

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


[email protected] said:
>> I was a bit unclear on this, the problem is easily reproducible but _only_
>> on Anders' system (I couldn't reproduce it with smartd here either).

> What IO scheduler is Anders using (and does it have an impact, eg does it
> hang with deadline as well)?

CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_IOSCHED="cfq"

On request here's a sysrq-t from smartd on -rc3, you also see exactly where
smartd gives up (using the gentoo default smasrtd.conf).

Might a strace of smartd help?

Lest you folks come up with any ideas, I'll try another bisect run on saturday
between the was_guilty_but_now_sometimes_work and 25-r1, and see what that
gives.


Mar 6 22:04:27 tracker smartd[6283]: smartd version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Mar 6 22:04:27 tracker smartd[6283]: Home page is http://smartmontools.sourceforge.net/
Mar 6 22:04:27 tracker smartd[6283]: Opened configuration file /etc/smartd.conf
Mar 6 22:04:27 tracker smartd[6283]: Configuration file /etc/smartd.conf parsed.
Mar 6 22:04:27 tracker smartd[6283]: Device: /dev/hda, opened
Mar 6 22:04:28 tracker smartd[6283]: Device: /dev/hda, found in smartd database.
Mar 6 22:04:28 tracker smartd[6283]: Device: /dev/hda, can't monitor Current Pending Sector count - no Attribute 197
Mar 6 22:04:28 tracker smartd[6283]: Device: /dev/hda, can't monitor Offline Uncorrectable Sector count - no Attribute 198
Mar 6 22:04:28 tracker smartd[6283]: Device: /dev/hda, can't monitor Temperature, ignoring -W Directive
Mar 6 22:04:28 tracker smartd[6283]: Device: /dev/hda, appears to lack SMART Self-Test log; disabling -l selftest (override with -T permissive Directive)
Mar 6 22:04:28 tracker smartd[6283]: Device: /dev/hda, appears to lack SMART Error log; disabling -l error (override with -T permissive Directive)
Mar 6 22:04:28 tracker smartd[6283]: Device: /dev/hda, is SMART capable. Adding to "monitor" list.
Mar 6 22:04:28 tracker smartd[6283]: Device: /dev/hda, opened
Mar 6 22:04:28 tracker smartd[6283]: Device: /dev/hda, found in smartd database.
Mar 6 22:04:32 tracker ======
Mar 6 22:04:32 tracker dnsmasq S 00000000 0 4181 1
Mar 6 22:04:32 tracker d25bbb10 00000056 00000000 00000000 d247c544 d3f124c0 00000000 00000000
Mar 6 22:04:32 tracker 00000000 04aa3006 00000057 d2575980 d25bbbc4 0000000e 00002000 00000304
Mar 6 22:04:32 tracker d25bbb40 c043c555 d25bbb34 c0396e72 0050c2c0 d3fc7e00 c046c0e0 00002000
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:32 tracker [<c0396e72>] ? udp_poll+0x12/0xf0
Mar 6 22:04:32 tracker [<c0176c27>] do_select+0x4c7/0x5c0
Mar 6 22:04:32 tracker [<c0176760>] ? do_select+0x0/0x5c0
Mar 6 22:04:32 tracker [<c035c50c>] ? process_backlog+0x5c/0xb0
Mar 6 22:04:32 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c039ef64>] ? inet_sendmsg+0x34/0x60
Mar 6 22:04:32 tracker [<c034e664>] ? sock_sendmsg+0xc4/0xf0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0176f3a>] core_sys_select+0x21a/0x330
Mar 6 22:04:32 tracker [<c0176d47>] ? core_sys_select+0x27/0x330
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c035b4e5>] ? dev_ioctl+0x95/0x4f0
Mar 6 22:04:32 tracker [<c02344d5>] ? copy_to_user+0x35/0x50
Mar 6 22:04:32 tracker [<c035b4f4>] ? dev_ioctl+0xa4/0x4f0
Mar 6 22:04:32 tracker [<c0398d20>] ? udp_ioctl+0x0/0x90
Mar 6 22:04:32 tracker [<c039ed7d>] ? inet_ioctl+0x3d/0x90
Mar 6 22:04:32 tracker [<c034dbf0>] ? sock_ioctl+0x0/0x230
Mar 6 22:04:32 tracker [<c01773af>] sys_select+0x3f/0x190
Mar 6 22:04:32 tracker [<c034f9c3>] ? sys_socketcall+0x233/0x260
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker cupsd S c05ffba0 0 4241 1
Mar 6 22:04:32 tracker d253db10 00000056 00000286 c05ffba0 d3d6a964 d3f844c0 d253db20 c05ffba0
Mar 6 22:04:32 tracker d253db10 c0126e11 00014478 00000000 00000286 d253db20 00014478 00000000
Mar 6 22:04:32 tracker d253db40 c043c527 d3f5fc80 d253dbc4 c06005f0 c06005f0 00014478 c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c0126e11>] ? __mod_timer+0x91/0xa0
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c0176c27>] do_select+0x4c7/0x5c0
Mar 6 22:04:32 tracker [<c0176760>] ? do_select+0x0/0x5c0
Mar 6 22:04:32 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c01b89d6>] ? journal_stop+0x116/0x1e0
Mar 6 22:04:32 tracker [<c0150a2b>] ? balance_dirty_pages_ratelimited_nr+0x4b/0x250
Mar 6 22:04:32 tracker [<c01ae2c7>] ? ext3_ordered_write_end+0xd7/0x130
Mar 6 22:04:32 tracker [<c014b04e>] ? generic_file_buffered_write+0x18e/0x650
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0176f3a>] core_sys_select+0x21a/0x330
Mar 6 22:04:32 tracker [<c0176d47>] ? core_sys_select+0x27/0x330
Mar 6 22:04:32 tracker [<c043cce8>] ? mutex_unlock+0x8/0x10
Mar 6 22:04:32 tracker [<c043cce8>] ? mutex_unlock+0x8/0x10
Mar 6 22:04:32 tracker [<c014bac5>] ? generic_file_aio_write+0x65/0xd0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c022de5d>] ? _atomic_dec_and_lock+0x2d/0x40
Mar 6 22:04:32 tracker [<c043ea97>] ? _spin_unlock+0x27/0x50
Mar 6 22:04:32 tracker [<c022de5d>] ? _atomic_dec_and_lock+0x2d/0x40
Mar 6 22:04:32 tracker [<c0177444>] sys_select+0xd4/0x190
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker rpc.mountd S 00000292 0 4306 1
Mar 6 22:04:32 tracker d25f9b10 00000056 d3a0cd78 00000292 d25f65c4 d245d940 c043eb8c d25f9c48
Mar 6 22:04:32 tracker d3a0cd78 d25f9b08 c013129b 00000004 00000000 00000008 00000080 00000000
Mar 6 22:04:32 tracker d25f9b40 c043c555 d25f9bc4 d3f5a640 d2544320 d25f9b34 c03823da c046c080
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:32 tracker [<c013129b>] ? add_wait_queue+0x3b/0x50
Mar 6 22:04:32 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:32 tracker [<c03823da>] ? tcp_poll+0x1a/0x160
Mar 6 22:04:32 tracker [<c0176c27>] do_select+0x4c7/0x5c0
Mar 6 22:04:32 tracker [<c0176760>] ? do_select+0x0/0x5c0
Mar 6 22:04:32 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c03505c1>] ? release_sock+0xc1/0xd0
Mar 6 22:04:32 tracker [<c0123217>] ? local_bh_enable_ip+0x27/0x60
Mar 6 22:04:32 tracker [<c043e26f>] ? _spin_unlock_bh+0x2f/0x40
Mar 6 22:04:32 tracker [<c03505c1>] ? release_sock+0xc1/0xd0
Mar 6 22:04:32 tracker [<c0398531>] ? udp_sendmsg+0x311/0x6c0
Mar 6 22:04:32 tracker [<c039ef64>] ? inet_sendmsg+0x34/0x60
Mar 6 22:04:32 tracker [<c034e664>] ? sock_sendmsg+0xc4/0xf0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0176f3a>] core_sys_select+0x21a/0x330
Mar 6 22:04:32 tracker [<c0176d47>] ? core_sys_select+0x27/0x330
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c022de5d>] ? _atomic_dec_and_lock+0x2d/0x40
Mar 6 22:04:32 tracker [<c01773af>] sys_select+0x3f/0x190
Mar 6 22:04:32 tracker [<c034f9c3>] ? sys_socketcall+0x233/0x260
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker lockd S 0000001d 0 4308 2
Mar 6 22:04:32 tracker d261df08 00000046 a895f0b3 0000001d d3c80464 d252fdc0 00000002 0001b5e3
Mar 6 22:04:32 tracker 00000000 a897a696 0000001d c013b61d d261df10 d260fd90 d25b6aa4 d261df68
Mar 6 22:04:32 tracker d261df38 c043c555 d261df2c 00000246 c04198e0 00000246 d25b6aa4 d261df2c
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:32 tracker [<c04198e0>] ? svc_recv+0x1f0/0x780
Mar 6 22:04:32 tracker [<c0123217>] ? local_bh_enable_ip+0x27/0x60
Mar 6 22:04:32 tracker [<c04198e8>] svc_recv+0x1f8/0x780
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c01fb760>] lockd+0xe0/0x230
Mar 6 22:04:32 tracker [<c010301e>] ? syscall_exit+0x8/0x1a
Mar 6 22:04:32 tracker [<c01fb680>] ? lockd+0x0/0x230
Mar 6 22:04:32 tracker [<c01fb680>] ? lockd+0x0/0x230
Mar 6 22:04:32 tracker [<c0103b43>] kernel_thread_helper+0x7/0x14
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker nfsd S 0000001d 0 4309 2
Mar 6 22:04:32 tracker d262ff2c 00000046 a8ecf244 0000001d d262c5e4 d252fdc0 d262ff3c 0001b2be
Mar 6 22:04:32 tracker 00000000 a8eea502 0000001d 00000000 00000292 d262ff3c 000d10c6 d262ff8c
Mar 6 22:04:32 tracker d262ff5c c043c527 d262ff50 00000256 d2651f3c c0600768 000d10c6 c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c04198e8>] svc_recv+0x1f8/0x780
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c01eb6cc>] nfsd+0xcc/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c0103b43>] kernel_thread_helper+0x7/0x14
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker nfsd S 0000001d 0 4310 2
Mar 6 22:04:32 tracker d2651f2c 00000046 a8eef9af 0000001d d264e604 d252fdc0 d2651f3c 000175af
Mar 6 22:04:32 tracker 00000000 a8f06f5e 0000001d 00000000 00000292 d2651f3c 000d10c6 d2651f8c
Mar 6 22:04:32 tracker d2651f5c c043c527 d2651f50 00000256 d2665f3c d262ff3c 000d10c6 c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c04198e8>] svc_recv+0x1f8/0x780
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c01eb6cc>] nfsd+0xcc/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c0103b43>] kernel_thread_helper+0x7/0x14
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker nfsd S 0000001d 0 4311 2
Mar 6 22:04:32 tracker d2665f2c 00000046 a8f0c254 0000001d d2662624 d252fdc0 d2665f3c 00016ed9
Mar 6 22:04:32 tracker 00000000 a8f2312d 0000001d 00000000 00000292 d2665f3c 000d10c6 d2665f8c
Mar 6 22:04:32 tracker d2665f5c c043c527 d2665f50 00000256 d2677f3c d2651f3c 000d10c6 c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c04198e8>] svc_recv+0x1f8/0x780
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c01eb6cc>] nfsd+0xcc/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c0103b43>] kernel_thread_helper+0x7/0x14
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker nfsd S 0000001d 0 4312 2
Mar 6 22:04:32 tracker d2677f2c 00000046 a8f283c3 0000001d d2674644 d252fdc0 d2677f3c 00016f26
Mar 6 22:04:32 tracker 00000000 a8f3f2e9 0000001d 00000000 00000292 d2677f3c 000d10c6 d2677f8c
Mar 6 22:04:32 tracker d2677f5c c043c527 d2677f50 00000256 d2699f3c d2665f3c 000d10c6 c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c04198e8>] svc_recv+0x1f8/0x780
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c01eb6cc>] nfsd+0xcc/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c0103b43>] kernel_thread_helper+0x7/0x14
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker nfsd S 0000001d 0 4313 2
Mar 6 22:04:32 tracker d2699f2c 00000046 a8f443c4 0000001d d2696664 d252fdc0 d2699f3c 00016e90
Mar 6 22:04:32 tracker 00000000 a8f5b254 0000001d 00000000 00000292 d2699f3c 000d10c6 d2699f8c
Mar 6 22:04:32 tracker d2699f5c c043c527 d2699f50 00000256 d26adf3c d2677f3c 000d10c6 c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c04198e8>] svc_recv+0x1f8/0x780
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c01eb6cc>] nfsd+0xcc/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c0103b43>] kernel_thread_helper+0x7/0x14
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker nfsd S 0000001d 0 4314 2
Mar 6 22:04:32 tracker d26adf2c 00000046 a8f60530 0000001d d26aa684 d252fdc0 d26adf3c 00016e76
Mar 6 22:04:32 tracker 00000000 a8f773a6 0000001d 00000000 00000292 d26adf3c 000d10c6 d26adf8c
Mar 6 22:04:32 tracker d26adf5c c043c527 d26adf50 00000256 c0600768 d2699f3c 000d10c6 c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c04198e8>] svc_recv+0x1f8/0x780
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c01eb6cc>] nfsd+0xcc/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c0103b43>] kernel_thread_helper+0x7/0x14
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker nfsd S c05ffba0 0 4315 2
Mar 6 22:04:32 tracker d26bff2c 00000046 00000292 c05ffba0 d26bc6a4 d3f84280 d26bff3c c05ffba0
Mar 6 22:04:32 tracker d26bff2c c0126e11 000def6d 00000000 00000292 d26bff3c 000def6d d26bff8c
Mar 6 22:04:32 tracker d26bff5c c043c527 d26bff50 00000256 c0600780 d26d3f3c 000def6d c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c0126e11>] ? __mod_timer+0x91/0xa0
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c04198e8>] svc_recv+0x1f8/0x780
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c01eb6cc>] nfsd+0xcc/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c0103b43>] kernel_thread_helper+0x7/0x14
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker nfsd S 00000058 0 4316 2
Mar 6 22:04:32 tracker d26d3f2c 00000046 572d4ef6 00000058 d26d06c4 d3f84280 d26d3f3c 0005e5df
Mar 6 22:04:32 tracker 00000000 573334d5 00000058 00000000 00000292 d26d3f3c 000def6d d26d3f8c
Mar 6 22:04:32 tracker d26d3f5c c043c527 d26d3f50 00000256 d26bff3c c0600780 000def6d c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c04198e8>] svc_recv+0x1f8/0x780
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c01eb6cc>] nfsd+0xcc/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c01eb600>] ? nfsd+0x0/0x2b0
Mar 6 22:04:32 tracker [<c0103b43>] kernel_thread_helper+0x7/0x14
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker automount S d3f0de00 0 4386 1
Mar 6 22:04:32 tracker d26e7bf0 00000056 00000046 d3f0de00 d26e8704 d245ddc0 d26e7bd8 c043eb8c
Mar 6 22:04:32 tracker d26e7c78 d3f0de00 d26e7bec c013129b 00000001 00000000 ffffffff 00000000
Mar 6 22:04:32 tracker d26e7c20 c043c555 d3fa1220 d26e7c48 d3fa1220 d3f0de00 d26e7c20 c016fb6f
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:32 tracker [<c013129b>] ? add_wait_queue+0x3b/0x50
Mar 6 22:04:32 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:32 tracker [<c016fb6f>] ? pipe_poll+0x2f/0xb0
Mar 6 22:04:32 tracker [<c01765d4>] do_sys_poll+0x254/0x380
Mar 6 22:04:32 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0116e06>] ? __wake_up_sync+0x46/0x60
Mar 6 22:04:32 tracker [<c017e0ce>] ? touch_atime+0x8e/0xf0
Mar 6 22:04:32 tracker [<c0170d7e>] ? pipe_read+0x2ee/0x380
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c012802a>] ? sigprocmask+0x7a/0xf0
Mar 6 22:04:32 tracker [<c043ebd8>] ? _spin_unlock_irq+0x28/0x50
Mar 6 22:04:32 tracker [<c012802a>] ? sigprocmask+0x7a/0xf0
Mar 6 22:04:32 tracker [<c01777e5>] sys_poll+0x35/0x80
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker dbus-daemon S 00000000 0 4450 1
Mar 6 22:04:32 tracker d26f7bf0 00000056 00000000 00000000 d26f8764 d252f4c0 00000000 00000000
Mar 6 22:04:32 tracker 00000000 01974481 00000020 00000000 d26f7c48 00000000 ffffffff 00000000
Mar 6 22:04:32 tracker d26f7c20 c043c555 d26f7c48 d3f690c0 d26f7c14 c03b976d 0086b880 c046cf60
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:32 tracker [<c03b976d>] ? unix_poll+0x1d/0xc0
Mar 6 22:04:32 tracker [<c01765d4>] do_sys_poll+0x254/0x380
Mar 6 22:04:32 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<d482ff67>] ? uhci_urb_enqueue+0x47/0x7c0 [uhci_hcd]
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c043cce8>] ? mutex_unlock+0x8/0x10
Mar 6 22:04:32 tracker [<c043cce8>] ? mutex_unlock+0x8/0x10
Mar 6 22:04:32 tracker [<c03bac32>] ? unix_stream_recvmsg+0x342/0x4d0
Mar 6 22:04:32 tracker [<c034da79>] ? sock_aio_read+0xe9/0x110
Mar 6 22:04:32 tracker [<c0169d0c>] ? do_sync_read+0xcc/0x110
Mar 6 22:04:32 tracker [<c0130fe0>] ? autoremove_wake_function+0x0/0x50
Mar 6 22:04:32 tracker [<c0199d8e>] ? dnotify_parent+0x6e/0x80
Mar 6 22:04:32 tracker [<c043ea97>] ? _spin_unlock+0x27/0x50
Mar 6 22:04:32 tracker [<c0107bc8>] ? read_tsc+0x8/0x10
Mar 6 22:04:32 tracker [<c01366c3>] ? getnstimeofday+0x33/0xd0
Mar 6 22:04:32 tracker [<c01777e5>] sys_poll+0x35/0x80
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker avahi-daemon S 00000000 0 4510 1
Mar 6 22:04:32 tracker d2713bf0 00000056 00000000 00000000 d26d46e4 d3f84b80 00000000 00000000
Mar 6 22:04:32 tracker 00000000 04ee1bd6 00000057 00000000 00000286 d2713c00 00003f51 00000000
Mar 6 22:04:32 tracker d2713c20 c043c527 d3fa19a0 d2713c48 c06005c0 c06005c0 00003f51 c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c01765d4>] do_sys_poll+0x254/0x380
Mar 6 22:04:32 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0116e06>] ? __wake_up_sync+0x46/0x60
Mar 6 22:04:32 tracker [<c0122856>] ? current_fs_time+0x16/0x20
Mar 6 22:04:32 tracker [<c017e0b7>] ? touch_atime+0x77/0xf0
Mar 6 22:04:32 tracker [<c0170d7e>] ? pipe_read+0x2ee/0x380
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0199d8e>] ? dnotify_parent+0x6e/0x80
Mar 6 22:04:32 tracker [<c043ea97>] ? _spin_unlock+0x27/0x50
Mar 6 22:04:32 tracker [<c0107bc8>] ? read_tsc+0x8/0x10
Mar 6 22:04:32 tracker [<c01366c3>] ? getnstimeofday+0x33/0xd0
Mar 6 22:04:32 tracker [<c01777e5>] sys_poll+0x35/0x80
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker avahi-daemon S 00000000 0 4512 4510
Mar 6 22:04:32 tracker d2725da0 00000056 00000000 00000000 d24b6564 d252fdc0 00000000 00000000
Mar 6 22:04:32 tracker 00000000 53f59c28 0000001f c013b61d d2725da8 d270aca0 00000000 00000000
Mar 6 22:04:32 tracker d2725dd0 c043c555 d2725dc4 00000246 c03babaa 00000246 d270af50 00000000
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:32 tracker [<c03babaa>] ? unix_stream_recvmsg+0x2ba/0x4d0
Mar 6 22:04:32 tracker [<c03babb2>] unix_stream_recvmsg+0x2c2/0x4d0
Mar 6 22:04:32 tracker [<c0234267>] ? copy_from_user+0x37/0x70
Mar 6 22:04:32 tracker [<c0130fe0>] ? autoremove_wake_function+0x0/0x50
Mar 6 22:04:32 tracker [<c034da79>] sock_aio_read+0xe9/0x110
Mar 6 22:04:32 tracker [<c043ec78>] ? _read_unlock_irq+0x28/0x50
Mar 6 22:04:32 tracker [<c0169d0c>] do_sync_read+0xcc/0x110
Mar 6 22:04:32 tracker [<c0149f94>] ? unlock_page+0x24/0x30
Mar 6 22:04:32 tracker [<c0130fe0>] ? autoremove_wake_function+0x0/0x50
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c016a5ef>] vfs_read+0x11f/0x130
Mar 6 22:04:32 tracker [<c016a9ad>] sys_read+0x3d/0x70
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker hcid S 00000000 0 4566 1
Mar 6 22:04:32 tracker d2737bf0 00000056 00000000 00000000 d2520584 d3f12040 00000000 00000000
Mar 6 22:04:32 tracker 00000000 019b94df 00000020 00000000 d2737c48 00000000 ffffffff 00000000
Mar 6 22:04:32 tracker d2737c20 c043c555 d2737c48 d2511200 d2737c14 c03b976d 00356eba c046cf60
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:32 tracker [<c03b976d>] ? unix_poll+0x1d/0xc0
Mar 6 22:04:32 tracker [<c01765d4>] do_sys_poll+0x254/0x380
Mar 6 22:04:32 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0118341>] ? hrtick_set+0x61/0x100
Mar 6 22:04:32 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:32 tracker [<c0118387>] ? hrtick_set+0xa7/0x100
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c0354589>] ? kfree_skb+0x19/0x30
Mar 6 22:04:32 tracker [<c0356f9d>] ? skb_free_datagram+0xd/0x40
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c03f2523>] ? hci_dev_get+0x93/0xb0
Mar 6 22:04:32 tracker [<c0233fe7>] ? __copy_to_user_ll+0x57/0x60
Mar 6 22:04:32 tracker [<c02344d5>] ? copy_to_user+0x35/0x50
Mar 6 22:04:32 tracker [<c03f79c8>] ? hci_sock_ioctl+0x158/0x2b0
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c034dcd0>] ? sock_ioctl+0xe0/0x230
Mar 6 22:04:32 tracker [<c034dbf0>] ? sock_ioctl+0x0/0x230
Mar 6 22:04:32 tracker [<c0175a28>] ? vfs_ioctl+0x28/0x80
Mar 6 22:04:32 tracker [<c0175ad7>] ? do_vfs_ioctl+0x57/0x2d0
Mar 6 22:04:32 tracker [<c01777e5>] sys_poll+0x35/0x80
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker sdpd S 00000000 0 4577 1
Mar 6 22:04:32 tracker d274db10 00000056 00000000 00000000 d248cc04 d252fb80 00000000 00000000
Mar 6 22:04:32 tracker 00000000 2854be47 00000020 00000000 d274dbc4 00000007 00000040 00000304
Mar 6 22:04:32 tracker d274db40 c043c555 d274dbc4 d272fb40 d274db34 c03b976d 003f153a c046cf60
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:32 tracker [<c03b976d>] ? unix_poll+0x1d/0xc0
Mar 6 22:04:32 tracker [<c0176c27>] do_select+0x4c7/0x5c0
Mar 6 22:04:32 tracker [<c0176760>] ? do_select+0x0/0x5c0
Mar 6 22:04:32 tracker [<c016276d>] ? dma_pool_alloc+0x19d/0x1c0
Mar 6 22:04:32 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c01b8d10>] ? do_get_write_access+0x270/0x560
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c03522c7>] ? sock_def_readable+0x57/0x80
Mar 6 22:04:32 tracker [<c043eb37>] ? _read_unlock+0x27/0x50
Mar 6 22:04:32 tracker [<c03522c7>] ? sock_def_readable+0x57/0x80
Mar 6 22:04:32 tracker [<c03bb7cb>] ? unix_stream_sendmsg+0x18b/0x320
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0176f3a>] core_sys_select+0x21a/0x330
Mar 6 22:04:32 tracker [<c0176d47>] ? core_sys_select+0x27/0x330
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c034dee0>] ? sockfd_lookup_light+0x30/0x60
Mar 6 22:04:32 tracker [<c034e955>] ? sys_sendto+0xa5/0xd0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0157ead>] ? handle_mm_fault+0x2cd/0x5d0
Mar 6 22:04:32 tracker [<c01773af>] sys_select+0x3f/0x190
Mar 6 22:04:32 tracker [<c034f8c7>] ? sys_socketcall+0x137/0x260
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker pand S 00000000 0 4587 1
Mar 6 22:04:32 tracker d2749e68 00000046 00000000 00000000 d2704784 d3da7040 00000000 00000000
Mar 6 22:04:32 tracker 00000000 285c6f74 00000020 d2749e70 00000256 d271b400 7fffffff ffffffb3
Mar 6 22:04:32 tracker d2749e98 c043c555 d2749e7c c043e26f d271b454 d2749e98 c03505c1 d3a4d040
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:32 tracker [<c043e26f>] ? _spin_unlock_bh+0x2f/0x40
Mar 6 22:04:32 tracker [<c03505c1>] ? release_sock+0xc1/0xd0
Mar 6 22:04:32 tracker [<c03faefd>] l2cap_sock_accept+0xad/0x140
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c034f6a3>] sys_accept+0xd3/0x1c0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c03505c1>] ? release_sock+0xc1/0xd0
Mar 6 22:04:32 tracker [<c0123217>] ? local_bh_enable_ip+0x27/0x60
Mar 6 22:04:32 tracker [<c043e26f>] ? _spin_unlock_bh+0x2f/0x40
Mar 6 22:04:32 tracker [<c03505c1>] ? release_sock+0xc1/0xd0
Mar 6 22:04:32 tracker [<c03fb963>] ? l2cap_sock_listen+0x33/0xe0
Mar 6 22:04:32 tracker [<c034dee0>] ? sockfd_lookup_light+0x30/0x60
Mar 6 22:04:32 tracker [<c034f851>] sys_socketcall+0xc1/0x260
Mar 6 22:04:32 tracker [<c0102faa>] ? sysenter_past_esp+0x6b/0x91
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker distccd S 00000000 0 4680 1
Mar 6 22:04:32 tracker d276ff08 00000046 00000000 00000000 d276c7e4 d3fff4c0 00000000 00000000
Mar 6 22:04:32 tracker 00000000 518acfc2 00000023 00000001 c05a2a00 00000001 00000001 00000004
Mar 6 22:04:32 tracker d276ff78 c0120a4f d27a4640 d276ff30 c01343dd 00000000 d276c778 00000000
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c0120a4f>] do_wait+0x55f/0xa60
Mar 6 22:04:32 tracker [<c01343dd>] ? hrtimer_try_to_cancel+0x3d/0x70
Mar 6 22:04:32 tracker [<c043d27c>] ? do_nanosleep+0x6c/0x90
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0120fc1>] sys_wait4+0x71/0xc0
Mar 6 22:04:32 tracker [<c0121035>] sys_waitpid+0x25/0x30
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker distccd S 00000000 0 4681 4680
Mar 6 22:04:32 tracker d27a3e30 00000056 00000000 00000000 d273a7c4 d245d4c0 00000000 00000000
Mar 6 22:04:32 tracker 00000000 9482a78e 00000022 d27a3e38 00000246 d2576040 00000000 7fffffff
Mar 6 22:04:32 tracker d27a3e60 c043c555 d27a3e44 c043e26f d2576094 d27a3e60 c03505c1 c0131143
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:32 tracker [<c043e26f>] ? _spin_unlock_bh+0x2f/0x40
Mar 6 22:04:32 tracker [<c03505c1>] ? release_sock+0xc1/0xd0
Mar 6 22:04:32 tracker [<c0131143>] ? prepare_to_wait_exclusive+0x53/0x60
Mar 6 22:04:32 tracker [<c0380a5c>] inet_csk_accept+0x11c/0x260
Mar 6 22:04:32 tracker [<c017ba58>] ? d_instantiate+0x48/0x60
Mar 6 22:04:32 tracker [<c0130fe0>] ? autoremove_wake_function+0x0/0x50
Mar 6 22:04:32 tracker [<c039fff6>] inet_accept+0x26/0xc0
Mar 6 22:04:32 tracker [<c034f6a3>] sys_accept+0xd3/0x1c0
Mar 6 22:04:32 tracker [<c01568d7>] ? __do_fault+0x177/0x3d0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0113a34>] ? do_page_fault+0x124/0x610
Mar 6 22:04:32 tracker [<c034f851>] sys_socketcall+0xc1/0x260
Mar 6 22:04:32 tracker [<c0102ef4>] ? resume_userspace+0x8/0x20
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker distccd S 00000000 0 4709 4680
Mar 6 22:04:32 tracker d2799e30 00000056 00000000 00000000 d279a8a4 d3da7280 00000000 00000000
Mar 6 22:04:32 tracker 00000000 d0a6d799 00000022 d2799e38 00000246 d2576040 00000000 7fffffff
Mar 6 22:04:32 tracker d2799e60 c043c555 d2799e44 c043e26f d2576094 d2799e60 c03505c1 c0131143
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:32 tracker [<c043e26f>] ? _spin_unlock_bh+0x2f/0x40
Mar 6 22:04:32 tracker [<c03505c1>] ? release_sock+0xc1/0xd0
Mar 6 22:04:32 tracker [<c0131143>] ? prepare_to_wait_exclusive+0x53/0x60
Mar 6 22:04:32 tracker [<c0380a5c>] inet_csk_accept+0x11c/0x260
Mar 6 22:04:32 tracker [<c017ba58>] ? d_instantiate+0x48/0x60
Mar 6 22:04:32 tracker [<c0130fe0>] ? autoremove_wake_function+0x0/0x50
Mar 6 22:04:32 tracker [<c039fff6>] inet_accept+0x26/0xc0
Mar 6 22:04:32 tracker [<c034f6a3>] sys_accept+0xd3/0x1c0
Mar 6 22:04:32 tracker [<c01568d7>] ? __do_fault+0x177/0x3d0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0113a34>] ? do_page_fault+0x124/0x610
Mar 6 22:04:32 tracker [<c034f851>] sys_socketcall+0xc1/0x260
Mar 6 22:04:32 tracker [<c0102ef4>] ? resume_userspace+0x8/0x20
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker distccd S 00000000 0 4738 4680
Mar 6 22:04:32 tracker d27b9e30 00000056 00000000 00000000 d27a4884 d3fff280 00000000 00000000
Mar 6 22:04:32 tracker 00000000 0cb7614a 00000023 d27b9e38 00000246 d2576040 00000000 7fffffff
Mar 6 22:04:32 tracker d27b9e60 c043c555 d27b9e44 c043e26f d2576094 d27b9e60 c03505c1 c0131143
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:32 tracker [<c043e26f>] ? _spin_unlock_bh+0x2f/0x40
Mar 6 22:04:32 tracker [<c03505c1>] ? release_sock+0xc1/0xd0
Mar 6 22:04:32 tracker [<c0131143>] ? prepare_to_wait_exclusive+0x53/0x60
Mar 6 22:04:32 tracker [<c0380a5c>] inet_csk_accept+0x11c/0x260
Mar 6 22:04:32 tracker [<c017ba58>] ? d_instantiate+0x48/0x60
Mar 6 22:04:32 tracker [<c0130fe0>] ? autoremove_wake_function+0x0/0x50
Mar 6 22:04:32 tracker [<c039fff6>] inet_accept+0x26/0xc0
Mar 6 22:04:32 tracker [<c034f6a3>] sys_accept+0xd3/0x1c0
Mar 6 22:04:32 tracker [<c01568d7>] ? __do_fault+0x177/0x3d0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0113a34>] ? do_page_fault+0x124/0x610
Mar 6 22:04:32 tracker [<c034f851>] sys_socketcall+0xc1/0x260
Mar 6 22:04:32 tracker [<c0102ef4>] ? resume_userspace+0x8/0x20
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker spamd S c05ffba0 0 4747 1
Mar 6 22:04:32 tracker d27c9b10 00000056 00000286 c05ffba0 d257e904 d3f84280 d27c9b20 c05ffba0
Mar 6 22:04:32 tracker d27c9b10 c0126e11 00003733 00000000 00000286 d27c9b20 00003733 00000304
Mar 6 22:04:32 tracker d27c9b40 c043c527 d27c9bc4 d3dfda60 d3ec7204 d3f3f118 00003733 c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c0126e11>] ? __mod_timer+0x91/0xa0
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c0176c27>] do_select+0x4c7/0x5c0
Mar 6 22:04:32 tracker [<c0176760>] ? do_select+0x0/0x5c0
Mar 6 22:04:32 tracker [<c0421536>] ? sta_info_get+0x56/0x60
Mar 6 22:04:32 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c035ca58>] ? dev_queue_xmit+0x218/0x300
Mar 6 22:04:32 tracker [<c012318e>] ? local_bh_enable+0x2e/0x90
Mar 6 22:04:32 tracker [<c035c916>] ? dev_queue_xmit+0xd6/0x300
Mar 6 22:04:32 tracker [<c035c874>] ? dev_queue_xmit+0x34/0x300
Mar 6 22:04:32 tracker [<c04326f0>] ? ieee80211_subif_start_xmit+0x4b0/0x610
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0176f3a>] core_sys_select+0x21a/0x330
Mar 6 22:04:32 tracker [<c0176d47>] ? core_sys_select+0x27/0x330
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0121d79>] ? do_setitimer+0x119/0x310
Mar 6 22:04:32 tracker [<c0177444>] sys_select+0xd4/0x190
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker master S c05ffba0 0 4852 1
Mar 6 22:04:32 tracker cf4a1f24 00000046 00000286 c05ffba0 d279e844 d3fff700 cf4a1f34 c05ffba0
Mar 6 22:04:32 tracker cf4a1f24 c0126e11 00006874 00000000 00000286 cf4a1f34 00006874 00000000
Mar 6 22:04:32 tracker cf4a1f54 c043c527 00000046 c0194f28 c0600508 c0600508 00006874 c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c0126e11>] ? __mod_timer+0x91/0xa0
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0194f28>] ? sys_epoll_wait+0x3b8/0x470
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c0194f30>] sys_epoll_wait+0x3c0/0x470
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker pickup S 00000000 0 4856 4852
Mar 6 22:04:32 tracker d2757f24 00200046 00000000 00000000 d3d9e8e4 d245d280 00000000 00000000
Mar 6 22:04:32 tracker 00000000 a91c5210 00000056 00000000 00200286 d2757f34 00008f95 00000000
Mar 6 22:04:32 tracker d2757f54 c043c527 00200046 c0194f28 c06005d8 c059762c 00008f95 c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0194f28>] ? sys_epoll_wait+0x3b8/0x470
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c0194f30>] sys_epoll_wait+0x3c0/0x470
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker qmgr S 0000003c 0 4858 4852
Mar 6 22:04:32 tracker d257df24 00200046 6a3143dc 0000003c d26d6724 d3f12940 00000000 00179e85
Mar 6 22:04:32 tracker 00000000 6a48e261 0000003c 00000000 00200286 d257df34 0000a41c ffffffea
Mar 6 22:04:32 tracker d257df54 c043c527 00200046 c0194f28 c059762c c06005d8 0000a41c c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0194f28>] ? sys_epoll_wait+0x3b8/0x470
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c0194f30>] sys_epoll_wait+0x3c0/0x470
Mar 6 22:04:32 tracker [<c0122045>] ? alarm_setitimer+0x35/0x70
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker fetchmail S 0000004b 0 4921 1
Mar 6 22:04:32 tracker cf4f7b10 00200056 95c99347 0000004b cf50a9c4 d3f84700 00000000 00000001
Mar 6 22:04:32 tracker 00000000 95c99348 0000004b 00000000 00200286 cf4f7b20 00004062 00000000
Mar 6 22:04:32 tracker cf4f7b40 c043c527 cf50a780 cf50add4 c06003c8 c06003c8 00004062 c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c0176c27>] do_select+0x4c7/0x5c0
Mar 6 22:04:32 tracker [<c0176760>] ? do_select+0x0/0x5c0
Mar 6 22:04:32 tracker [<c04312ae>] ? ieee80211_master_start_xmit+0x2ce/0x4e0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c035ca58>] ? dev_queue_xmit+0x218/0x300
Mar 6 22:04:32 tracker [<c01163fe>] ? __enqueue_entity+0x8e/0xb0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0117784>] ? try_to_wake_up+0x44/0xe0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c03522c7>] ? sock_def_readable+0x57/0x80
Mar 6 22:04:32 tracker [<c043eb37>] ? _read_unlock+0x27/0x50
Mar 6 22:04:32 tracker [<c03522c7>] ? sock_def_readable+0x57/0x80
Mar 6 22:04:32 tracker [<c03bb7cb>] ? unix_stream_sendmsg+0x18b/0x320
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0176d47>] ? core_sys_select+0x27/0x330
Mar 6 22:04:32 tracker [<c0176f3a>] core_sys_select+0x21a/0x330
Mar 6 22:04:32 tracker [<c0176d47>] ? core_sys_select+0x27/0x330
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c034dee0>] ? sockfd_lookup_light+0x30/0x60
Mar 6 22:04:32 tracker [<c034e955>] ? sys_sendto+0xa5/0xd0
Mar 6 22:04:32 tracker [<c022de5d>] ? _atomic_dec_and_lock+0x2d/0x40
Mar 6 22:04:32 tracker [<c0233fe7>] ? __copy_to_user_ll+0x57/0x60
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c01279e9>] ? do_sigaction+0xd9/0x170
Mar 6 22:04:32 tracker [<c0177444>] sys_select+0xd4/0x190
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker gpm S 00000029 0 4983 1
Mar 6 22:04:32 tracker cf505b10 00000056 1eef45eb 00000029 cf4bc9a4 d3f84040 cf505b20 000e6754
Mar 6 22:04:32 tracker 00000000 1efdad3f 00000029 00000000 00000286 cf505b20 01491a5f 00000304
Mar 6 22:04:32 tracker cf505b40 c043c527 cf505bc4 cf4b7f00 c0600868 c0600868 01491a5f c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c0176c27>] do_select+0x4c7/0x5c0
Mar 6 22:04:32 tracker [<c0176760>] ? do_select+0x0/0x5c0
Mar 6 22:04:32 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c01abe39>] ? __ext3_get_inode_loc+0x149/0x340
Mar 6 22:04:32 tracker [<c01ba195>] ? journal_dirty_metadata+0x95/0x170
Mar 6 22:04:32 tracker [<c01bd7cd>] ? journal_add_journal_head+0xdd/0x1c0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c017b773>] ? __d_lookup+0xe3/0x190
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0176f3a>] core_sys_select+0x21a/0x330
Mar 6 22:04:32 tracker [<c0176d47>] ? core_sys_select+0x27/0x330
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c043ec78>] ? _read_unlock_irq+0x28/0x50
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c01568cf>] ? __do_fault+0x16f/0x3d0
Mar 6 22:04:32 tracker [<c0149f94>] ? unlock_page+0x24/0x30
Mar 6 22:04:32 tracker [<c01568d7>] ? __do_fault+0x177/0x3d0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0177444>] sys_select+0xd4/0x190
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker ntpd S cec0a598 0 5658 1
Mar 6 22:04:32 tracker cc407bf0 00200056 00200296 cec0a598 cf5d2b04 cf7dddc0 cc407c5c cec0a598
Mar 6 22:04:32 tracker cc407be4 c013129b 00000000 00000000 cc407c48 00000000 ffffffff 00000000
Mar 6 22:04:32 tracker cc407c20 c043c555 cc407c48 cf4c1ee0 cc407c14 c03b976d 00db1ec0 c046cf60
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c013129b>] ? add_wait_queue+0x3b/0x50
Mar 6 22:04:32 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:32 tracker [<c03b976d>] ? unix_poll+0x1d/0xc0
Mar 6 22:04:32 tracker [<c01765d4>] do_sys_poll+0x254/0x380
Mar 6 22:04:32 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0118341>] ? hrtick_set+0x61/0x100
Mar 6 22:04:32 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:32 tracker [<c0118387>] ? hrtick_set+0xa7/0x100
Mar 6 22:04:32 tracker [<c043c194>] ? schedule+0x2b4/0x450
Mar 6 22:04:32 tracker [<c043c3f9>] ? preempt_schedule+0x59/0x80
Mar 6 22:04:32 tracker [<c043eb4c>] ? _read_unlock+0x3c/0x50
Mar 6 22:04:32 tracker [<c03522c7>] ? sock_def_readable+0x57/0x80
Mar 6 22:04:32 tracker [<c03bb7cb>] ? unix_stream_sendmsg+0x18b/0x320
Mar 6 22:04:32 tracker [<c034d96b>] ? sock_aio_write+0xeb/0x110
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c0199d8e>] ? dnotify_parent+0x6e/0x80
Mar 6 22:04:32 tracker [<c043ea97>] ? _spin_unlock+0x27/0x50
Mar 6 22:04:32 tracker [<c016a283>] ? do_readv_writev+0x113/0x180
Mar 6 22:04:32 tracker [<c034d880>] ? sock_aio_write+0x0/0x110
Mar 6 22:04:32 tracker [<c016a32f>] ? vfs_writev+0x3f/0x60
Mar 6 22:04:32 tracker [<c01777e5>] sys_poll+0x35/0x80
Mar 6 22:04:32 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:32 tracker =======================
Mar 6 22:04:32 tracker ntpd S 00000000 0 5659 5658
Mar 6 22:04:32 tracker cf7f5bf0 00200056 00000000 00000000 cf7d0284 cf6c24c0 00000000 00000000
Mar 6 22:04:32 tracker 00000000 e66cdc4b 0000004a 00000000 00200286 cf7f5c00 00007924 00000000
Mar 6 22:04:32 tracker cf7f5c20 c043c527 cf7f5c48 cf579d80 c06005d0 c06005d0 00007924 c0126930
Mar 6 22:04:32 tracker Call Trace:
Mar 6 22:04:32 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:32 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:32 tracker [<c01765d4>] do_sys_poll+0x254/0x380
Mar 6 22:04:32 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:32 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:32 tracker [<c021bad6>] ? scatterwalk_done+0x16/0x20
Mar 6 22:04:32 tracker [<c021c923>] ? blkcipher_walk_done+0x83/0x280
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:32 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:32 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:32 tracker [<c0282448>] ? e100_exec_cb+0xe8/0x110
Mar 6 22:04:32 tracker [<c02816d0>] ? e100_xmit_prepare+0x0/0xa0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c035ca58>] ? dev_queue_xmit+0x218/0x300
Mar 6 22:04:33 tracker [<c012318e>] ? local_bh_enable+0x2e/0x90
Mar 6 22:04:33 tracker [<c035c916>] ? dev_queue_xmit+0xd6/0x300
Mar 6 22:04:33 tracker [<c035c874>] ? dev_queue_xmit+0x34/0x300
Mar 6 22:04:33 tracker [<c037bf0d>] ? ip_finish_output+0x12d/0x2d0
Mar 6 22:04:33 tracker [<c037bde0>] ? ip_finish_output+0x0/0x2d0
Mar 6 22:04:33 tracker [<c037cb6d>] ? ip_output+0x6d/0xc0
Mar 6 22:04:33 tracker [<c037bde0>] ? ip_finish_output+0x0/0x2d0
Mar 6 22:04:33 tracker [<c037921c>] ? ip_forward_finish+0x1c/0x30
Mar 6 22:04:33 tracker [<c03793f5>] ? ip_forward+0x1c5/0x340
Mar 6 22:04:33 tracker [<c0379200>] ? ip_forward_finish+0x0/0x30
Mar 6 22:04:33 tracker [<c036cb89>] ? nf_hook_slow+0xe9/0x120
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c0359b19>] ? netif_receive_skb+0x1b9/0x290
Mar 6 22:04:33 tracker [<c0359b37>] ? netif_receive_skb+0x1d7/0x290
Mar 6 22:04:33 tracker [<c03599c8>] ? netif_receive_skb+0x68/0x290
Mar 6 22:04:33 tracker [<c035c50c>] ? process_backlog+0x5c/0xb0
Mar 6 22:04:33 tracker [<c035bfa7>] ? net_rx_action+0x97/0x130
Mar 6 22:04:33 tracker [<c0122c64>] ? _local_bh_enable+0x24/0x80
Mar 6 22:04:33 tracker [<c0122d58>] ? __do_softirq+0x98/0xb0
Mar 6 22:04:33 tracker [<c01777e5>] sys_poll+0x35/0x80
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker rwhod S cf581ce4 0 5723 1
Mar 6 22:04:33 tracker cf581d10 00000056 00000607 cf581ce4 cf5b0ae4 cf7ddb80 c013b69d c06b1a40
Mar 6 22:04:33 tracker cf5b08a0 cf5b0ef4 cec1ed88 cf581d18 00000046 d25af790 d25af6c0 d25af790
Mar 6 22:04:33 tracker cf581d40 c043c555 cf581d28 c043eb8c cf581d58 cec1ed78 cf581d40 c0131143
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:33 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:33 tracker [<c0131143>] ? prepare_to_wait_exclusive+0x53/0x60
Mar 6 22:04:33 tracker [<c0356d33>] __skb_recv_datagram+0x103/0x240
Mar 6 22:04:33 tracker [<c0130fe0>] ? autoremove_wake_function+0x0/0x50
Mar 6 22:04:33 tracker [<c0399029>] udp_recvmsg+0x59/0x300
Mar 6 22:04:33 tracker [<c034ff53>] sock_common_recvmsg+0x43/0x60
Mar 6 22:04:33 tracker [<c034e576>] sock_recvmsg+0xc6/0xf0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c0130fe0>] ? autoremove_wake_function+0x0/0x50
Mar 6 22:04:33 tracker [<c043cce8>] ? mutex_unlock+0x8/0x10
Mar 6 22:04:33 tracker [<c043cce8>] ? mutex_unlock+0x8/0x10
Mar 6 22:04:33 tracker [<c034dee0>] ? sockfd_lookup_light+0x30/0x60
Mar 6 22:04:33 tracker [<c034f41d>] sys_recvfrom+0x7d/0xd0
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c022de5d>] ? _atomic_dec_and_lock+0x2d/0x40
Mar 6 22:04:33 tracker [<c043ea97>] ? _spin_unlock+0x27/0x50
Mar 6 22:04:33 tracker [<c022de5d>] ? _atomic_dec_and_lock+0x2d/0x40
Mar 6 22:04:33 tracker [<c034f946>] sys_socketcall+0x1b6/0x260
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker rwhod S 00000000 0 5724 5723
Mar 6 22:04:33 tracker cc443f3c 00000046 00000000 00000000 cc41c2c4 d3f12b80 00000000 00000000
Mar 6 22:04:33 tracker 00000000 cebbbd5f 0000002e 00000296 00000000 cc443f5c 00000001 cc443f5c
Mar 6 22:04:33 tracker cc443f50 c043d275 00000001 00000000 00000001 cc443f98 c0134532 bfc0bdb4
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c043d275>] do_nanosleep+0x65/0x90
Mar 6 22:04:33 tracker [<c0134532>] hrtimer_nanosleep+0x42/0xb0
Mar 6 22:04:33 tracker [<c01340f0>] ? hrtimer_wakeup+0x0/0x20
Mar 6 22:04:33 tracker [<c01345f8>] sys_nanosleep+0x58/0x60
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker sshd S 00000000 0 5779 1
Mar 6 22:04:33 tracker cc431b10 00200056 00000000 00000000 cc456304 d3f12dc0 00000000 00000000
Mar 6 22:04:33 tracker 00000000 900d1aa1 0000002f 00000000 00000000 00000004 00000008 00000000
Mar 6 22:04:33 tracker cc431b40 c043c555 cc431bc4 d2577240 cf4c1220 cc431b34 c03823da c046d160
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:33 tracker [<c03823da>] ? tcp_poll+0x1a/0x160
Mar 6 22:04:33 tracker [<c0176c27>] do_select+0x4c7/0x5c0
Mar 6 22:04:33 tracker [<c0176760>] ? do_select+0x0/0x5c0
Mar 6 22:04:33 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c01abe39>] ? __ext3_get_inode_loc+0x149/0x340
Mar 6 22:04:33 tracker [<c01ba195>] ? journal_dirty_metadata+0x95/0x170
Mar 6 22:04:33 tracker [<c01bd7cd>] ? journal_add_journal_head+0xdd/0x1c0
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c01b89d6>] ? journal_stop+0x116/0x1e0
Mar 6 22:04:33 tracker [<c0150a2b>] ? balance_dirty_pages_ratelimited_nr+0x4b/0x250
Mar 6 22:04:33 tracker [<c01ae2c7>] ? ext3_ordered_write_end+0xd7/0x130
Mar 6 22:04:33 tracker [<c014b04e>] ? generic_file_buffered_write+0x18e/0x650
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c0176f3a>] core_sys_select+0x21a/0x330
Mar 6 22:04:33 tracker [<c0176d47>] ? core_sys_select+0x27/0x330
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c043ec78>] ? _read_unlock_irq+0x28/0x50
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c01568cf>] ? __do_fault+0x16f/0x3d0
Mar 6 22:04:33 tracker [<c0149f94>] ? unlock_page+0x24/0x30
Mar 6 22:04:33 tracker [<c01568d7>] ? __do_fault+0x177/0x3d0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c01773af>] sys_select+0x3f/0x190
Mar 6 22:04:33 tracker [<c015ae78>] ? sys_munmap+0x38/0x50
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker thttpd S c05ffba0 0 5843 1
Mar 6 22:04:33 tracker cc46dbf0 00000056 00000286 c05ffba0 cf596aa4 cf7dd4c0 cc46dc00 c05ffba0
Mar 6 22:04:33 tracker cc46dbf0 c0126e11 00003921 00000000 00000286 cc46dc00 00003921 00000000
Mar 6 22:04:33 tracker cc46dc20 c043c527 cc46dc48 d2576c40 c0600590 c0600590 00003921 c0126930
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c0126e11>] ? __mod_timer+0x91/0xa0
Mar 6 22:04:33 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:33 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:33 tracker [<c01765d4>] do_sys_poll+0x254/0x380
Mar 6 22:04:33 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c035ca58>] ? dev_queue_xmit+0x218/0x300
Mar 6 22:04:33 tracker [<c012318e>] ? local_bh_enable+0x2e/0x90
Mar 6 22:04:33 tracker [<c035c916>] ? dev_queue_xmit+0xd6/0x300
Mar 6 22:04:33 tracker [<c035c874>] ? dev_queue_xmit+0x34/0x300
Mar 6 22:04:33 tracker [<c04326f0>] ? ieee80211_subif_start_xmit+0x4b0/0x610
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c035ca58>] ? dev_queue_xmit+0x218/0x300
Mar 6 22:04:33 tracker [<c012318e>] ? local_bh_enable+0x2e/0x90
Mar 6 22:04:33 tracker [<c035c916>] ? dev_queue_xmit+0xd6/0x300
Mar 6 22:04:33 tracker [<c035c874>] ? dev_queue_xmit+0x34/0x300
Mar 6 22:04:33 tracker [<c0362276>] ? neigh_resolve_output+0xe6/0x290
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c0421536>] ? sta_info_get+0x56/0x60
Mar 6 22:04:33 tracker [<c0123217>] ? local_bh_enable_ip+0x27/0x60
Mar 6 22:04:33 tracker [<c0421536>] ? sta_info_get+0x56/0x60
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c0354153>] ? skb_dequeue+0x43/0x60
Mar 6 22:04:33 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:33 tracker [<c0354153>] ? skb_dequeue+0x43/0x60
Mar 6 22:04:33 tracker [<c041e9cd>] ? ieee80211_tasklet_handler+0x7d/0xe0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c0107bc8>] ? read_tsc+0x8/0x10
Mar 6 22:04:33 tracker [<c01366c3>] ? getnstimeofday+0x33/0xd0
Mar 6 22:04:33 tracker [<c01777e5>] sys_poll+0x35/0x80
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker cron S c043eb8c 0 5905 1
Mar 6 22:04:33 tracker cf655f3c 00000046 cf655f14 c043eb8c cf652be4 cf5c6940 cf655f3c c0134493
Mar 6 22:04:33 tracker 8438b06a 0000004b c056edfc 00000296 00000000 cf655f5c 00000001 cf655f5c
Mar 6 22:04:33 tracker cf655f50 c043d275 00000001 00000000 00000001 cf655f98 c0134532 bff582d4
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:33 tracker [<c0134493>] ? hrtimer_start+0x63/0xc0
Mar 6 22:04:33 tracker [<c043d275>] do_nanosleep+0x65/0x90
Mar 6 22:04:33 tracker [<c0134532>] hrtimer_nanosleep+0x42/0xb0
Mar 6 22:04:33 tracker [<c01340f0>] ? hrtimer_wakeup+0x0/0x20
Mar 6 22:04:33 tracker [<c01345f8>] sys_nanosleep+0x58/0x60
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker xinetd S 00000000 0 5970 1
Mar 6 22:04:33 tracker cf661b10 00000056 00000000 00000000 cf65ec04 cf5c6700 00000000 00000000
Mar 6 22:04:33 tracker 00000000 7b0e8646 00000032 00000001 00000000 00000006 00000020 00000000
Mar 6 22:04:33 tracker cf661b40 c043c555 cf661bc4 cf631200 cf5c1840 cf661b34 c03823da c046c080
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:33 tracker [<c03823da>] ? tcp_poll+0x1a/0x160
Mar 6 22:04:33 tracker [<c0176c27>] do_select+0x4c7/0x5c0
Mar 6 22:04:33 tracker [<c0176760>] ? do_select+0x0/0x5c0
Mar 6 22:04:33 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c0250ad7>] ? __add_entropy_words+0x1b7/0x1c0
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c03522c7>] ? sock_def_readable+0x57/0x80
Mar 6 22:04:33 tracker [<c043eb37>] ? _read_unlock+0x27/0x50
Mar 6 22:04:33 tracker [<c03522c7>] ? sock_def_readable+0x57/0x80
Mar 6 22:04:33 tracker [<c03bb7cb>] ? unix_stream_sendmsg+0x18b/0x320
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c0176f3a>] core_sys_select+0x21a/0x330
Mar 6 22:04:33 tracker [<c0176d47>] ? core_sys_select+0x27/0x330
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c043ec78>] ? _read_unlock_irq+0x28/0x50
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c01568cf>] ? __do_fault+0x16f/0x3d0
Mar 6 22:04:33 tracker [<c0149f94>] ? unlock_page+0x24/0x30
Mar 6 22:04:33 tracker [<c01568d7>] ? __do_fault+0x177/0x3d0
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c01773af>] sys_select+0x3f/0x190
Mar 6 22:04:33 tracker [<c02344d5>] ? copy_to_user+0x35/0x50
Mar 6 22:04:33 tracker [<c012a06e>] ? sys_rt_sigprocmask+0x7e/0xe0
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker bash S cf69aa40 0 6034 1
Mar 6 22:04:33 tracker d2735f08 00000046 c06b1890 cf69aa40 cf69ac84 d3fffdc0 d2735efc 00000246
Mar 6 22:04:33 tracker c0120a21 00000246 c05a2a00 00000001 c05a2a00 00000001 00000001 0000000e
Mar 6 22:04:33 tracker d2735f78 c0120a4f cf5e2900 c022de5d 00000246 00000000 cf69ac18 00000000
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c0120a21>] ? do_wait+0x531/0xa60
Mar 6 22:04:33 tracker [<c0120a4f>] do_wait+0x55f/0xa60
Mar 6 22:04:33 tracker [<c022de5d>] ? _atomic_dec_and_lock+0x2d/0x40
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c0120fc1>] sys_wait4+0x71/0xc0
Mar 6 22:04:33 tracker [<c0121035>] sys_waitpid+0x25/0x30
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker agetty S 00000000 0 6036 1
Mar 6 22:04:33 tracker cf6b9ebc 00000046 00000000 00000000 cc4182a4 cf7dd940 00000000 00000000
Mar 6 22:04:33 tracker 00000000 75514030 00000033 cf74e1b4 cf6b9ec8 00000000 cf74e000 00000000
Mar 6 22:04:33 tracker cf6b9eec c043c555 cf74e1a4 cf6b9ed8 c043eb8c cf6b9f20 cf74e1a4 cf6b9eec
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:33 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:33 tracker [<c013129b>] ? add_wait_queue+0x3b/0x50
Mar 6 22:04:33 tracker [<c0258660>] read_chan+0x1b0/0x5c0
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c0254f92>] tty_read+0x82/0xc0
Mar 6 22:04:33 tracker [<c02584b0>] ? read_chan+0x0/0x5c0
Mar 6 22:04:33 tracker [<c016a564>] vfs_read+0x94/0x130
Mar 6 22:04:33 tracker [<c0254f10>] ? tty_read+0x0/0xc0
Mar 6 22:04:33 tracker [<c016a9ad>] sys_read+0x3d/0x70
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker agetty S 00000000 0 6037 1
Mar 6 22:04:33 tracker cc463ebc 00000046 00000000 00000000 cf672c24 cf646040 00000000 00000000
Mar 6 22:04:33 tracker 00000000 7707ec61 00000033 cf7569b4 cc463ec8 00000000 cf756800 00000000
Mar 6 22:04:33 tracker cc463eec c043c555 cf7569a4 cc463ed8 c043eb8c cc463f20 cf7569a4 cc463eec
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:33 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:33 tracker [<c013129b>] ? add_wait_queue+0x3b/0x50
Mar 6 22:04:33 tracker [<c0258660>] read_chan+0x1b0/0x5c0
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c0254f92>] tty_read+0x82/0xc0
Mar 6 22:04:33 tracker [<c02584b0>] ? read_chan+0x0/0x5c0
Mar 6 22:04:33 tracker [<c016a564>] vfs_read+0x94/0x130
Mar 6 22:04:33 tracker [<c0254f10>] ? tty_read+0x0/0xc0
Mar 6 22:04:33 tracker [<c016a9ad>] sys_read+0x3d/0x70
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker agetty S 00000033 0 6040 1
Mar 6 22:04:33 tracker cf675ebc 00000046 7af3f6c7 00000033 d27f4964 cf6464c0 00000000 001857f2
Mar 6 22:04:33 tracker 00000000 7b0c4eb9 00000033 cf7511b4 cf675ec8 00000000 cf751000 00000000
Mar 6 22:04:33 tracker cf675eec c043c555 cf7511a4 cf675ed8 c043eb8c cf675f20 cf7511a4 cf675eec
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:33 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:33 tracker [<c013129b>] ? add_wait_queue+0x3b/0x50
Mar 6 22:04:33 tracker [<c0258660>] read_chan+0x1b0/0x5c0
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c0254f92>] tty_read+0x82/0xc0
Mar 6 22:04:33 tracker [<c02584b0>] ? read_chan+0x0/0x5c0
Mar 6 22:04:33 tracker [<c016a564>] vfs_read+0x94/0x130
Mar 6 22:04:33 tracker [<c0122d58>] ? __do_softirq+0x98/0xb0
Mar 6 22:04:33 tracker [<c0254f10>] ? tty_read+0x0/0xc0
Mar 6 22:04:33 tracker [<c016a9ad>] sys_read+0x3d/0x70
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker agetty S 00000033 0 6042 1
Mar 6 22:04:33 tracker cf65debc 00000046 79a0e49d 00000033 cc4542e4 cf6c2dc0 00000000 00a1f39e
Mar 6 22:04:33 tracker 00000000 7a42d83b 00000033 cf7471b4 cf65dec8 00000000 cf747000 00000000
Mar 6 22:04:33 tracker cf65deec c043c555 cf7471a4 cf65ded8 c043eb8c cf65df20 cf7471a4 cf65deec
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:33 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:33 tracker [<c013129b>] ? add_wait_queue+0x3b/0x50
Mar 6 22:04:33 tracker [<c0258660>] read_chan+0x1b0/0x5c0
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c0254f92>] tty_read+0x82/0xc0
Mar 6 22:04:33 tracker [<c02584b0>] ? read_chan+0x0/0x5c0
Mar 6 22:04:33 tracker [<c016a564>] vfs_read+0x94/0x130
Mar 6 22:04:33 tracker [<c0254f10>] ? tty_read+0x0/0xc0
Mar 6 22:04:33 tracker [<c016a9ad>] sys_read+0x3d/0x70
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker agetty S 00000000 0 6044 1
Mar 6 22:04:33 tracker cc469ebc 00000046 00000000 00000000 cf696c64 cf5c6280 00000000 00000000
Mar 6 22:04:33 tracker 00000000 7b79ddb1 00000033 cf7819b4 cc469ec8 00000000 cf781800 00000000
Mar 6 22:04:33 tracker cc469eec c043c555 cf7819a4 cc469ed8 c043eb8c cc469f20 cf7819a4 cc469eec
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:33 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:33 tracker [<c013129b>] ? add_wait_queue+0x3b/0x50
Mar 6 22:04:33 tracker [<c0258660>] read_chan+0x1b0/0x5c0
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c0254f92>] tty_read+0x82/0xc0
Mar 6 22:04:33 tracker [<c02584b0>] ? read_chan+0x0/0x5c0
Mar 6 22:04:33 tracker [<c016a564>] vfs_read+0x94/0x130
Mar 6 22:04:33 tracker [<c0254f10>] ? tty_read+0x0/0xc0
Mar 6 22:04:33 tracker [<c016a9ad>] sys_read+0x3d/0x70
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker spamd S 00000000 0 6070 4747
Mar 6 22:04:33 tracker cf5d9b10 00000056 00000000 00000000 cf5d6b24 d3da7940 00000000 00000000
Mar 6 22:04:33 tracker 00000000 3d4e91ac 0000004b 00000000 00000286 cf5d9b20 0001295b 00000304
Mar 6 22:04:33 tracker cf5d9b40 c043c527 cf5d9bc4 cf5ccbc0 c06005e8 cf627b20 0001295b c0126930
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:33 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:33 tracker [<c0176c27>] do_select+0x4c7/0x5c0
Mar 6 22:04:33 tracker [<c0176760>] ? do_select+0x0/0x5c0
Mar 6 22:04:33 tracker [<c0421536>] ? sta_info_get+0x56/0x60
Mar 6 22:04:33 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c01163fe>] ? __enqueue_entity+0x8e/0xb0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c0176f3a>] core_sys_select+0x21a/0x330
Mar 6 22:04:33 tracker [<c0176d47>] ? core_sys_select+0x27/0x330
Mar 6 22:04:33 tracker [<c0169d0c>] ? do_sync_read+0xcc/0x110
Mar 6 22:04:33 tracker [<c0130fe0>] ? autoremove_wake_function+0x0/0x50
Mar 6 22:04:33 tracker [<c0199d8e>] ? dnotify_parent+0x6e/0x80
Mar 6 22:04:33 tracker [<c0177444>] sys_select+0xd4/0x190
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker spamd S 00000000 0 6090 4747
Mar 6 22:04:33 tracker cf627b10 00000056 00000000 00000000 cf6e8ce4 cf6c2940 00000000 00000000
Mar 6 22:04:33 tracker 00000000 3997c7a7 0000004b 00000000 00000286 cf627b20 0001294b 00000304
Mar 6 22:04:33 tracker cf627b40 c043c527 cf627bc4 cc449d40 cf5d9b20 c057c980 0001294b c0126930
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:33 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:33 tracker [<c0176c27>] do_select+0x4c7/0x5c0
Mar 6 22:04:33 tracker [<c0176760>] ? do_select+0x0/0x5c0
Mar 6 22:04:33 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<d482ff67>] ? uhci_urb_enqueue+0x47/0x7c0 [uhci_hcd]
Mar 6 22:04:33 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c016276d>] ? dma_pool_alloc+0x19d/0x1c0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<d482ff67>] ? uhci_urb_enqueue+0x47/0x7c0 [uhci_hcd]
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c0176f3a>] core_sys_select+0x21a/0x330
Mar 6 22:04:33 tracker [<c0176d47>] ? core_sys_select+0x27/0x330
Mar 6 22:04:33 tracker [<c0169d0c>] ? do_sync_read+0xcc/0x110
Mar 6 22:04:33 tracker [<c0130fe0>] ? autoremove_wake_function+0x0/0x50
Mar 6 22:04:33 tracker [<c0199d8e>] ? dnotify_parent+0x6e/0x80
Mar 6 22:04:33 tracker [<c0177444>] sys_select+0xd4/0x190
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker syslog-ng R running 0 6204 1
Mar 6 22:04:33 tracker cf793bf0 00000056 00000000 00000000 cf59c4a4 d252f700 00000000 00000000
Mar 6 22:04:33 tracker 00000000 e1ac1d82 00000057 00000000 00000286 cf793c00 0004c629 00000000
Mar 6 22:04:33 tracker cf793c20 c043c527 cf793c48 d3ff6c20 c0600660 c0600660 0004c629 c0126930
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c043c527>] schedule_timeout+0x47/0xc0
Mar 6 22:04:33 tracker [<c0126930>] ? process_timeout+0x0/0x10
Mar 6 22:04:33 tracker [<c01765d4>] do_sys_poll+0x254/0x380
Mar 6 22:04:33 tracker [<c0177290>] ? __pollwait+0x0/0xe0
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c043cce8>] ? mutex_unlock+0x8/0x10
Mar 6 22:04:33 tracker [<c043cce8>] ? mutex_unlock+0x8/0x10
Mar 6 22:04:33 tracker [<c03bac32>] ? unix_stream_recvmsg+0x342/0x4d0
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c022de5d>] ? _atomic_dec_and_lock+0x2d/0x40
Mar 6 22:04:33 tracker [<c043ea97>] ? _spin_unlock+0x27/0x50
Mar 6 22:04:33 tracker [<c022de5d>] ? _atomic_dec_and_lock+0x2d/0x40
Mar 6 22:04:33 tracker [<c017fe26>] ? mntput_no_expire+0x16/0x60
Mar 6 22:04:33 tracker [<c016aff6>] ? __fput+0x146/0x190
Mar 6 22:04:33 tracker [<c0107bc8>] ? read_tsc+0x8/0x10
Mar 6 22:04:33 tracker [<c01366c3>] ? getnstimeofday+0x33/0xd0
Mar 6 22:04:33 tracker [<c01777e5>] sys_poll+0x35/0x80
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker atd S 00000000 0 6260 1
Mar 6 22:04:33 tracker cf56ff3c 00000046 00000000 00000000 d258c4e4 d252f940 00000000 00000000
Mar 6 22:04:33 tracker 00000000 bdad70b2 0000004a 00000296 00000000 cf56ff5c 00000001 cf56ff5c
Mar 6 22:04:33 tracker cf56ff50 c043d275 00000001 00000000 00000001 cf56ff98 c0134532 bfecd264
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c043d275>] do_nanosleep+0x65/0x90
Mar 6 22:04:33 tracker [<c0134532>] hrtimer_nanosleep+0x42/0xb0
Mar 6 22:04:33 tracker [<c01340f0>] ? hrtimer_wakeup+0x0/0x20
Mar 6 22:04:33 tracker [<c01345f8>] sys_nanosleep+0x58/0x60
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker smartd D cf609ab0 0 6283 6034
Mar 6 22:04:33 tracker cf609ac8 00000046 000004e2 cf609ab0 cf5e2b44 cf5c6040 00000002 00000d4d
Mar 6 22:04:33 tracker 00000000 00000b39 cf609ab8 c013b61d cf609ad0 00000002 7fffffff cf609b4c
Mar 6 22:04:33 tracker cf609af8 c043c555 cf609aec 00000046 c043bd7e 00000046 cf609b50 7fffffff
Mar 6 22:04:33 tracker Call Trace:
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c043c555>] schedule_timeout+0x75/0xc0
Mar 6 22:04:33 tracker [<c043bd7e>] ? wait_for_common+0x8e/0x150
Mar 6 22:04:33 tracker [<c043bd85>] wait_for_common+0x95/0x150
Mar 6 22:04:33 tracker [<c0117820>] ? default_wake_function+0x0/0x10
Mar 6 22:04:33 tracker [<c043bed2>] wait_for_completion+0x12/0x20
Mar 6 22:04:33 tracker [<c0287c1a>] ide_do_drive_cmd+0xda/0x110
Mar 6 22:04:33 tracker [<c028bdf3>] ide_raw_taskfile+0xa3/0xb0
Mar 6 22:04:33 tracker [<c02264e0>] ? blk_end_sync_rq+0x0/0x30
Mar 6 22:04:33 tracker [<c028c831>] ide_cmd_ioctl+0xf1/0x260
Mar 6 22:04:33 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:33 tracker [<c0118387>] ? hrtick_set+0xa7/0x100
Mar 6 22:04:33 tracker [<c043c194>] ? schedule+0x2b4/0x450
Mar 6 22:04:33 tracker [<c043c3f9>] ? preempt_schedule+0x59/0x80
Mar 6 22:04:33 tracker [<c043eb4c>] ? _read_unlock+0x3c/0x50
Mar 6 22:04:33 tracker [<c03522c7>] ? sock_def_readable+0x57/0x80
Mar 6 22:04:33 tracker [<c0286732>] generic_ide_ioctl+0x322/0x410
Mar 6 22:04:33 tracker [<c034e664>] ? sock_sendmsg+0xc4/0xf0
Mar 6 22:04:33 tracker [<c0290da1>] idedisk_ioctl+0x41/0x120
Mar 6 22:04:33 tracker [<c0227280>] blkdev_driver_ioctl+0x60/0x70
Mar 6 22:04:33 tracker [<c022755e>] blkdev_ioctl+0x2ce/0x860
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c043eb8c>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 6 22:04:33 tracker [<c013bdf5>] ? __lock_acquire+0xb5/0x6f0
Mar 6 22:04:33 tracker [<c013b61d>] ? put_lock_stats+0xd/0x30
Mar 6 22:04:33 tracker [<c013b69d>] ? lock_release_holdtime+0x5d/0x80
Mar 6 22:04:33 tracker [<c022de5d>] ? _atomic_dec_and_lock+0x2d/0x40
Mar 6 22:04:33 tracker [<c043ea97>] ? _spin_unlock+0x27/0x50
Mar 6 22:04:33 tracker [<c018f58b>] block_ioctl+0x1b/0x20
Mar 6 22:04:33 tracker [<c018f570>] ? block_ioctl+0x0/0x20
Mar 6 22:04:33 tracker [<c0175a28>] vfs_ioctl+0x28/0x80
Mar 6 22:04:33 tracker [<c0175ad7>] do_vfs_ioctl+0x57/0x2d0
Mar 6 22:04:33 tracker [<c016b248>] ? fput+0x18/0x20
Mar 6 22:04:33 tracker [<c01682c7>] ? filp_close+0x47/0x70
Mar 6 22:04:33 tracker [<c0175d89>] sys_ioctl+0x39/0x60
Mar 6 22:04:33 tracker [<c0102f9e>] sysenter_past_esp+0x5f/0x91
Mar 6 22:04:33 tracker =======================
Mar 6 22:04:33 tracker Sched Debug Version: v0.07, 2.6.25-rc3 #13
Mar 6 22:04:33 tracker now at 355241.897554 msecs
Mar 6 22:04:33 tracker .sysctl_sched_latency : 20.000000
Mar 6 22:04:33 tracker .sysctl_sched_min_granularity : 4.000000
Mar 6 22:04:33 tracker .sysctl_sched_wakeup_granularity : 10.000000
Mar 6 22:04:33 tracker .sysctl_sched_batch_wakeup_granularity : 10.000000
Mar 6 22:04:33 tracker .sysctl_sched_child_runs_first : 0.000001
Mar 6 22:04:33 tracker .sysctl_sched_features : 39
Mar 6 22:04:33 tracker
Mar 6 22:04:33 tracker cpu#0, 300.696 MHz
Mar 6 22:04:33 tracker .nr_running : 2
Mar 6 22:04:33 tracker .load : 2048
Mar 6 22:04:33 tracker .nr_switches : 63184
Mar 6 22:04:33 tracker .nr_load_updates : 88785
Mar 6 22:04:33 tracker .nr_uninterruptible : 1
Mar 6 22:04:33 tracker .jiffies : 13785
Mar 6 22:04:33 tracker .next_balance : 0.000000
Mar 6 22:04:33 tracker .curr->pid : 0
Mar 6 22:04:33 tracker .clock : 382024.855187
Mar 6 22:04:33 tracker .idle_clock : 127078.456740
Mar 6 22:04:33 tracker .prev_clock_raw : 389663.644811
Mar 6 22:04:33 tracker .clock_warps : 0
Mar 6 22:04:33 tracker .clock_overflows : 128921
Mar 6 22:04:33 tracker .clock_underflows : 36287
Mar 6 22:04:33 tracker .clock_deep_idle_events : 1
Mar 6 22:04:33 tracker .clock_max_delta : 4.000250
Mar 6 22:04:33 tracker .cpu_load[0] : 0
Mar 6 22:04:33 tracker .cpu_load[1] : 0
Mar 6 22:04:33 tracker .cpu_load[2] : 0
Mar 6 22:04:33 tracker .cpu_load[3] : 0
Mar 6 22:04:33 tracker .cpu_load[4] : 2
Mar 6 22:04:33 tracker
Mar 6 22:04:33 tracker cfs_rq
Mar 6 22:04:33 tracker .exec_clock : 223146.738779
Mar 6 22:04:33 tracker .MIN_vruntime : 109054.089901
Mar 6 22:04:33 tracker .min_vruntime : 109054.089901
Mar 6 22:04:33 tracker .max_vruntime : 109054.089901
Mar 6 22:04:33 tracker .spread : 0.000000
Mar 6 22:04:33 tracker .spread0 : 0.000000
Mar 6 22:04:33 tracker .nr_running : 1
Mar 6 22:04:33 tracker .load : 2048
Mar 6 22:04:33 tracker .bkl_count : 782
Mar 6 22:04:33 tracker .nr_spread_over : 0
Mar 6 22:04:33 tracker
Mar 6 22:04:33 tracker cfs_rq
Mar 6 22:04:33 tracker .exec_clock : 19.082890
Mar 6 22:04:33 tracker .MIN_vruntime : 0.000001
Mar 6 22:04:33 tracker .min_vruntime : 109054.089901
Mar 6 22:04:33 tracker .max_vruntime : 0.000001
Mar 6 22:04:33 tracker .spread : 0.000000
Mar 6 22:04:33 tracker .spread0 : 0.000000
Mar 6 22:04:33 tracker .nr_running : 0
Mar 6 22:04:33 tracker .load : 0
Mar 6 22:04:33 tracker .bkl_count : 782
Mar 6 22:04:33 tracker .nr_spread_over : 0
Mar 6 22:04:33 tracker
Mar 6 22:04:33 tracker cfs_rq
Mar 6 22:04:33 tracker .exec_clock : 17486.084550
Mar 6 22:04:33 tracker .MIN_vruntime : 0.000001
Mar 6 22:04:33 tracker .min_vruntime : 109054.089901
Mar 6 22:04:33 tracker .max_vruntime : 0.000001
Mar 6 22:04:33 tracker .spread : 0.000000
Mar 6 22:04:33 tracker .spread0 : 0.000000
Mar 6 22:04:33 tracker .nr_running : 0
Mar 6 22:04:33 tracker .load : 0
Mar 6 22:04:33 tracker .bkl_count : 782
Mar 6 22:04:33 tracker .nr_spread_over : 985
Mar 6 22:04:33 tracker
Mar 6 22:04:33 tracker cfs_rq
Mar 6 22:04:33 tracker .exec_clock : 512.113015
Mar 6 22:04:33 tracker .MIN_vruntime : 0.000001
Mar 6 22:04:33 tracker .min_vruntime : 109054.089901
Mar 6 22:04:33 tracker .max_vruntime : 0.000001
Mar 6 22:04:33 tracker .spread : 0.000000
Mar 6 22:04:33 tracker .spread0 : 0.000000
Mar 6 22:04:33 tracker .nr_running : 0
Mar 6 22:04:33 tracker .load : 0
Mar 6 22:04:33 tracker .bkl_count : 782
Mar 6 22:04:33 tracker .nr_spread_over : 0
Mar 6 22:04:33 tracker
Mar 6 22:04:33 tracker cfs_rq
Mar 6 22:04:33 tracker .exec_clock : 8.019430
Mar 6 22:04:33 tracker .MIN_vruntime : 0.000001
Mar 6 22:04:33 tracker .min_vruntime : 109054.089901
Mar 6 22:04:33 tracker .max_vruntime : 0.000001
Mar 6 22:04:33 tracker .spread : 0.000000
Mar 6 22:04:33 tracker .spread0 : 0.000000
Mar 6 22:04:33 tracker .nr_running : 0
Mar 6 22:04:33 tracker .load : 0
Mar 6 22:04:33 tracker .bkl_count : 782
Mar 6 22:04:33 tracker .nr_spread_over : 8
Mar 6 22:04:33 tracker
Mar 6 22:04:33 tracker cfs_rq
Mar 6 22:04:33 tracker .exec_clock : 351.032391
Mar 6 22:04:33 tracker .MIN_vruntime : 0.000001
Mar 6 22:04:33 tracker .min_vruntime : 109054.089901
Mar 6 22:04:33 tracker .max_vruntime : 0.000001
Mar 6 22:04:33 tracker .spread : 0.000000
Mar 6 22:04:33 tracker .spread0 : 0.000000
Mar 6 22:04:33 tracker .nr_running : 0
Mar 6 22:04:33 tracker .load : 0
Mar 6 22:04:33 tracker .bkl_count : 782
Mar 6 22:04:33 tracker .nr_spread_over : 0
Mar 6 22:04:33 tracker
Mar 6 22:04:33 tracker cfs_rq
Mar 6 22:04:33 tracker .exec_clock : 19.561637
Mar 6 22:04:33 tracker .MIN_vruntime : 0.000001
Mar 6 22:04:33 tracker .min_vruntime : 109054.089901
Mar 6 22:04:33 tracker .max_vruntime : 0.000001
Mar 6 22:04:33 tracker .spread : 0.000000
Mar 6 22:04:33 tracker .spread0 : 0.000000
Mar 6 22:04:33 tracker .nr_running : 0
Mar 6 22:04:33 tracker .load : 0
Mar 6 22:04:33 tracker .bkl_count : 782
Mar 6 22:04:33 tracker .nr_spread_over : 0
Mar 6 22:04:33 tracker
Mar 6 22:04:33 tracker cfs_rq
Mar 6 22:04:33 tracker .exec_clock : 431.571200
Mar 6 22:04:33 tracker .MIN_vruntime : 0.000001
Mar 6 22:04:33 tracker .min_vruntime : 109054.089901
Mar 6 22:04:33 tracker .max_vruntime : 0.000001
Mar 6 22:04:33 tracker .spread : 0.000000
Mar 6 22:04:33 tracker .spread0 : 0.000000
Mar 6 22:04:33 tracker .nr_running : 0
Mar 6 22:04:33 tracker .load : 0
Mar 6 22:04:33 tracker .bkl_count : 782
Mar 6 22:04:33 tracker .nr_spread_over : 0
Mar 6 22:04:33 tracker
Mar 6 22:04:33 tracker cfs_rq
Mar 6 22:04:33 tracker .exec_clock : 123.630002
Mar 6 22:04:33 tracker .MIN_vruntime : 0.000001
Mar 6 22:04:33 tracker .min_vruntime : 109054.089901
Mar 6 22:04:33 tracker .max_vruntime : 0.000001
Mar 6 22:04:33 tracker .spread : 0.000000
Mar 6 22:04:33 tracker .spread0 : 0.000000
Mar 6 22:04:33 tracker .nr_running : 0
Mar 6 22:04:33 tracker .load : 0
Mar 6 22:04:33 tracker .bkl_count : 782
Mar 6 22:04:33 tracker .nr_spread_over : 0
Mar 6 22:04:33 tracker
Mar 6 22:04:33 tracker cfs_rq
Mar 6 22:04:33 tracker .exec_clock : 200909.747265
Mar 6 22:04:33 tracker .MIN_vruntime : 514493.412512
Mar 6 22:04:33 tracker .min_vruntime : 109054.089901
Mar 6 22:04:33 tracker .max_vruntime : 514493.469756
Mar 6 22:04:33 tracker .spread : 0.057244
Mar 6 22:04:33 tracker .spread0 : 0.000000
Mar 6 22:04:33 tracker .nr_running : 2
Mar 6 22:04:33 tracker .load : 4145
Mar 6 22:04:33 tracker .bkl_count : 782
Mar 6 22:04:33 tracker .nr_spread_over : 203
Mar 6 22:04:33 tracker
Mar 6 22:04:33 tracker runnable tasks:
Mar 6 22:04:33 tracker task PID tree-key switches prio exec-runtime sum-exec sum-sleep
Mar 6 22:04:33 tracker ----------------------------------------------------------------------------------------------------------
Mar 6 22:04:33 tracker events/0 5 514493.469756 841 115 514493.469756 82.861698 380462.406210
Mar 6 22:04:33 tracker syslog-ng 6204 514493.412512 1071 120 514493.412512 15253.315887 46112.469835
Mar 6 22:04:33 tracker
Mar 6 22:04:33 tracker Clocksource tsc unstable (delta = 64250611 ns)
Mar 6 22:04:33 tracker Time: jiffies clocksource has been installed.


2008-03-07 08:48:43

by Jens Axboe

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

On Thu, Mar 06 2008, Anders Eriksson wrote:
>
> [email protected] said:
> >> I was a bit unclear on this, the problem is easily reproducible but _only_
> >> on Anders' system (I couldn't reproduce it with smartd here either).
>
> > What IO scheduler is Anders using (and does it have an impact, eg does it
> > hang with deadline as well)?
>
> CONFIG_IOSCHED_NOOP=y
> CONFIG_IOSCHED_AS=y
> CONFIG_IOSCHED_DEADLINE=y
> CONFIG_IOSCHED_CFQ=y
> CONFIG_DEFAULT_IOSCHED="cfq"
>
> On request here's a sysrq-t from smartd on -rc3, you also see exactly where
> smartd gives up (using the gentoo default smasrtd.conf).

Can you try with noop or deadline as the default, to see if it
reproduces with them?

> Might a strace of smartd help?

Nope, looking at the trace it'll be stuck waiting for the ioctl to
finish.

--
Jens Axboe

2008-03-07 08:54:21

by Ingo Molnar

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


* Ingo Molnar <[email protected]> wrote:

> > Presumably any hw issues would get noticed (like missing interrupt)
> > and trigger the error handler, so it looks like this IO is still
> > stuck in the queue somewhere. That mainly points the finger at AS,
> > but given that you cannot reproduce I'm not sure how best to proceed
> > with this...
>
> me neither... just wanted to give notice that something's brewing in
> this area. Will know more after tonight's qa series i guess, if it
> gets above 100 bootups ;-)

no luck - a few hundred successful randconfig bootups overnight (with a
rather complex userspace startup to full X plus networking, and the
testbox is used via the network to compile the next random kernel as
well - etc.) and no failure at all. So there's not much we can do at
this point - i'll keep you updated if anything new happens in the tests.

Ingo

2008-03-07 08:58:01

by Jens Axboe

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

On Fri, Mar 07 2008, Ingo Molnar wrote:
>
> * Ingo Molnar <[email protected]> wrote:
>
> > > Presumably any hw issues would get noticed (like missing interrupt)
> > > and trigger the error handler, so it looks like this IO is still
> > > stuck in the queue somewhere. That mainly points the finger at AS,
> > > but given that you cannot reproduce I'm not sure how best to proceed
> > > with this...
> >
> > me neither... just wanted to give notice that something's brewing in
> > this area. Will know more after tonight's qa series i guess, if it
> > gets above 100 bootups ;-)
>
> no luck - a few hundred successful randconfig bootups overnight (with a
> rather complex userspace startup to full X plus networking, and the
> testbox is used via the network to compile the next random kernel as
> well - etc.) and no failure at all. So there's not much we can do at
> this point - i'll keep you updated if anything new happens in the tests.

OK, so it could possibly be something else or perhaps something that's
existed for a long time.

To capture vital debugging information for cases like this, I had an
idea for a sysrq key that would dump queue and io scheduler info for all
known block devices. That should help pin point where the problem lies.
If we have any letters left in the sysrq namespace :-)

--
Jens Axboe

2008-03-07 09:04:26

by Ingo Molnar

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


* Jens Axboe <[email protected]> wrote:

> > no luck - a few hundred successful randconfig bootups overnight
> > (with a rather complex userspace startup to full X plus networking,
> > and the testbox is used via the network to compile the next random
> > kernel as well - etc.) and no failure at all. So there's not much we
> > can do at this point - i'll keep you updated if anything new happens
> > in the tests.
>
> OK, so it could possibly be something else or perhaps something that's
> existed for a long time.
>
> To capture vital debugging information for cases like this, I had an
> idea for a sysrq key that would dump queue and io scheduler info for
> all known block devices. That should help pin point where the problem
> lies. If we have any letters left in the sysrq namespace :-)

btw., we should reserve one sysrq letter as a "meta" character. If that
letter is 'X' [for Xtended SysRq] then SysRq-X SysRq-B could dump the
block info.

Ingo

2008-03-07 10:03:19

by Paul Mackerras

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

Ingo Molnar writes:

> btw., we should reserve one sysrq letter as a "meta" character. If that
> letter is 'X' [for Xtended SysRq] then SysRq-X SysRq-B could dump the
> block info.

Not 'x', please, since we use that on powerpc already. But otherwise
that's a good idea.

Paul.

2008-03-07 10:08:33

by Ingo Molnar

[permalink] [raw]
Subject: [patch] drivers/char/esp.c: fix bootup lockup (was: Re: Linux 2.6.25-rc4)


randconfig testing found a bootup lockup in drivers/char/esp.c - find
the fix below. Not sure why it became more prominent in 2.6.25-rc4, the
bug seems rather old and i've been doing allyesconfig bootups for ages
with CONFIG_ESP enabled.

------------->
Subject: drivers/char/esp.c: fix bootup lockup
From: Ingo Molnar <[email protected]>
Date: Fri Mar 07 10:47:43 CET 2008

fix this bootup lockup:

PM: Adding info for No Bus:ttyP63
ttyP32 at 0x0240 (irq = 0) is an ESP primary port
BUG: spinlock lockup on CPU#0, swapper/1, f56dd004
Pid: 1, comm: swapper Not tainted 2.6.25-rc4-sched-devel.git-x86-latest.git #402 [<c03ac6f4>] _raw_spin_lock+0x134/0x140
[<c08649be>] _spin_lock_irqsave+0x5e/0x80
[<c0b9fbfe>] ? espserial_init+0x2be/0x6e0
[<c0b9fbfe>] espserial_init+0x2be/0x6e0
[<c0b877a3>] kernel_init+0x83/0x260
[<c0b9f940>] ? espserial_init+0x0/0x6e0
[<c010416a>] ? restore_nocheck_notrace+0x0/0xe
[<c0b87720>] ? kernel_init+0x0/0x260
[<c0b87720>] ? kernel_init+0x0/0x260
[<c0104507>] kernel_thread_helper+0x7/0x10
=======================

kzalloc() is not the way to initialize spinlocks anymore.

Signed-off-by: Ingo Molnar <[email protected]>
---
drivers/char/esp.c | 1 +
1 file changed, 1 insertion(+)

Index: linux/drivers/char/esp.c
===================================================================
--- linux.orig/drivers/char/esp.c
+++ linux/drivers/char/esp.c
@@ -2484,6 +2484,7 @@ static int __init espserial_init(void)
return 0;
}

+ spin_lock_init(&info->lock);
/* rx_trigger, tx_trigger are needed by autoconfig */
info->config.rx_trigger = rx_trigger;
info->config.tx_trigger = tx_trigger;

2008-03-07 15:21:27

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

On Fri, 07 Mar 2008 09:57:48 +0100, Jens Axboe said:

> To capture vital debugging information for cases like this, I had an
> idea for a sysrq key that would dump queue and io scheduler info for all
> known block devices. That should help pin point where the problem lies.
> If we have any letters left in the sysrq namespace :-)

Time for alt-sysrq-cokebottle? :)


Attachments:
(No filename) (226.00 B)

2008-03-07 22:06:26

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


[email protected] said:
> Can you try with noop or deadline as the default, to see if it reproduces
> with them?

Fails in the same way using noop, deadline and cfq on -rc4

/A

2008-03-08 20:23:16

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



On Fri, 7 Mar 2008, Anders Eriksson wrote:
>
> [email protected] said:
> > Can you try with noop or deadline as the default, to see if it reproduces
> > with them?
>
> Fails in the same way using noop, deadline and cfq on -rc4

I think we do want the bisect run here.

My worry is that this is likely very timing-sensitive, so when it starts
failing it might not be because of the commit that actually introduces the
bug, but because some other timing changed, but with some luck that won't
be the case.

Linus

2008-03-08 21:07:14

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


[email protected] said:
> I think we do want the bisect run here.
> My worry is that this is likely very timing-sensitive, so when it starts
> failing it might not be because of the commit that actually introduces the
> bug, but because some other timing changed, but with some luck that won't
> be the case.

I'm on it. Slow machine. Household's router, 4000 versions to go...

/A

2008-03-09 09:24:21

by Pavel Machek

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

Hi!

> > > Presumably any hw issues would get noticed (like missing interrupt)
> > > and trigger the error handler, so it looks like this IO is still
> > > stuck in the queue somewhere. That mainly points the finger at AS,
> > > but given that you cannot reproduce I'm not sure how best to proceed
> > > with this...
> >
> > me neither... just wanted to give notice that something's brewing in
> > this area. Will know more after tonight's qa series i guess, if it
> > gets above 100 bootups ;-)
>
> no luck - a few hundred successful randconfig bootups overnight (with a
> rather complex userspace startup to full X plus networking, and the
> testbox is used via the network to compile the next random kernel as
> well - etc.) and no failure at all. So there's not much we can do at
> this point - i'll keep you updated if anything new happens in the tests.

How many machines are there in your test farm? Would it be possible to
make the neccessary scripts available somewhere? I guess I could make
one or two machines do some automated testing...

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2008-03-09 12:00:23

by Ingo Molnar

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


* Pavel Machek <[email protected]> wrote:

> How many machines are there in your test farm? Would it be possible to
> make the neccessary scripts available somewhere? I guess I could make
> one or two machines do some automated testing...

the thing that took most time to develop were the Kconfig space changes,
i've released them 2 months ago:

http://people.redhat.com/mingo/auto-qa-patches/

the scripts that install a bzImage on the target system are boring and
tied to my environment/hostnames.

with the auto-qa Kconfig patch applied, every "make randconfig" bzImage
(on x86) is supposed to boot up fine - if it doesnt it's a
bug/regression. Add entries to arch/x86/Kconfig.needed to force-enable
drivers that are needed on your boxes.

Ingo

2008-03-09 12:55:42

by Andi Kleen

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

Pavel Machek <[email protected]> writes:
>
> How many machines are there in your test farm? Would it be possible to
> make the neccessary scripts available somewhere? I guess I could make
> one or two machines do some automated testing...

You can also use autoboot

ftp://ftp.firstfloor.org/pub/ak/autoboot/autoboot-1.tgz

[hmm I think it's a slightly older version, but should not
be too difficult to adapt]

These are the scripts we use for automatic testing regularly in Nuernberg.

It's a little different from Ingo's setup I think though and you
really need to use remote controllable power switches for it to work
well [I personally use some cheap USB controlled ones]

-Andi

2008-03-09 13:41:19

by Jiri Slaby

[permalink] [raw]
Subject: Re: [patch] drivers/char/esp.c: fix bootup lockup

On 03/07/2008 11:08 AM, Ingo Molnar wrote:
> randconfig testing found a bootup lockup in drivers/char/esp.c - find
> the fix below. Not sure why it became more prominent in 2.6.25-rc4, the
> bug seems rather old and i've been doing allyesconfig bootups for ages
> with CONFIG_ESP enabled.
>
> ------------->
> Subject: drivers/char/esp.c: fix bootup lockup
> From: Ingo Molnar <[email protected]>
> Date: Fri Mar 07 10:47:43 CET 2008
>
> fix this bootup lockup:
>
> PM: Adding info for No Bus:ttyP63
> ttyP32 at 0x0240 (irq = 0) is an ESP primary port
> BUG: spinlock lockup on CPU#0, swapper/1, f56dd004
> Pid: 1, comm: swapper Not tainted 2.6.25-rc4-sched-devel.git-x86-latest.git #402 [<c03ac6f4>] _raw_spin_lock+0x134/0x140
> [<c08649be>] _spin_lock_irqsave+0x5e/0x80
> [<c0b9fbfe>] ? espserial_init+0x2be/0x6e0
> [<c0b9fbfe>] espserial_init+0x2be/0x6e0
> [<c0b877a3>] kernel_init+0x83/0x260
> [<c0b9f940>] ? espserial_init+0x0/0x6e0
> [<c010416a>] ? restore_nocheck_notrace+0x0/0xe
> [<c0b87720>] ? kernel_init+0x0/0x260
> [<c0b87720>] ? kernel_init+0x0/0x260
> [<c0104507>] kernel_thread_helper+0x7/0x10
> =======================
>
> kzalloc() is not the way to initialize spinlocks anymore.

Good catch, thanks.

2008-03-09 22:50:55

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [patch] drivers/char/esp.c: fix bootup lockup

On Sunday, 9 of March 2008, Jiri Slaby wrote:
> On 03/07/2008 11:08 AM, Ingo Molnar wrote:
> > randconfig testing found a bootup lockup in drivers/char/esp.c - find
> > the fix below. Not sure why it became more prominent in 2.6.25-rc4, the
> > bug seems rather old and i've been doing allyesconfig bootups for ages
> > with CONFIG_ESP enabled.
> >
> > ------------->
> > Subject: drivers/char/esp.c: fix bootup lockup
> > From: Ingo Molnar <[email protected]>
> > Date: Fri Mar 07 10:47:43 CET 2008
> >
> > fix this bootup lockup:
> >
> > PM: Adding info for No Bus:ttyP63
> > ttyP32 at 0x0240 (irq = 0) is an ESP primary port
> > BUG: spinlock lockup on CPU#0, swapper/1, f56dd004
> > Pid: 1, comm: swapper Not tainted 2.6.25-rc4-sched-devel.git-x86-latest.git #402 [<c03ac6f4>] _raw_spin_lock+0x134/0x140
> > [<c08649be>] _spin_lock_irqsave+0x5e/0x80
> > [<c0b9fbfe>] ? espserial_init+0x2be/0x6e0
> > [<c0b9fbfe>] espserial_init+0x2be/0x6e0
> > [<c0b877a3>] kernel_init+0x83/0x260
> > [<c0b9f940>] ? espserial_init+0x0/0x6e0
> > [<c010416a>] ? restore_nocheck_notrace+0x0/0xe
> > [<c0b87720>] ? kernel_init+0x0/0x260
> > [<c0b87720>] ? kernel_init+0x0/0x260
> > [<c0104507>] kernel_thread_helper+0x7/0x10
> > =======================
> >
> > kzalloc() is not the way to initialize spinlocks anymore.
>
> Good catch, thanks.

Is this a regression from 2.6.24?

Rafael

2008-03-09 23:04:51

by Jiri Slaby

[permalink] [raw]
Subject: Re: [patch] drivers/char/esp.c: fix bootup lockup

On 03/09/2008 11:49 PM, Rafael J. Wysocki wrote:
> On Sunday, 9 of March 2008, Jiri Slaby wrote:
>> On 03/07/2008 11:08 AM, Ingo Molnar wrote:
>>> randconfig testing found a bootup lockup in drivers/char/esp.c - find
>>> the fix below. Not sure why it became more prominent in 2.6.25-rc4, the
>>> bug seems rather old and i've been doing allyesconfig bootups for ages
>>> with CONFIG_ESP enabled.
>>>
>>> ------------->
>>> Subject: drivers/char/esp.c: fix bootup lockup
>>> From: Ingo Molnar <[email protected]>
>>> Date: Fri Mar 07 10:47:43 CET 2008
>>>
>>> fix this bootup lockup:
>>>
>>> PM: Adding info for No Bus:ttyP63
>>> ttyP32 at 0x0240 (irq = 0) is an ESP primary port
>>> BUG: spinlock lockup on CPU#0, swapper/1, f56dd004
>>> Pid: 1, comm: swapper Not tainted 2.6.25-rc4-sched-devel.git-x86-latest.git #402 [<c03ac6f4>] _raw_spin_lock+0x134/0x140
>>> [<c08649be>] _spin_lock_irqsave+0x5e/0x80
>>> [<c0b9fbfe>] ? espserial_init+0x2be/0x6e0
>>> [<c0b9fbfe>] espserial_init+0x2be/0x6e0
>>> [<c0b877a3>] kernel_init+0x83/0x260
>>> [<c0b9f940>] ? espserial_init+0x0/0x6e0
>>> [<c010416a>] ? restore_nocheck_notrace+0x0/0xe
>>> [<c0b87720>] ? kernel_init+0x0/0x260
>>> [<c0b87720>] ? kernel_init+0x0/0x260
>>> [<c0104507>] kernel_thread_helper+0x7/0x10
>>> =======================
>>>
>>> kzalloc() is not the way to initialize spinlocks anymore.
>> Good catch, thanks.
>
> Is this a regression from 2.6.24?

I don't think so, the init code hasn't been touched for years...

regards,
--js

2008-03-10 08:56:49

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



[email protected] said:
> [email protected] said:
>> I think we do want the bisect run here.
>> My worry is that this is likely very timing-sensitive, so when it starts
>> failing it might not be because of the commit that actually introduces the
>> bug, but because some other timing changed, but with some luck that won't
>> be the case.

> I'm on it. Slow machine. Household's router, 4000 versions to go...

The bisect came up with this:

18a056feccabdfa9764016a615121b194828bc72 is first bad commit
commit 18a056feccabdfa9764016a615121b194828bc72
Author: Bartlomiej Zolnierkiewicz <[email protected]>
Date: Sat Jan 26 20:13:12 2008 +0100

ide: don't enable local IRQs for PIO-in in driver_cmd_intr() (take 2)

Don't enable local IRQs for PIO-in protocol in driver_cmd_intr().

While at it:

* Remove redundant rq->cmd_type check.

* Read status register after enabling local IRQs for no-data protocol.

v2:
* Re-add DRQ=1 check lost in v1 (noticed by Sergei).

Acked-by: Sergei Shtylyov <[email protected]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>

:040000 040000 5fb514a261b13494c5e9c035f9e7598276ce8839 0fda2eb7d96335061741d7f54ed3e05ca34ac5b8 M drivers

2008-03-10 11:08:17

by Pavel Machek

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

On Sun 2008-03-09 13:55:23, Andi Kleen wrote:
> Pavel Machek <[email protected]> writes:
> >
> > How many machines are there in your test farm? Would it be possible to
> > make the neccessary scripts available somewhere? I guess I could make
> > one or two machines do some automated testing...
>
> You can also use autoboot
>
> ftp://ftp.firstfloor.org/pub/ak/autoboot/autoboot-1.tgz
>
> [hmm I think it's a slightly older version, but should not
> be too difficult to adapt]
>
> These are the scripts we use for automatic testing regularly in Nuernberg.
>
> It's a little different from Ingo's setup I think though and you
> really need to use remote controllable power switches for it to work
> well [I personally use some cheap USB controlled ones]

I lack the power switches. I wonder how Ingo gets around that?

...OTOH power switch should be only needed when we hit a kernel bug,
that should hopefully be rare...

Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2008-03-10 11:50:51

by Andi Kleen

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

On Mon, Mar 10, 2008 at 11:10:53AM +0100, Pavel Machek wrote:
> On Sun 2008-03-09 13:55:23, Andi Kleen wrote:
> > Pavel Machek <[email protected]> writes:
> > >
> > > How many machines are there in your test farm? Would it be possible to
> > > make the neccessary scripts available somewhere? I guess I could make
> > > one or two machines do some automated testing...
> >
> > You can also use autoboot
> >
> > ftp://ftp.firstfloor.org/pub/ak/autoboot/autoboot-1.tgz
> >
> > [hmm I think it's a slightly older version, but should not
> > be too difficult to adapt]
> >
> > These are the scripts we use for automatic testing regularly in Nuernberg.
> >
> > It's a little different from Ingo's setup I think though and you
> > really need to use remote controllable power switches for it to work
> > well [I personally use some cheap USB controlled ones]
>
> I lack the power switches. I wonder how Ingo gets around that?

I use gembird USB powerswitches. They are cheap and work
well under Linux.

>
> ...OTOH power switch should be only needed when we hit a kernel bug,
> that should hopefully be rare...

It happens more often than you think.

-Andi

Subject: Re: Linux 2.6.25-rc4

On Monday 10 March 2008, Anders Eriksson wrote:
>
> [email protected] said:
> > [email protected] said:
> >> I think we do want the bisect run here.
> >> My worry is that this is likely very timing-sensitive, so when it starts
> >> failing it might not be because of the commit that actually introduces the
> >> bug, but because some other timing changed, but with some luck that won't
> >> be the case.
>
> > I'm on it. Slow machine. Household's router, 4000 versions to go...
>
> The bisect came up with this:
>
> 18a056feccabdfa9764016a615121b194828bc72 is first bad commit
> commit 18a056feccabdfa9764016a615121b194828bc72

Hmm, this is the first commit _after_ the previous "guilty"
commit 852738f39258deafb3d89c187cb1a4050820d555 so it just
can't be the "real bad" one...

> Author: Bartlomiej Zolnierkiewicz <[email protected]>
> Date: Sat Jan 26 20:13:12 2008 +0100
>
> ide: don't enable local IRQs for PIO-in in driver_cmd_intr() (take 2)
>
> Don't enable local IRQs for PIO-in protocol in driver_cmd_intr().
>
> While at it:
>
> * Remove redundant rq->cmd_type check.
>
> * Read status register after enabling local IRQs for no-data protocol.
>
> v2:
> * Re-add DRQ=1 check lost in v1 (noticed by Sergei).
>
> Acked-by: Sergei Shtylyov <[email protected]>
> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
>
> :040000 040000 5fb514a261b13494c5e9c035f9e7598276ce8839 0fda2eb7d96335061741d7f54ed3e05ca34ac5b8 M drivers

2008-03-10 13:11:48

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

On Monday, 10 of March 2008, Bartlomiej Zolnierkiewicz wrote:
> On Monday 10 March 2008, Anders Eriksson wrote:
> >
> > [email protected] said:
> > > [email protected] said:
> > >> I think we do want the bisect run here.
> > >> My worry is that this is likely very timing-sensitive, so when it starts
> > >> failing it might not be because of the commit that actually introduces the
> > >> bug, but because some other timing changed, but with some luck that won't
> > >> be the case.
> >
> > > I'm on it. Slow machine. Household's router, 4000 versions to go...
> >
> > The bisect came up with this:
> >
> > 18a056feccabdfa9764016a615121b194828bc72 is first bad commit
> > commit 18a056feccabdfa9764016a615121b194828bc72
>
> Hmm, this is the first commit _after_ the previous "guilty"
> commit 852738f39258deafb3d89c187cb1a4050820d555 so it just
> can't be the "real bad" one...

Well, would that be practical to prepare a patch reverting this commit
and whatever depends on it so that Anders can verify it?

Rafael

2008-03-10 13:20:57

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


[email protected] said:
>> The bisect came up with this:
>>
>> 18a056feccabdfa9764016a615121b194828bc72 is first bad commit
>> commit 18a056feccabdfa9764016a615121b194828bc72

> Hmm, this is the first commit _after_ the previous "guilty" commit
> 852738f39258deafb3d89c187cb1a4050820d555 so it just can't be the "real bad"
> one...

I share the same worry. Towards the end of the bisect run (something like the
4-th last reboot), I was asked to try "2.6.24". Now, I _thought_ 2.6.24 was way
before 852738f39258deafb3d89c187cb1a4050820d555, and hence it should be called
2.X.Y-foobaz something as the others were. Is this the way it should be, or did
I fscked up the bisect?

This was a bisect run between 852738f39.. and 2.5.25-rc1. I got a string of
"bad"s but TWO goods, actually. Those goods sustained a number of reruns of
smartd (I can share the BISECT_LOG if wanted).

And how we can end up with good_start+1 as the guilty one, and STILL have two
good ones during the bisect run..... That's beyond me. lets just say that my
faith in myself and/or bisect starts to decline...

Now I'm considering a 2.6.24 .. 8527 run.
/A


/A


Subject: Re: Linux 2.6.25-rc4

On Monday 10 March 2008, Anders Eriksson wrote:
>
> [email protected] said:
> >> The bisect came up with this:
> >>
> >> 18a056feccabdfa9764016a615121b194828bc72 is first bad commit
> >> commit 18a056feccabdfa9764016a615121b194828bc72
>
> > Hmm, this is the first commit _after_ the previous "guilty" commit
> > 852738f39258deafb3d89c187cb1a4050820d555 so it just can't be the "real bad"
> > one...
>
> I share the same worry. Towards the end of the bisect run (something like the
> 4-th last reboot), I was asked to try "2.6.24". Now, I _thought_ 2.6.24 was way
> before 852738f39258deafb3d89c187cb1a4050820d555, and hence it should be called
> 2.X.Y-foobaz something as the others were. Is this the way it should be, or did
> I fscked up the bisect?

8527 was merged before -rc1 so it is expected that resulting kernel was
called 2.6.24 (though it wasn't really 2.6.24) if CONFIG_LOCALVERSION_AUTO
config option is disabled (it is useful to have it enabled).

> This was a bisect run between 852738f39.. and 2.5.25-rc1. I got a string of
> "bad"s but TWO goods, actually. Those goods sustained a number of reruns of
> smartd (I can share the BISECT_LOG if wanted).
>
> And how we can end up with good_start+1 as the guilty one, and STILL have two
> good ones during the bisect run..... That's beyond me. lets just say that my
> faith in myself and/or bisect starts to decline...
>
> Now I'm considering a 2.6.24 .. 8527 run.

This is worth a try but please remember that the problem may not show up
immediately so it would require few tests to verify each commit (it is also
possible that the problem won't show up at all if we are unlucky).

Thanks,
Bart

Subject: Re: Linux 2.6.25-rc4

On Monday 10 March 2008, Rafael J. Wysocki wrote:
> On Monday, 10 of March 2008, Bartlomiej Zolnierkiewicz wrote:
> > On Monday 10 March 2008, Anders Eriksson wrote:
> > >
> > > [email protected] said:
> > > > [email protected] said:
> > > >> I think we do want the bisect run here.
> > > >> My worry is that this is likely very timing-sensitive, so when it starts
> > > >> failing it might not be because of the commit that actually introduces the
> > > >> bug, but because some other timing changed, but with some luck that won't
> > > >> be the case.
> > >
> > > > I'm on it. Slow machine. Household's router, 4000 versions to go...
> > >
> > > The bisect came up with this:
> > >
> > > 18a056feccabdfa9764016a615121b194828bc72 is first bad commit
> > > commit 18a056feccabdfa9764016a615121b194828bc72
> >
> > Hmm, this is the first commit _after_ the previous "guilty"
> > commit 852738f39258deafb3d89c187cb1a4050820d555 so it just
> > can't be the "real bad" one...
>
> Well, would that be practical to prepare a patch reverting this commit
> and whatever depends on it so that Anders can verify it?

We've already verified that 8527 just makes the problem more likely
to occur (the discussion is in the earlier "-rc3 regression" thread)
so reverting 8527 or 18a0 won't really help.

Thanks,
Bart

2008-03-16 14:03:07

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


Many bisects later, now with taking care of making 'make oldconfig' off a
known good config for each iteration, and doing 10 reboots and 5 smartd
invocations for each version deemed good (not that anyone failed midway).

4d977e43d8ae758434e603cf2455d955f71c77c4 is first bad commit
commit 4d977e43d8ae758434e603cf2455d955f71c77c4
Author: Bartlomiej Zolnierkiewicz <[email protected]>
Date: Sat Jan 26 20:13:12 2008 +0100

ide: check BUSY and ERROR status bits before reading data in drive_cmd_intr()

Acked-by: Sergei Shtylyov <[email protected]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>

:040000 040000 0fda2eb7d96335061741d7f54ed3e05ca34ac5b8 cebc540d20784168d04c159b92bd479593d8c9e8 M drivers


Subject: Re: Linux 2.6.25-rc4

On Sunday 16 March 2008, Anders Eriksson wrote:
>
> Many bisects later, now with taking care of making 'make oldconfig' off a
> known good config for each iteration, and doing 10 reboots and 5 smartd
> invocations for each version deemed good (not that anyone failed midway).
>
> 4d977e43d8ae758434e603cf2455d955f71c77c4 is first bad commit
> commit 4d977e43d8ae758434e603cf2455d955f71c77c4
> Author: Bartlomiej Zolnierkiewicz <[email protected]>
> Date: Sat Jan 26 20:13:12 2008 +0100
>
> ide: check BUSY and ERROR status bits before reading data in drive_cmd_intr()
>
> Acked-by: Sergei Shtylyov <[email protected]>
> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>

This commit is also _after_ the previously "guilty" one
(commit 852738f39258deafb3d89c187cb1a4050820d555)?

IIRC we've agreed that bisection between 2.6.24 and commit 8527* was needed?

Thanks,
Bart

2008-03-16 14:30:47

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


[email protected] said:
> This commit is also _after_ the previously "guilty" one (commit
> 852738f39258deafb3d89c187cb1a4050820d555)?

Yep.

> IIRC we've agreed that bisection between 2.6.24 and commit 8527* was needed?

I did that first, and it pointed to 8527* as the bad one. During this bisect
I took care to always start from a 2.6.24 .config, and do a make oldconfig from
that. A clean series of good emerged.. Unfortunately I don't have the configs
from the previous runs saved.

Given this, I concluded that the configs had to play a role in making a
version go bad, so I decided to do another one between 8527* and 2.6.25-rc1
always based on the 8527* config (which _worked_ when tested with the 2.6.24
config dragged forward. So the upped end of the first bisect was badly chosen)

The attahed was the result of that latter run...

> Thanks,


Subject: Re: Linux 2.6.25-rc4

On Sunday 16 March 2008, Anders Eriksson wrote:
>
> [email protected] said:
> > This commit is also _after_ the previously "guilty" one (commit
> > 852738f39258deafb3d89c187cb1a4050820d555)?
>
> Yep.
>
> > IIRC we've agreed that bisection between 2.6.24 and commit 8527* was needed?
>
> I did that first, and it pointed to 8527* as the bad one. During this bisect
> I took care to always start from a 2.6.24 .config, and do a make oldconfig from
> that. A clean series of good emerged.. Unfortunately I don't have the configs
> from the previous runs saved.
>
> Given this, I concluded that the configs had to play a role in making a
> version go bad, so I decided to do another one between 8527* and 2.6.25-rc1
> always based on the 8527* config (which _worked_ when tested with the 2.6.24
> config dragged forward. So the upped end of the first bisect was badly chosen)
>
> The attahed was the result of that latter run...

Given that the problem manifested with 8527* in the past (w/ whatever config)
then 4d97* just cannot be a guilty commit (== the one introducing the problem).

IOW the 8527* and later commits just make the issue more likely to occur
(moreover there should be no difference in configs between 8527* and 4d97*).

I guess that re-doing bisection between 2.6.24 and 8527* may be fruitless
but maybe somebody has some idea how we can proceed further with debugging
the hang instead? Jens/Ingo?

Thanks,
Bart

2008-03-16 16:57:39

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



On Sun, 16 Mar 2008, Anders Eriksson wrote:
>
> Many bisects later, now with taking care of making 'make oldconfig' off a
> known good config for each iteration, and doing 10 reboots and 5 smartd
> invocations for each version deemed good (not that anyone failed midway).

Ok, this is interesting. It's clearly a regression, so we need to undo it.
However, it's not trivial to revert, since lots of things have changed
around that area since.

In particular, commit 7267c3377443322588cddaf457cf106839a60463 ("ide:
remove REQ_TYPE_ATA_CMD") ended up removing the whole drive_cmd_intr()
function, because now all the commands are handled with the
REQ_TYPE_ATA_TASKFILE model instead, which uses a whole another path.

And quite frankly, I think the commit you bisected to really is very
broken. It starts doing error handling *before* it has handled the DRQ
bit, and that's bogus, since iirc a lot of controllers need to have their
DRQ issues satisfied before anything else.

So what probably happens is that yes, you get an error, but the IDE drive
still wants the code to flush the data it generated, and if we don't do
that, it will never do anything else ever again. Resulting in a hang.

So Anders, can you try these two silly things:

- there's a totally untested patch at the end here that tries to make the
error handling do that DRQ flush unconditionally. Does it make a
difference for you?

- did you already try if ata_piix fixes it?

but I do think that the commit you bisected is crap, crap, crap.

Bartlomiej?

Linus
---
drivers/ide/ide-io.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index 7153796..9105c09 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -462,8 +462,7 @@ static ide_startstop_t ide_ata_error(ide_drive_t *drive, struct request *rq, u8
}
}

- if ((stat & DRQ_STAT) && rq_data_dir(rq) == READ &&
- (hwif->host_flags & IDE_HFLAG_ERROR_STOPS_FIFO) == 0)
+ if ((stat & DRQ_STAT) && rq_data_dir(rq) == READ)
try_to_flush_leftover_data(drive);

if (rq->errors >= ERROR_MAX || blk_noretry_request(rq)) {

2008-03-16 17:14:01

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



On Sun, 16 Mar 2008, Linus Torvalds wrote:
>
> - there's a totally untested patch at the end here that tries to make the
> error handling do that DRQ flush unconditionally. Does it make a
> difference for you?

Ok, it's not going to make any difference, because that
IDE_HFLAG_ERROR_STOPS_FIFO flag won't be set for you anyway.

So assuming it's about a pending DRQ issue that needs to be flushed before
the controller will generate any more interrupts (which your bisect
implies it is), maybe we have one of

- this ide_ata_error() case isn't called at all.

This happens for at least WIN_SPECIFY (see ide_ata_error() - it
returns early)

Could you add a printk() to ide_ata_error() and see if it gets called
when your machine hangs, and if so, what the case was.

- try_to_flush_leftover_data() doesn't work (it does have a test for only
acting on disk drives - is this perhaps a CD-ROM?)

- or rq_data_dir(rq) is wrong for the offending command (again, maybe
the printk() could help with that).

IOW, try something like this instead of the previous patch.

Linus

---
drivers/ide/ide-io.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index 7153796..6a98937 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -414,6 +414,7 @@ static void try_to_flush_leftover_data (ide_drive_t *drive)
{
int i = (drive->mult_count ? drive->mult_count : 1) * SECTOR_WORDS;

+printk("try_to_flush(%d,%d)\n", i, drive->media == ide_disk);
if (drive->media != ide_disk)
return;
while (i > 0) {
@@ -440,7 +441,10 @@ static ide_startstop_t ide_ata_error(ide_drive_t *drive, struct request *rq, u8
{
ide_hwif_t *hwif = drive->hwif;

- if (stat & BUSY_STAT || ((stat & WRERR_STAT) && !drive->nowerr)) {
+printk("ide_ata_error() stat=%02x err=%02x dir=%d CMD=%02x\n",
+ stat, err, rq_data_dir(rq), hwif->INB(IDE_COMMAND_REG));
+
+ if ((stat & BUSY_STAT) || ((stat & WRERR_STAT) && !drive->nowerr)) {
/* other bits are useless when BUSY */
rq->errors |= ERROR_RESET;
} else if (stat & ERR_STAT) {
@@ -462,8 +466,7 @@ static ide_startstop_t ide_ata_error(ide_drive_t *drive, struct request *rq, u8
}
}

- if ((stat & DRQ_STAT) && rq_data_dir(rq) == READ &&
- (hwif->host_flags & IDE_HFLAG_ERROR_STOPS_FIFO) == 0)
+ if ((stat & DRQ_STAT) && rq_data_dir(rq) == READ)
try_to_flush_leftover_data(drive);

if (rq->errors >= ERROR_MAX || blk_noretry_request(rq)) {

Subject: Re: Linux 2.6.25-rc4

On Sunday 16 March 2008, Linus Torvalds wrote:
>
> On Sun, 16 Mar 2008, Anders Eriksson wrote:
> >
> > Many bisects later, now with taking care of making 'make oldconfig' off a
> > known good config for each iteration, and doing 10 reboots and 5 smartd
> > invocations for each version deemed good (not that anyone failed midway).
>
> Ok, this is interesting. It's clearly a regression, so we need to undo it.
> However, it's not trivial to revert, since lots of things have changed
> around that area since.
>
> In particular, commit 7267c3377443322588cddaf457cf106839a60463 ("ide:
> remove REQ_TYPE_ATA_CMD") ended up removing the whole drive_cmd_intr()
> function, because now all the commands are handled with the
> REQ_TYPE_ATA_TASKFILE model instead, which uses a whole another path.
>
> And quite frankly, I think the commit you bisected to really is very
> broken. It starts doing error handling *before* it has handled the DRQ
> bit, and that's bogus, since iirc a lot of controllers need to have their
> DRQ issues satisfied before anything else.

We don't do error handling for special commands (REQ_TYPE_ATA_*) at all,
ide_error() just dumps device's status/error register(s) and finishes early:

ide_startstop_t ide_error (ide_drive_t *drive, const char *msg, u8 stat)
{
struct request *rq;
u8 err;

err = ide_dump_status(drive, msg, stat);

if ((rq = HWGROUP(drive)->rq) == NULL)
return ide_stopped;

/* retry only "normal" I/O: */
if (!blk_fs_request(rq)) {
rq->errors = 1;
ide_end_drive_cmd(drive, stat, err);
return ide_stopped;
}

[ Yeah, I completely agree that it needs some re-design but I don't see how
it can be related to the problem experienced by Anders. ]

> So what probably happens is that yes, you get an error, but the IDE drive

This is unlikely as we should get some error message from ide_dump_status()
and we are not getting any (Anders, please correct me if I'm wrong).

Moreover the problem was initially narrowed down to commit
852738f39258deafb3d89c187cb1a4050820d555 which is two commits _before_
the one that we are currently discussing.

I think that we are looking into completely wrong direction...

Thanks,
Bart

Subject: Re: Linux 2.6.25-rc4

On Sunday 16 March 2008, Bartlomiej Zolnierkiewicz wrote:

[...]

> I think that we are looking into completely wrong direction...

Alt-SysRq-T traces that Anders posted shows that the system hangs inside
block layer, if not clearing DRQ would be the case we should see system
getting stuck inside IDE (or at least IDE commands timing out)...

I really do think that it is the same hang-in-block-layer issue that
Ingo managed to hit once (his system was using libata)...

Thanks,
Bart

2008-03-16 18:14:43

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



On Sun, 16 Mar 2008, Bartlomiej Zolnierkiewicz wrote:
>
> We don't do error handling for special commands (REQ_TYPE_ATA_*) at all,
> ide_error() just dumps device's status/error register(s) and finishes early:

Well that sounds bogus too, for all the same reasons already outlined. The
DRQ flag needs to be cleared up on error!

> Moreover the problem was initially narrowed down to commit
> 852738f39258deafb3d89c187cb1a4050820d555 which is two commits _before_
> the one that we are currently discussing.

.. and that initial narrowing down is now in doubt, with the new one
pointing to that DRQ-logic-changing commit!

IOW, Anders re-did things more carefully, and came to a new result. Why
are you apparenrly ignoring that fact?

Linus

2008-03-16 18:19:53

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


[email protected] said:
> IOW, try something like this instead of the previous patch.

Applied with fuzz 9 on all hunks.

Reboot. Run smartd. Nothing in dmesg. Hang.


Subject: Re: Linux 2.6.25-rc4

On Sunday 16 March 2008, Linus Torvalds wrote:

> > Moreover the problem was initially narrowed down to commit
> > 852738f39258deafb3d89c187cb1a4050820d555 which is two commits _before_
> > the one that we are currently discussing.
>
> .. and that initial narrowing down is now in doubt, with the new one
> pointing to that DRQ-logic-changing commit!
>
> IOW, Anders re-did things more carefully, and came to a new result. Why
> are you apparenrly ignoring that fact?

I just lost track at what is confirmed and what not...

Anders, does the kernel at commit 852738f39258deafb3d89c187cb1a4050820d555
also fail or not?

Thanks,
Bart

2008-03-16 18:24:01

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4




[email protected] said:
> This is unlikely as we should get some error message from ide_dump_status()
> and we are not getting any (Anders, please correct me if I'm wrong).

I don't get any eror message anywhere.


[email protected] said:
> I think that we are looking into completely wrong direction...

I'd be happy to try out debug patches to trace the call path down and sprinkle
it with printks. But, shouldn't the sysrq-t log posted earlier give any clues
as to where things tank?

2008-03-16 18:25:31

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4




[email protected] said:
> I really do think that it is the same hang-in-block-layer issue that Ingo
> managed to hit once (his system was using libata)...

When I tried libata, smartd runs just fine, FWIW.

2008-03-16 19:00:03

by Andrey Borzenkov

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

Jens Axboe wrote:

> On Thu, Mar 06 2008, Ingo Molnar wrote:
>>
>> * Linus Torvalds <[email protected]> wrote:
>>
>> > In particular, the block layer changes should hopefully have sorted
>> > themselves out, and CD burning etc hopefully works for people again.
>>
>> hm, tonight's randconfig bootrun produced a failing (soft-hung) kernel
>> after about 120 iterations - and the log i captured _seems_ to indicate
>> some block IO (or libata) completion weirdness.
>>
>> unfortunately, it's not readily reproducible, and i triggered it with
>> about 100 sched.git and 300 x86.git patches applied. BUT, virtually the
>> same 100+300 patches queue produced a successful 1000+ randconfig
>> testrun over the last weekend so i'm reasonably sure the regression is
>> new and came in via upstream. Also, the config is UP (and it's a rather
>> simple config in other aspects as well), so this must be something
>> rather fundamental, not an SMP race.
>>
>> I just spent about an hour trying to figure out a pattern but the bug
>> just doesnt reproduce after 20 bootup attempts with the same bzImage.
>> When it hung then it hung for hours, so the condition is permanent.
>>
>> I've attached the bootup log which includes the SysRq-T output and the
>> config. The hang seems to occur because an rc.sysinit task is not coming
>> back from io_schedule():
>>
>> rc.sysinit D f75bcc24 0 1922 1893
>> f761c810 00000086 f75bcd38 f75bcc24 1954bff5 00000015 f7746000
>> f761c974 f761c974 f7c17698 c180e7a8 f7747cc4 00000000 f7747ccc
>> c180e7a8 c097bff7 c01a3acb c097c27d c01a3aa0 f7872a90 00000002
>> c01a3aa0 f7747e48 c097c2fc
>> Call Trace:
>> [<c097bff7>] io_schedule+0x37/0x70
>> [<c01a3acb>] sync_buffer+0x2b/0x30
>> [<c097c27d>] __wait_on_bit+0x4d/0x80
>> [<c01a3aa0>] sync_buffer+0x0/0x30
>> [<c01a3aa0>] sync_buffer+0x0/0x30
>> [<c097c2fc>] out_of_line_wait_on_bit+0x4c/0x60
>> [<c0142340>] wake_bit_function+0x0/0x40
>> [<c01a3a51>] __wait_on_buffer+0x21/0x30
>> [<c0209915>] ext3_bread+0x55/0x70
>> [<c020cff8>] ext3_find_entry+0x258/0x660
>> [<c03a0026>] avc_has_perm+0x46/0x50
>> [<c03a0d14>] inode_has_perm+0x44/0x80
>> [<c020de69>] ext3_lookup+0x29/0xa0
>> [<c0189f90>] do_lookup+0x130/0x180
>> [<c018b540>] __link_path_walk+0x340/0xd50
>> [<c03a0d14>] inode_has_perm+0x44/0x80
>> [<c018bf8a>] link_path_walk+0x3a/0xa0
>> [<c016feb4>] __do_fault+0x1a4/0x3d0
>> [<c018c1b7>] do_path_lookup+0x77/0x210
>> [<c018cb57>] __user_walk_fd+0x27/0x40
>> [<c01860d5>] vfs_stat_fd+0x15/0x40
>> [<c016feb4>] __do_fault+0x1a4/0x3d0
>> [<c01861ef>] sys_stat64+0xf/0x30
>> [<c0125a5d>] do_page_fault+0x2ad/0x670
>> [<c03db6cc>] trace_hardirqs_on_thunk+0xc/0x10
>> [<c0115a5f>] sysenter_past_esp+0x5f/0x90
>> =======================
>
> Sorry, I have _no_ ideas on what this could be. We haven't really had
> any related changes in the block layer over that short a time frame. It
> could of course have been introduced earlier, since it seems to be quite
> elusive.
>
> Presumably any hw issues would get noticed (like missing interrupt) and
> trigger the error handler, so it looks like this IO is still stuck in
> the queue somewhere. That mainly points the finger at AS, but given that
> you cannot reproduce I'm not sure how best to proceed with this...
>

Sorry to jump in but I now realized that this looks too similar to the
problem I have reported back at 2.6.22 times; the full thread with title

[possible regression] 2.6.22 reiserfs/libata sporadically hangs on resume
from hibernation

is here: (http://marc.info/?t=118317982600002&r=1&w=2)

and the stacks which I managed to get
(http://marc.info/?l=linux-kernel&m=118317970501209&w=2) have exactly the
same __wait_on_buffer as the one Ingo posted.

May be it rings the bell for someone. Oh, and last time it happened I used
IDE and not libata. Looks like both libata and reiser were red herring
after all.

-andrey

2008-03-16 19:01:11

by Alan

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

O> @@ -462,8 +462,7 @@ static ide_startstop_t ide_ata_error(ide_drive_t *drive, struct request *rq, u8
> }
> }
>
> - if ((stat & DRQ_STAT) && rq_data_dir(rq) == READ &&
> - (hwif->host_flags & IDE_HFLAG_ERROR_STOPS_FIFO) == 0)
> + if ((stat & DRQ_STAT) && rq_data_dir(rq) == READ)
> try_to_flush_leftover_data(drive);

That is instant system death on some chipsets. The state machine on the
promise for example empties the FIFO and if you touch the data port again
before issuing a command you lock the PCI bus.

Alan

2008-03-16 19:09:36

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


[email protected] said:
> Anders, does the kernel at commit 852738f39258deafb3d89c187cb1a4050820d555
> also fail or not?

Turns out it does work.

FWIW, here's the config I'm now using as base for every compile, just
accepting the default whenever asked.

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.24
# Tue Mar 11 16:15:47 2008
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
# CONFIG_X86_64 is not set
CONFIG_X86=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_QUICKLIST=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_CALIBRATE_DELAY=y
# CONFIG_GENERIC_TIME_VSYSCALL is not set
CONFIG_ARCH_SUPPORTS_OPROFILE=y
# CONFIG_ZONE_DMA32 is not set
CONFIG_ARCH_POPULATES_NODE_MAP=y
# CONFIG_AUDIT_ARCH is not set
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_KTIME_SCALAR=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_CGROUPS is not set
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_FAIR_USER_SCHED=y
# CONFIG_FAIR_CGROUP_SCHED is not set
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_EMBEDDED=y
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set
# CONFIG_BLK_DEV_BSG is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_CLASSIC_RCU=y
# CONFIG_PREEMPT_RCU is not set

#
# Processor type and features
#
# CONFIG_TICK_ONESHOT is not set
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
# CONFIG_SMP is not set
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
# CONFIG_X86_VSMP is not set
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_PARAVIRT_GUEST=y
# CONFIG_XEN is not set
# CONFIG_VMI is not set
# CONFIG_LGUEST_GUEST is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
CONFIG_MPENTIUMII=y
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_MPSC is not set
# CONFIG_MCORE2 is not set
# CONFIG_GENERIC_CPU is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_X86_XADD=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=4
# CONFIG_HPET_TIMER is not set
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_RCU_TRACE=y
CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
# CONFIG_X86_MCE is not set
CONFIG_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
CONFIG_MICROCODE=m
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_3G_OPT is not set
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_2G_OPT is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
# CONFIG_X86_PAE is not set
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_NR_QUICK=1
CONFIG_VIRT_TO_BUS=y
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
# CONFIG_SCHED_HRTICK is not set
# CONFIG_KEXEC is not set
CONFIG_PHYSICAL_START=0x100000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_COMPAT_VDSO=y

#
# Power management options
#
CONFIG_PM=y
# CONFIG_PM_LEGACY is not set
# CONFIG_PM_DEBUG is not set
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND_UP_POSSIBLE=y
CONFIG_SUSPEND=y
CONFIG_HIBERNATION_UP_POSSIBLE=y
# CONFIG_HIBERNATION is not set
# CONFIG_ACPI is not set
CONFIG_APM=y
CONFIG_APM_IGNORE_USER_SUSPEND=y
CONFIG_APM_DO_ENABLE=y
CONFIG_APM_CPU_IDLE=y
CONFIG_APM_DISPLAY_BLANK=y
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set

#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
# CONFIG_CPU_IDLE is not set

#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_DOMAINS=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set
CONFIG_PCI_LEGACY=y
# CONFIG_PCI_DEBUG is not set
CONFIG_HT_IRQ=y
CONFIG_ISA_DMA_API=y
CONFIG_ISA=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
# CONFIG_PCCARD is not set
CONFIG_HOTPLUG_PCI=y
# CONFIG_HOTPLUG_PCI_FAKE is not set
# CONFIG_HOTPLUG_PCI_COMPAQ is not set
# CONFIG_HOTPLUG_PCI_IBM is not set
# CONFIG_HOTPLUG_PCI_CPCI is not set
# CONFIG_HOTPLUG_PCI_SHPC is not set

#
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set

#
# Networking
#
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
CONFIG_NET_KEY=y
# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
CONFIG_INET_TUNNEL=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IP_VS is not set
CONFIG_IPV6=y
# CONFIG_IPV6_PRIVACY is not set
# CONFIG_IPV6_ROUTER_PREF is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not set
# CONFIG_INET6_AH is not set
# CONFIG_INET6_ESP is not set
# CONFIG_INET6_IPCOMP is not set
# CONFIG_IPV6_MIP6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
CONFIG_INET6_TUNNEL=y
# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
# CONFIG_INET6_XFRM_MODE_BEET is not set
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
CONFIG_IPV6_SIT=y
CONFIG_IPV6_TUNNEL=y
# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
CONFIG_NETFILTER_DEBUG=y

#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=y
CONFIG_NETFILTER_NETLINK_QUEUE=y
CONFIG_NETFILTER_NETLINK_LOG=y
# CONFIG_NF_CONNTRACK_ENABLED is not set
# CONFIG_NF_CONNTRACK is not set
CONFIG_NETFILTER_XTABLES=y
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
CONFIG_NETFILTER_XT_TARGET_MARK=y
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
CONFIG_NETFILTER_XT_MATCH_COMMENT=y
CONFIG_NETFILTER_XT_MATCH_DCCP=y
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
CONFIG_NETFILTER_XT_MATCH_ESP=y
CONFIG_NETFILTER_XT_MATCH_LENGTH=y
CONFIG_NETFILTER_XT_MATCH_LIMIT=y
CONFIG_NETFILTER_XT_MATCH_MAC=y
CONFIG_NETFILTER_XT_MATCH_MARK=y
CONFIG_NETFILTER_XT_MATCH_POLICY=y
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
CONFIG_NETFILTER_XT_MATCH_QUOTA=y
CONFIG_NETFILTER_XT_MATCH_REALM=y
CONFIG_NETFILTER_XT_MATCH_SCTP=y
CONFIG_NETFILTER_XT_MATCH_STATISTIC=y
CONFIG_NETFILTER_XT_MATCH_STRING=y
CONFIG_NETFILTER_XT_MATCH_TCPMSS=y
# CONFIG_NETFILTER_XT_MATCH_TIME is not set
# CONFIG_NETFILTER_XT_MATCH_U32 is not set
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set

#
# IP: Netfilter Configuration
#
CONFIG_IP_NF_QUEUE=y
CONFIG_IP_NF_IPTABLES=y
# CONFIG_IP_NF_MATCH_IPRANGE is not set
# CONFIG_IP_NF_MATCH_TOS is not set
CONFIG_IP_NF_MATCH_RECENT=y
CONFIG_IP_NF_MATCH_ECN=y
CONFIG_IP_NF_MATCH_AH=y
CONFIG_IP_NF_MATCH_TTL=y
# CONFIG_IP_NF_MATCH_OWNER is not set
CONFIG_IP_NF_MATCH_ADDRTYPE=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
CONFIG_IP_NF_TARGET_LOG=y
CONFIG_IP_NF_TARGET_ULOG=y
CONFIG_IP_NF_MANGLE=y
# CONFIG_IP_NF_TARGET_TOS is not set
CONFIG_IP_NF_TARGET_ECN=y
CONFIG_IP_NF_TARGET_TTL=y
CONFIG_IP_NF_RAW=y
# CONFIG_IP_NF_ARPTABLES is not set

#
# IPv6: Netfilter Configuration (EXPERIMENTAL)
#
CONFIG_IP6_NF_QUEUE=m
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_SCHED is not set
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_SCH_FIFO=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
CONFIG_BT=y
CONFIG_BT_L2CAP=y
CONFIG_BT_SCO=y
CONFIG_BT_RFCOMM=y
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=y
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=y

#
# Bluetooth device drivers
#
CONFIG_BT_HCIUSB=y
CONFIG_BT_HCIUSB_SCO=y
CONFIG_BT_HCIUART=y
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
# CONFIG_BT_HCIUART_LL is not set
CONFIG_BT_HCIBCM203X=y
CONFIG_BT_HCIBPA10X=y
CONFIG_BT_HCIBFUSB=y
CONFIG_BT_HCIVHCI=y
# CONFIG_AF_RXRPC is not set

#
# Wireless
#
CONFIG_CFG80211=y
CONFIG_NL80211=y
CONFIG_WIRELESS_EXT=y
CONFIG_MAC80211=y
CONFIG_MAC80211_RCSIMPLE=y
# CONFIG_MAC80211_DEBUGFS is not set
CONFIG_MAC80211_DEBUG=y
# CONFIG_MAC80211_VERBOSE_DEBUG is not set
# CONFIG_MAC80211_LOWTX_FRAME_DUMP is not set
CONFIG_TKIP_DEBUG=y
CONFIG_MAC80211_DEBUG_COUNTERS=y
CONFIG_MAC80211_IBSS_DEBUG=y
# CONFIG_MAC80211_VERBOSE_PS_DEBUG is not set
# CONFIG_IEEE80211 is not set
CONFIG_RFKILL=y
# CONFIG_RFKILL_INPUT is not set
# CONFIG_NET_9P is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
CONFIG_PARPORT=y
CONFIG_PARPORT_PC=y
# CONFIG_PARPORT_SERIAL is not set
CONFIG_PARPORT_PC_FIFO=y
# CONFIG_PARPORT_PC_SUPERIO is not set
# CONFIG_PARPORT_GSC is not set
# CONFIG_PARPORT_AX88796 is not set
CONFIG_PARPORT_1284=y
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set

#
# Protocols
#
CONFIG_ISAPNP=y
# CONFIG_PNPBIOS is not set
# CONFIG_PNPACPI is not set
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=m
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
CONFIG_CDROM_PKTCDVD=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_MISC_DEVICES=y
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
CONFIG_EEPROM_93CX6=m
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
CONFIG_IDE=y
CONFIG_IDE_MAX_HWIFS=4
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_PROC_FS=y

#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
# CONFIG_BLK_DEV_PLATFORM is not set
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_IDEPNP is not set

#
# PCI IDE chipsets support
#
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_PCIBUS_ORDER=y
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_RZ1000 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_ATIIXP is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_CS5535 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_JMICRON is not set
# CONFIG_BLK_DEV_SC1200 is not set
CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_IT8213 is not set
# CONFIG_BLK_DEV_IT821X is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_BLK_DEV_TC86C001 is not set

#
# Other IDE chipsets support
#

#
# Note: most of these also require special kernel boot parameters
#
# CONFIG_BLK_DEV_4DRIVES is not set
# CONFIG_BLK_DEV_ALI14XX is not set
# CONFIG_BLK_DEV_DTC2278 is not set
# CONFIG_BLK_DEV_HT6560B is not set
# CONFIG_BLK_DEV_QD65XX is not set
# CONFIG_BLK_DEV_UMC8672 is not set
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_IDE_ARCH_OBSOLETE_INIT=y
# CONFIG_BLK_DEV_HD is not set

#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_TGT=y
# CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=y
# CONFIG_CHR_DEV_SCH is not set

#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
CONFIG_SCSI_CONSTANTS=y
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set
CONFIG_SCSI_WAIT_SCAN=m

#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=m
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_7000FASST is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AHA152X is not set
# CONFIG_SCSI_AHA1542 is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DTC3280 is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_PPA is not set
# CONFIG_SCSI_IMM is not set
# CONFIG_SCSI_NCR53C406A is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_QLOGIC_FAS is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_ULTRASTOR is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_SRP is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
# CONFIG_FUSION is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_IEEE1394 is not set
# CONFIG_I2O is not set
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_VETH is not set
# CONFIG_NET_SB1000 is not set
# CONFIG_ARCNET is not set
# CONFIG_PHYLIB is not set
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_NET_TULIP is not set
# CONFIG_AT1700 is not set
# CONFIG_DEPCA is not set
# CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_AC3200 is not set
# CONFIG_APRICOT is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_CS89x0 is not set
# CONFIG_EEPRO100 is not set
CONFIG_E100=y
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_SC92031 is not set
# CONFIG_NET_POCKET is not set
CONFIG_NETDEV_1000=y
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_E1000E is not set
# CONFIG_IP1000 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
CONFIG_NETDEV_10000=y
# CONFIG_CHELSIO_T1 is not set
# CONFIG_CHELSIO_T3 is not set
# CONFIG_IXGBE is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
# CONFIG_MYRI10GE is not set
# CONFIG_NETXEN_NIC is not set
# CONFIG_NIU is not set
# CONFIG_MLX4_CORE is not set
# CONFIG_TEHUTI is not set
# CONFIG_TR is not set

#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
CONFIG_WLAN_80211=y
# CONFIG_IPW2100 is not set
# CONFIG_IPW2200 is not set
# CONFIG_LIBERTAS is not set
# CONFIG_AIRO is not set
# CONFIG_HERMES is not set
# CONFIG_ATMEL is not set
# CONFIG_PRISM54 is not set
# CONFIG_USB_ZD1201 is not set
# CONFIG_RTL8187 is not set
# CONFIG_ADM8211 is not set
# CONFIG_P54_COMMON is not set
# CONFIG_IWLWIFI is not set
# CONFIG_HOSTAP is not set
# CONFIG_B43 is not set
# CONFIG_B43LEGACY is not set
CONFIG_RT2X00=m
CONFIG_RT2X00_LIB=m
CONFIG_RT2X00_LIB_PCI=m
CONFIG_RT2X00_LIB_RFKILL=y
# CONFIG_RT2400PCI is not set
CONFIG_RT2500PCI=m
CONFIG_RT2500PCI_RFKILL=y
# CONFIG_RT61PCI is not set
# CONFIG_RT2500USB is not set
# CONFIG_RT73USB is not set
# CONFIG_RT2X00_DEBUG is not set

#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PLIP is not set
CONFIG_PPP=m
# CONFIG_PPP_MULTILINK is not set
# CONFIG_PPP_FILTER is not set
CONFIG_PPP_ASYNC=m
# CONFIG_PPP_SYNC_TTY is not set
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
# CONFIG_PPP_MPPE is not set
# CONFIG_PPPOE is not set
# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
CONFIG_SLHC=m
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
CONFIG_INPUT_POLLDEV=m

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_INPORT is not set
# CONFIG_MOUSE_LOGIBM is not set
# CONFIG_MOUSE_PC110PAD is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=m
# CONFIG_INPUT_WISTRON_BTNS is not set
# CONFIG_INPUT_ATI_REMOTE is not set
# CONFIG_INPUT_ATI_REMOTE2 is not set
# CONFIG_INPUT_KEYSPAN_REMOTE is not set
# CONFIG_INPUT_POWERMATE is not set
# CONFIG_INPUT_YEALINK is not set
# CONFIG_INPUT_UINPUT is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set

#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_NR_UARTS=2
CONFIG_SERIAL_8250_RUNTIME_UARTS=2
# CONFIG_SERIAL_8250_EXTENDED is not set

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_PRINTER is not set
# CONFIG_PPDEV is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
CONFIG_RTC=m
CONFIG_GEN_RTC=m
CONFIG_GEN_RTC_X=y
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_CS5535_GPIO is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_HANGCHECK_TIMER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
CONFIG_I2C=m
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CHARDEV=m

#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=m
CONFIG_I2C_ALGOPCF=m
# CONFIG_I2C_ALGOPCA is not set

#
# I2C Hardware Bus support
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_ELEKTOR is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_I810 is not set
CONFIG_I2C_PIIX4=m
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_SCx200_ACB is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_TINY_USB is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_VOODOO3 is not set
# CONFIG_I2C_PCA_ISA is not set

#
# Miscellaneous I2C Chip support
#
# CONFIG_SENSORS_DS1337 is not set
# CONFIG_SENSORS_DS1374 is not set
# CONFIG_DS1682 is not set
CONFIG_SENSORS_EEPROM=m
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set

#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_HWMON is not set
# CONFIG_WATCHDOG is not set

#
# Sonics Silicon Backplane
#
CONFIG_SSB_POSSIBLE=y
# CONFIG_SSB is not set

#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set

#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_DVB_CORE is not set
CONFIG_DAB=y
# CONFIG_USB_DABUSB is not set

#
# Graphics support
#
CONFIG_AGP=m
# CONFIG_AGP_ALI is not set
# CONFIG_AGP_ATI is not set
# CONFIG_AGP_AMD is not set
# CONFIG_AGP_AMD64 is not set
CONFIG_AGP_INTEL=m
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
# CONFIG_AGP_VIA is not set
# CONFIG_AGP_EFFICEON is not set
CONFIG_DRM=m
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
# CONFIG_DRM_RADEON is not set
# CONFIG_DRM_I810 is not set
# CONFIG_DRM_I830 is not set
# CONFIG_DRM_I915 is not set
CONFIG_DRM_MGA=m
# CONFIG_DRM_SIS is not set
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
# CONFIG_FB_DDC is not set
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
# CONFIG_FB_SYS_FOPS is not set
CONFIG_FB_DEFERRED_IO=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
# CONFIG_FB_MODE_HELPERS is not set
CONFIG_FB_TILEBLITTING=y

#
# Frame buffer hardware drivers
#
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
CONFIG_FB_VESA=y
# CONFIG_FB_EFI is not set
# CONFIG_FB_HECUBA is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_I810 is not set
# CONFIG_FB_LE80578 is not set
# CONFIG_FB_INTEL is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_CYBLA is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
CONFIG_VIDEO_SELECT=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE is not set
# CONFIG_LOGO is not set

#
# Sound
#
CONFIG_SOUND=y

#
# Advanced Linux Sound Architecture
#
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_HWDEP=y
CONFIG_SND_RAWMIDI=y
CONFIG_SND_SEQUENCER=y
# CONFIG_SND_SEQ_DUMMY is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_RTCTIMER=m
CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
# CONFIG_SND_DYNAMIC_MINORS is not set
CONFIG_SND_SUPPORT_OLD_API=y
# CONFIG_SND_VERBOSE_PROCFS is not set
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set

#
# Generic devices
#
CONFIG_SND_MPU401_UART=y
CONFIG_SND_OPL3_LIB=y
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_MTS64 is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
# CONFIG_SND_PORTMAN2X4 is not set
CONFIG_SND_CS4231_LIB=y

#
# ISA devices
#
# CONFIG_SND_ADLIB is not set
# CONFIG_SND_AD1816A is not set
# CONFIG_SND_AD1848 is not set
# CONFIG_SND_ALS100 is not set
CONFIG_SND_AZT2320=y
# CONFIG_SND_CMI8330 is not set
# CONFIG_SND_CS4231 is not set
# CONFIG_SND_CS4232 is not set
# CONFIG_SND_CS4236 is not set
# CONFIG_SND_DT019X is not set
# CONFIG_SND_ES968 is not set
# CONFIG_SND_ES1688 is not set
# CONFIG_SND_ES18XX is not set
# CONFIG_SND_SC6000 is not set
# CONFIG_SND_GUSCLASSIC is not set
# CONFIG_SND_GUSEXTREME is not set
# CONFIG_SND_GUSMAX is not set
# CONFIG_SND_INTERWAVE is not set
# CONFIG_SND_INTERWAVE_STB is not set
# CONFIG_SND_OPL3SA2 is not set
# CONFIG_SND_OPTI92X_AD1848 is not set
# CONFIG_SND_OPTI92X_CS4231 is not set
# CONFIG_SND_OPTI93X is not set
# CONFIG_SND_MIRO is not set
# CONFIG_SND_SB8 is not set
# CONFIG_SND_SB16 is not set
# CONFIG_SND_SBAWE is not set
# CONFIG_SND_SGALAXY is not set
# CONFIG_SND_SSCAPE is not set
# CONFIG_SND_WAVEFRONT is not set

#
# PCI devices
#
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS5530 is not set
# CONFIG_SND_CS5535AUDIO is not set
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
# CONFIG_SND_DARLA24 is not set
# CONFIG_SND_GINA24 is not set
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not set
# CONFIG_SND_MIA is not set
# CONFIG_SND_ECHO3G is not set
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not set
# CONFIG_SND_INDIGODJ is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_HDA_INTEL is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set

#
# USB devices
#
# CONFIG_SND_USB_AUDIO is not set
# CONFIG_SND_USB_USX2Y is not set
# CONFIG_SND_USB_CAIAQ is not set

#
# System on Chip audio support
#
# CONFIG_SND_SOC is not set

#
# SoC Audio support for SuperH
#

#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW is not set

#
# USB Input Devices
#
# CONFIG_USB_HID is not set

#
# USB HID Boot Protocol drivers
#
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set

#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set
# CONFIG_USB_PERSIST is not set
# CONFIG_USB_OTG is not set

#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=m
# CONFIG_USB_EHCI_SPLIT_ISO is not set
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
# CONFIG_USB_ISP116X_HCD is not set
CONFIG_USB_OHCI_HCD=m
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_UHCI_HCD=m
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set

#
# USB Device Class drivers
#
CONFIG_USB_ACM=y
CONFIG_USB_PRINTER=y

#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#

#
# may also be needed; see USB_STORAGE Help for more information
#
CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_LIBUSUAL=y

#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set
# CONFIG_USB_MON is not set

#
# USB port drivers
#
# CONFIG_USB_USS720 is not set

#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL is not set

#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_BERRY_CHARGE is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGET is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set

#
# USB DSL modem support
#

#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_INFINIBAND is not set
CONFIG_EDAC=y

#
# Reporting subsystems
#
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_MM_EDAC=y
# CONFIG_EDAC_AMD76X is not set
# CONFIG_EDAC_E7XXX is not set
# CONFIG_EDAC_E752X is not set
# CONFIG_EDAC_I82875P is not set
# CONFIG_EDAC_I82975X is not set
# CONFIG_EDAC_I3000 is not set
# CONFIG_EDAC_I82860 is not set
# CONFIG_EDAC_R82600 is not set
# CONFIG_EDAC_I5000 is not set
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
CONFIG_VIRTUALIZATION=y
# CONFIG_KVM is not set
# CONFIG_LGUEST is not set

#
# Userspace I/O
#
# CONFIG_UIO is not set

#
# Firmware Drivers
#
# CONFIG_EDD is not set
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_DMIID=y

#
# File systems
#
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
# CONFIG_EXT3_FS_XATTR is not set
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
CONFIG_MINIX_FS=m
CONFIG_ROMFS_FS=m
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
CONFIG_AUTOFS4_FS=y
# CONFIG_FUSE_FS is not set

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=y
CONFIG_UDF_NLS=y

#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_NTFS_FS=m
# CONFIG_NTFS_DEBUG is not set
CONFIG_NTFS_RW=y

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_CONFIGFS_FS is not set

#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
CONFIG_CRAMFS=m
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFS_V4 is not set
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
# CONFIG_NFSD_V4 is not set
# CONFIG_NFSD_TCP is not set
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
# CONFIG_SUNRPC_BIND34 is not set
# CONFIG_RPCSEC_GSS_KRB5 is not set
# CONFIG_RPCSEC_GSS_SPKM3 is not set
CONFIG_SMB_FS=m
# CONFIG_SMB_NLS_DEFAULT is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=m
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=m
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=m
# CONFIG_DLM is not set
CONFIG_INSTRUMENTATION=y
# CONFIG_PROFILING is not set
# CONFIG_KPROBES is not set
# CONFIG_MARKERS is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_UNUSED_SYMBOLS=y
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
CONFIG_SCHEDSTATS=y
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_SLAB is not set
CONFIG_DEBUG_PREEMPT=y
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_LOCK_ALLOC=y
# CONFIG_PROVE_LOCKING is not set
CONFIG_LOCKDEP=y
CONFIG_LOCK_STAT=y
# CONFIG_DEBUG_LOCKDEP is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
CONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
CONFIG_FRAME_POINTER=y
CONFIG_FORCED_INLINING=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SAMPLES is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_DEBUG_RODATA is not set
# CONFIG_4KSTACKS is not set
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y
CONFIG_DOUBLEFAULT=y

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=y
# CONFIG_CRYPTO_SEQIV is not set
CONFIG_CRYPTO_MANAGER=y
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
CONFIG_CRYPTO_ECB=y
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_XTS is not set
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_CRYPTD is not set
# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_TWOFISH_586 is not set
# CONFIG_CRYPTO_SERPENT is not set
CONFIG_CRYPTO_AES=y
# CONFIG_CRYPTO_AES_586 is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_TEA is not set
CONFIG_CRYPTO_ARC4=y
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_SALSA20_586 is not set
# CONFIG_CRYPTO_DEFLATE is not set
CONFIG_CRYPTO_MICHAEL_MIC=y
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_TEST is not set
# CONFIG_CRYPTO_AUTHENC is not set
# CONFIG_CRYPTO_LZO is not set
# CONFIG_CRYPTO_HW is not set

#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=m
# CONFIG_CRC16 is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=y
CONFIG_TEXTSEARCH_BM=y
CONFIG_TEXTSEARCH_FSM=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y

2008-03-16 19:12:37

by Alan

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

On Sun, 16 Mar 2008 11:13:42 -0700 (PDT)
Linus Torvalds <[email protected]> wrote:

>
>
> On Sun, 16 Mar 2008, Bartlomiej Zolnierkiewicz wrote:
> >
> > We don't do error handling for special commands (REQ_TYPE_ATA_*) at all,
> > ide_error() just dumps device's status/error register(s) and finishes early:
>
> Well that sounds bogus too, for all the same reasons already outlined. The
> DRQ flag needs to be cleared up on error!

No it doesn't. DRQ simply means "drive has more data for the controller
if you want it". Interrupts are controlled via IEN and the interrupt line.

If the drive wants to give us data and we end the transaction that is
fine. In practice a tiny few devices crap themselves if we don't.

A few controllers require specific magic, either to ensure we never touch
data after an error, or that we drain enough bits to empty the internal
fifo the controller is using to improve ata performance and latches the
IRQ arrival against.

The PIIX/ICH is as it happens one of the most forgiving controllers
anyway. The later ICH (the ones that are also AHCI) are a bit fussier
about handling them to the spec because they seem to be some kind of
magic ICH emulation layer on an AHCI chip.

Alan


2008-03-16 19:41:09

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



On Sun, 16 Mar 2008, Alan Cox wrote:
>
> No it doesn't. DRQ simply means "drive has more data for the controller
> if you want it". Interrupts are controlled via IEN and the interrupt line.

A _lot_ of chips require you to clear the DRQ by taking the data they
have.

> If the drive wants to give us data and we end the transaction that is
> fine. In practice a tiny few devices crap themselves if we don't.

More than a few tiny devices from what I remember. It tends to be the
other way around - most devices do *not* want to get new commands until
you've finished the previous one by draining the queues.

Linus

Subject: Re: Linux 2.6.25-rc4

On Sunday 16 March 2008, Linus Torvalds wrote:
>
> On Sun, 16 Mar 2008, Bartlomiej Zolnierkiewicz wrote:
> >
> > We don't do error handling for special commands (REQ_TYPE_ATA_*) at all,
> > ide_error() just dumps device's status/error register(s) and finishes early:
>
> Well that sounds bogus too, for all the same reasons already outlined. The
> DRQ flag needs to be cleared up on error!

OK, lets try it.

From: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] ide: correctly handle DRQ bit set on error also for special requests

commit 4d977e43d8ae758434e603cf2455d955f71c77c4 ("ide: check BUSY and ERROR
status bits before reading data in drive_cmd_intr()") changed DRQ handling
logic (as pointed out by Linus).

Fix it by flushing leftover data for commands using PIO-in protocol
and special requests (rq->cmd_type == REQ_TYPE_ATA_TASKFILE).

Cc: Anders Eriksson <[email protected]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
---
against 2.6.25-rc5, untested

drivers/ide/ide-io.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)

Index: b/drivers/ide/ide-io.c
===================================================================
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -540,12 +540,19 @@ EXPORT_SYMBOL_GPL(__ide_error);

ide_startstop_t ide_error (ide_drive_t *drive, const char *msg, u8 stat)
{
- struct request *rq;
+ ide_hwif_t *hwif = drive->hwif;
+ struct request *rq = hwif->hwgroup->rq;
u8 err;

+ if (rq && rq->cmd_type == REQ_TYPE_ATA_TASKFILE) {
+ if (hwif->data_phase == TASKFILE_IN && (stat & DRQ_STAT) &&
+ (hwif->host_flags & IDE_HFLAG_ERROR_STOPS_FIFO) == 0)
+ try_to_flush_leftover_data(drive);
+ }
+
err = ide_dump_status(drive, msg, stat);

- if ((rq = HWGROUP(drive)->rq) == NULL)
+ if (rq == NULL)
return ide_stopped;

/* retry only "normal" I/O: */

2008-03-16 20:46:58

by Alan

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

On Sun, 16 Mar 2008 12:39:43 -0700 (PDT)
Linus Torvalds <[email protected]> wrote:

>
>
> On Sun, 16 Mar 2008, Alan Cox wrote:
> >
> > No it doesn't. DRQ simply means "drive has more data for the controller
> > if you want it". Interrupts are controlled via IEN and the interrupt line.
>
> A _lot_ of chips require you to clear the DRQ by taking the data they
> have.

Almost none and mostly very old ones. I'm not saying we shouldn't do it
(except where it hangs the hardware - hence the FIFO flag) but for the
traces presented and hardware reported it appears to be a bit of a red
herring.

> > If the drive wants to give us data and we end the transaction that is
> > fine. In practice a tiny few devices crap themselves if we don't.
>
> More than a few tiny devices from what I remember. It tends to be the
> other way around - most devices do *not* want to get new commands until
> you've finished the previous one by draining the queues.

Not in my experience having maintained a lot of ATA drivers for a very
long time. In fact the changes for draining the DRQ went into libata only
very recently because it was only when we had a distro sized userbase
with PATA devices that it became apparent that a few corner case problems
remained.

Alan

2008-03-16 21:07:15

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



On Sun, 16 Mar 2008, Alan Cox wrote:
>
> > A _lot_ of chips require you to clear the DRQ by taking the data they
> > have.
>
> Almost none and mostly very old ones.

Well, I admittedly haven't been involved in IDE in about a decade, so
yeah, maybe it's simply no longer true. That said, if the second bisection
was accurate (which is admittedly a rasonably big "if"), it really looks
like it would be related to the fact that we used to empty the data buffer
before handling errors for REQ_TYPE_ATA_CMD commands.

> Not in my experience having maintained a lot of ATA drivers for a very
> long time. In fact the changes for draining the DRQ went into libata only
> very recently because it was only when we had a distro sized userbase
> with PATA devices that it became apparent that a few corner case problems
> remained.

.. but as you noticed, it's almost never wrong to drain (the only chipset
it's marked for is some broken pdc202xx one), and it definitely *is* wrong
not to drain.

Also, one reason you'd not necessarily even see this is that with DMA,
this is a non-issue (since the hardware DMA engine will be doing all the
draining), so in order to ever see this you have to still use PIO _and_
you have to see IDE command errors in the first place _and_ you have to
have a device that actually keeps DRQ enabled even at an error.

All of which are hopefully fairly rare by now (and getting rarer, at last
for the PIO one).

I also wouldn't be entirely surprised if the DRQ behavior may even be
command-specific, with the regular data path for read/write quite possibly
being different from the special commands that go through some internal
drive firmware logic paths.

So I could well imagine (for example) that when a drive raises an IO error
due to a read or write fault, the DRQ line will be cleared by the drive,
but that special commands might have some firmware-directed separate FIFO
that needs draining.

Linus

2008-03-16 22:59:49

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


[email protected] said:
> OK, lets try it.

rc5 fails with and without that patch.

/A

2008-03-16 23:29:03

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



On Sun, 16 Mar 2008, Anders Eriksson wrote:
>
> rc5 fails with and without that patch.

Can you try to sprinkle printk's around to see where it actually ends up
stopping?

Since all special commands should now go through the taskfile interface
(Bartlomiej - correct?), I guess just a printk() at the top of
do_rw_taskfile() should at least get the ball rolling. Even something that
just prints out task->data_phase and tf->command would start to unravel at
least what the last command is before it hangs..

Linus

2008-03-17 07:23:35

by Jens Axboe

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

On Sun, Mar 16 2008, Bartlomiej Zolnierkiewicz wrote:
> On Sunday 16 March 2008, Bartlomiej Zolnierkiewicz wrote:
>
> [...]
>
> > I think that we are looking into completely wrong direction...
>
> Alt-SysRq-T traces that Anders posted shows that the system hangs inside
> block layer, if not clearing DRQ would be the case we should see system
> getting stuck inside IDE (or at least IDE commands timing out)...

The bisect ends up pointing at IDE bits everytime, plus it's io
scheduler independent. So I don't think a generic issue is very likely.

> I really do think that it is the same hang-in-block-layer issue that
> Ingo managed to hit once (his system was using libata)...

There's no data to back any such conclusion up, that would be extremely
hand wavy (at best).

Ingo hit a hang in one boot out of hundreds to thousands. Anders can
reproduce easily, should be easy enough to narrow down.

--
Jens Axboe

2008-03-17 21:10:40

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


[email protected] said:
> Can you try to sprinkle printk's around to see where it actually ends up
> stopping?

> Since all special commands should now go through the taskfile interface
> (Bartlomiej - correct?), I guess just a printk() at the top of
> do_rw_taskfile() should at least get the ball rolling. Even something that
> just prints out task->data_phase and tf->command would start to unravel at
> least what the last command is before it hangs..

Tossing a prink in like so:
ide_startstop_t do_rw_taskfile (ide_drive_t *drive, ide_task_t *task)
{
ide_hwif_t *hwif = HWIF(drive);
struct ide_taskfile *tf = &task->tf;
ide_handler_t *handler = NULL;

printk("do_rw_taskfile(task->data_phase=%i, tf->command=%i\n",task->data_phase,tf->command);

if (task->data_phase == TASKFILE_MULTI_IN ||



Yields:
Mar 17 21:57:29 tippex smartd[5810]: smartd version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Mar 17 21:57:29 tippex smartd[5810]: Home page is http://smartmontools.sourceforge.net/
Mar 17 21:57:29 tippex smartd[5810]: Opened configuration file /etc/smartd.conf
Mar 17 21:57:29 tippex do_rw_taskfile(task->data_phase=32, tf->command=37
Mar 17 21:57:29 tippex do_rw_taskfile(task->data_phase=1, tf->command=236
Mar 17 21:57:29 tippex smartd[5810]: Configuration file /etc/smartd.conf parsed.
Mar 17 21:57:29 tippex smartd[5810]: Device: /dev/hda, opened
Mar 17 21:57:29 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
Mar 17 21:57:29 tippex smartd[5810]: Device: /dev/hda, found in smartd database.
Mar 17 21:57:29 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
Mar 17 21:57:30 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 17 21:57:30 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 17 21:57:30 tippex do_rw_taskfile(task->data_phase=1, tf->command=236
Mar 17 21:57:30 tippex smartd[5810]: Device: /dev/hda, can't monitor Current Pending Sector count - no Attribute 197
Mar 17 21:57:30 tippex smartd[5810]: Device: /dev/hda, can't monitor Offline Uncorrectable Sector count - no Attribute 198
Mar 17 21:57:30 tippex smartd[5810]: Device: /dev/hda, can't monitor Temperature, ignoring -W Directive
Mar 17 21:57:30 tippex smartd[5810]: Device: /dev/hda, appears to lack SMART Self-Test log; disabling -l selftest (override with -T permissive Directive)
Mar 17 21:57:30 tippex smartd[5810]: Device: /dev/hda, appears to lack SMART Error log; disabling -l error (override with -T permissive Directive)
Mar 17 21:57:30 tippex smartd[5810]: Device: /dev/hda, is SMART capable. Adding to "monitor" list.
Mar 17 21:57:30 tippex smartd[5810]: Device: /dev/hda, opened
Mar 17 21:57:30 tippex smartd[5810]: Device: /dev/hda, found in smartd database.
Mar 17 21:57:30 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
Mar 17 21:57:30 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 17 21:58:00 tippex hda: lost interrupt


And the usual freeze. This is on -rc5 with Barts latest suggestion.

next?

/A

2008-03-17 22:54:46

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



On Mon, 17 Mar 2008, Anders Eriksson wrote:
>
> Mar 17 21:57:30 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
> Mar 17 21:58:00 tippex hda: lost interrupt
>
> And the usual freeze. This is on -rc5 with Barts latest suggestion.
>
> next?

Do you get into ide_error() too? That 176 is WIN_SMART, but you had
earlier WIN_SMART commands that worked ok, so it's something specific that
triggers it. data_phase = 1 is TASKFILE_IN.

So try to see if you get to ide_error(), which is where Bartlomiejs latest
patch was in effect - but add a few printk's there to print out the 'stat'
variable etc to see if it actually triggers. And maybe a WARN_ON(1) to get
the trace..

Linus

2008-03-18 00:19:17

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


[email protected] said:
> So try to see if you get to ide_error(), which is where Bartlomiejs latest
> patch was in effect - but add a few printk's there to print out the 'stat'
> variable etc to see if it actually triggers. And maybe a WARN_ON(1) to get
> the trace..

Seems we don't. At least this addition didn't yield anything:

ide_startstop_t ide_error (ide_drive_t *drive, const char *msg, u8 stat)
{
ide_hwif_t *hwif = drive->hwif;
struct request *rq = hwif->hwgroup->rq;
u8 err;

printk("ide_error(msg=%s, stat=%i)\n",msg,stat);
WARN_ON(1);
if (rq && rq->cmd_type == REQ_TYPE_ATA_TASKFILE) {

Going to bed...

/A

Subject: Re: Linux 2.6.25-rc4

On Tuesday 18 March 2008, Anders Eriksson wrote:
>
> [email protected] said:
> > So try to see if you get to ide_error(), which is where Bartlomiejs latest
> > patch was in effect - but add a few printk's there to print out the 'stat'
> > variable etc to see if it actually triggers. And maybe a WARN_ON(1) to get
> > the trace..
>
> Seems we don't. At least this addition didn't yield anything:
>
> ide_startstop_t ide_error (ide_drive_t *drive, const char *msg, u8 stat)
> {
> ide_hwif_t *hwif = drive->hwif;
> struct request *rq = hwif->hwgroup->rq;
> u8 err;
>
> printk("ide_error(msg=%s, stat=%i)\n",msg,stat);
> WARN_ON(1);
> if (rq && rq->cmd_type == REQ_TYPE_ATA_TASKFILE) {
>

Could you also add printk() to task_in_intr()?

---
drivers/ide/ide-taskfile.c | 2 ++
1 file changed, 2 insertions(+)

Index: b/drivers/ide/ide-taskfile.c
===================================================================
--- a/drivers/ide/ide-taskfile.c
+++ b/drivers/ide/ide-taskfile.c
@@ -433,6 +433,8 @@ static ide_startstop_t task_in_intr(ide_

/* new way for dealing with premature shared PCI interrupts */
if (!OK_STAT(stat, DRQ_STAT, BAD_R_STAT)) {
+ printk(KERN_INFO "%s: %s: stat=%02x\n",
+ __func__, drive->name, stat);
if (stat & (ERR_STAT | DRQ_STAT))
return task_error(drive, rq, __FUNCTION__, stat);
/* No data yet, so wait for another IRQ. */

2008-03-18 13:33:48

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


[email protected] said:
> Could you also add printk() to task_in_intr()?

Mar 18 14:18:26 tippex do_rw_taskfile(task->data_phase=1, tf->command=236
Mar 18 14:18:26 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
Mar 18 14:18:26 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 14:18:26 tippex task_in_intr: hda: stat=50

2008-03-19 19:26:38

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



On Wed, 19 Mar 2008, Bartlomiej Zolnierkiewicz wrote:
>
> Your patch is more robust and we should go with it
> (and thanks for fixing this bug!).

Ok, I committed the patch as-is, since it's what Anders tested, but I'm
not at all convinced that it is necessarily the best or final form. The
things I am aware of but didn't think about all *that* deeply:

- do we get return values etc right (ie if we complete the command that
didn't give any data, how do we account the size of it?)

- what about that remaining old unexpected case? I kept the "wait for it
with timeout" behaviour for the case that wasn't an issue here, but if
it really is a shared interrupt, that seems like it's going to always
reset the timeout to WAIT_WORSTCASE, which doesn't sound really right.

so I think this particular bug is fixed and we should be better off, but
I'm definitely not claiming that the code shouldn't have people thinking
about improving it..

Linus

2008-03-19 19:27:00

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



On Tue, 18 Mar 2008, Linus Torvalds wrote:
>
> But the absolute first thing we should do is to make the code at least as
> robust as it used to be, and preferably aim _higher_ in robustness rather
> than lower!

An example of this "aim higher", I think that we obviously should complete
the command if the controller says it's done with it (like the old
"drive_cmd_intr()" code used to do), but we might decide that printing a
warning would be the proper way to then also inform the user about the
fact that we expected the command to want more data, but it never did.

That way, the code not only handles the unexpected situation gracefully,
but the very fact that it was unexpected also gets logged.

[ And at that point your patch to make the specific SMART subcommands have
strict logic about the data direction will actually matter - although
maybe it turns out that there are _other_ tools that send other
commands, and we decide that the warning isn't useful after all! ]

The thing is, I know for a fact that some system vendors use Linux for
burn-in and testing/setup of their components, and I would not be in the
least surprised if some of them use HDIO_DRIVE_CMD to do some
vendor-specific stuff.

And I think it's a fine thing to try to use just one set of code (the
taskfile code) to drive all these special commands, but the fact is, the
old HDIO_DRIVE_CMD interface fundamentally doesn't even _have_ the
capability to specify the total taskfile state.

So we simply know as a fact that
(a) people do use an interface that used to work (HDIO_DRIVE_CMD)
and
(b) it will fundamentally *never* have complete taskfile state, so we
*have* to live with the fact that some of our commands simply don't
have the full state that the taskfile code may have historically
depended on but the old ide_drive_cmd() code didn't and cannot depend
on.

Your patch tries to fix (b), but we also know that it fundamentally simply
*cannot* fix it for all cases. So even trying to is really pretty futile,
I think (although we can obviously hope that nobody uses HDIO_DRIVE_CMD
any more for anything but SMART and really simple commands, but that
sounds rather unlikely).

Linus

2008-03-19 19:36:01

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



On Tue, 18 Mar 2008, Anders Eriksson wrote:
>
> Mar 18 14:18:26 tippex do_rw_taskfile(task->data_phase=1, tf->command=236
> Mar 18 14:18:26 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
> Mar 18 14:18:26 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
> Mar 18 14:18:26 tippex task_in_intr: hda: stat=50

Uhhuh. That's READY_STAT | SRV_STAT. No error, no DRQ, no nothing.

And I think this also explains why your bisect found that old commit
4d977e43d8ae758434e603cf2455d955f71c77c4 to be problematic.

The thing is, that commit - and the taskfile code that it then all got
replaced with - use this totally bogus check:

OK_STAT(stat, DRQ_STAT, BAD_R_STAT)
...

which basically says that the only OK situation is that no error bits are
set, and DRQ _has_ to be set.

Before that, the code did the right thing in any _combination_ of bits: if
DRQ wasn't set, it would just say "oh, ok, the command is done", but the
taskfile code and the 4d977e43d commit code thinks that DRQ not being set
is an error, and then it gets confused when the actual error bits aren't
set!

I think that whole way of writing code is totally horribly bad! It's not
only trying to tie together bits that are independent, but it actually
gets a lot harder to understand too, because now you have *four* different
cases ("no error, no drq", "error, no drq", "no error, drq", "error, drq")
but you use one test to try to find the one you expect, and then the code
easily messes up on all the other three cases!

I personally think the code should be written more like the suggested
appended patch, which checks those error and drq bits _separately_, and
doesn't try to mix them up, because they really are independent.

Anders, does this patch change any behaviour?

It basically does:

- if the error bits are set, we just error out (and expect ide_error() to
flush the data fifo if necessary)

- if the DRQ bit is *not* set, something unexpected happened, and we go
out of line to handle that.

- otherwise we just do the data in phase and see if we're all done.

Then, in the unexpected case, we try to see what is actually going on, and
that's where we do the same thing we always used to do (ie the thing that
commit 4d977e43d messed up): if the drive tells us it's all done, we just
end the command.

IOW, if we have no errors, no drq, and the drive says "ready and not
busy", we just finish the command!

I think this is much more readable, and also less fragile, than using that
OK_STAT() macro to mix up DRQ and errors in odd ways. Keep them separate
events.

Linus

---
drivers/ide/ide-taskfile.c | 36 +++++++++++++++++++++++++++---------
1 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c
index 0518a2e..4c86a8d 100644
--- a/drivers/ide/ide-taskfile.c
+++ b/drivers/ide/ide-taskfile.c
@@ -423,6 +423,25 @@ void task_end_request(ide_drive_t *drive, struct request *rq, u8 stat)
}

/*
+ * We got an interrupt on a task_in case, but no errors and no DRQ.
+ *
+ * It might be a spurious irq (shared irq), but it might be a
+ * command that had no output.
+ */
+static ide_startstop_t task_in_unexpected(ide_drive_t *drive, struct request *rq, u8 stat)
+{
+ /* Command all done? */
+ if (OK_STAT(stat, READY_STAT, BUSY_STAT)) {
+ task_end_request(drive, rq, stat);
+ return ide_stopped;
+ }
+
+ /* Assume it was a spurious irq */
+ ide_set_handler(drive, &task_in_intr, WAIT_WORSTCASE, NULL);
+ return ide_started;
+}
+
+/*
* Handler for command with PIO data-in phase (Read/Read Multiple).
*/
static ide_startstop_t task_in_intr(ide_drive_t *drive)
@@ -431,18 +450,17 @@ static ide_startstop_t task_in_intr(ide_drive_t *drive)
struct request *rq = HWGROUP(drive)->rq;
u8 stat = ide_read_status(drive);

- /* new way for dealing with premature shared PCI interrupts */
- if (!OK_STAT(stat, DRQ_STAT, BAD_R_STAT)) {
- if (stat & (ERR_STAT | DRQ_STAT))
- return task_error(drive, rq, __FUNCTION__, stat);
- /* No data yet, so wait for another IRQ. */
- ide_set_handler(drive, &task_in_intr, WAIT_WORSTCASE, NULL);
- return ide_started;
- }
+ /* Error? */
+ if (stat & ERR_STAT)
+ return task_error(drive, rq, __FUNCTION__, stat);
+
+ /* No error, but didn't want any data either? Odd. */
+ if (!(stat & DRQ_STAT))
+ return task_in_unexpected(drive, rq, stat);

ide_pio_datablock(drive, rq, 0);

- /* If it was the last datablock check status and finish transfer. */
+ /* Are we done? Check status and finish transfer. */
if (!hwif->nleft) {
stat = wait_drive_not_busy(drive);
if (!OK_STAT(stat, 0, BAD_STAT))

2008-03-19 19:34:49

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



On Tue, 18 Mar 2008, Anders Eriksson wrote:
>
> Seems we got something here. For all I can tell, it's working!
>
> I had to hand apply the last hunk of your patch, and the other patches are there as
> well. Can you respin it vs. -rc6 and I'll try on a clean tree?

Actually, the patch I sent you should be against the current -git tree,
and I don't think anything has changed since -rc6 in this area.

I suspect the reason you had to hand-apply it may be the other
test-patches you had. Can you just undo those? Since it looks like it may
be working for you, the debug patches are just adding tons of noise by
now, and it would be good to hear whether the status with that last patch
is just a simple "ok, it works now".

Linus

2008-03-19 20:34:43

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



On Wed, 19 Mar 2008, Bartlomiej Zolnierkiewicz wrote:
>
> Which is with compliance with PIO-in protocol specification and years of
> usage of the task_in_intr() code for fs code paths and HDIO_DRIVE_TASKFILE
> ioctl has proven that real hardware also works this way (please note that
> the changed code was used only for HDIO_DRIVE_CMD ioctl requests).

.. and years of drive_cmd_intr() which is much more widely used is *not*
in agreement.

> If INTRQ is asserted and "BSY is cleared to zero and DRQ is cleared, then
> the device has completed the command with an error." (thus task_in_intr()
> assumed ERR bit to be set), otherwise the value ERR may not be defined
> (however task_in_intr() still assumed that it is OK to check ERR bit).

First off, the patch I sent out _works_.

Secondly, it's a hell of a lot more robust than yours is, exactly because
it doesn't get confused if the data direction or size bit disagrees with
the particular command in question.

> This is SMART command with SMART ENABLE ATTRIBUTE AUTOSAVE sub-command
> (feat == 0xd2, nsect == 0xf1) but it should use no-data protocol instead of
> PIO-in which brings us back to commit 18a056feccabdfa9764016a615121b194828bc72
> ("ide: don't enable local IRQs for PIO-in in driver_cmd_intr() (take 2)"):

.. and what about all the magic special IDE commands that may be
drive-specific? What are we going to do about them?

In other words, we should not try to create an impossible-to-maintain
piece of shit code that does the wrong thing if you send a command to the
drive that the IDE layer doesn't understand (but the sending code
hopefully does).

We should make the core IDE code *robust*.

Your "real fix" is nothing of the sort. It's just a workaround for the
fragility of the code that looks at the drive status. The real fix is to
be robust in the face of even unexpected drive status codes, *especially*
for the code that handles commands injected by the user!

In other words, you can talk about protocol specifications for things like
the regular filesystem READ/WRITE commands. But don't create total crap
like this that depends on the code knowing all possible outcomes of every
single possible command.

Your patch is utter crap.

You say (about commit 18a056feccabdfa9764016a615121b194828bc72):

> as can be seen before this patch protocol to use was decided basing on DRQ bit
> being set - what would you call _that_ if taskfile code is horrible, he? ;-)

I would call that *correct*.

And my point is, we used to be better. You made the code buggy and fragile
with that crap commit, and with the others like it (ie the already
much-mentioned commit 4d977e43d8ae758434e603cf2455d955f71c77c4).

And that is and was *exactly* my point. The reason I called the taskfile
code horrible was exactly the fact that it only worked if it thought it
knew exactly what was going on.

Deciding what to do based on the DRQ bit (and the READY/BUSY/ERROR bits)
is the *right* thing to do. It's the intelligent approach - actually
tekign the response of the hardware into account, and being robust. The
*stupid* and horrible thing to do is to think that you know better than
what the hardware tells you, and think that you can look up every command
that the user sends in the spec and use *that* to figure out what to do.

Trust the hardware, not the paper. Don't make the code only work when you
think you know what is going on. Make the code work _always_.

In short, there is no way in hell I'll apply a workaround patch for crap
code, when we already know what the robust solution is.

Linus

2008-03-19 20:34:12

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



On Wed, 19 Mar 2008, Bartlomiej Zolnierkiewicz wrote:
>
> Please take a closer look - my "real fix" _only_ affects WIN_SMART command
> and _not_ vendor special ones (no, there are none vendor special commands
> using the same opcode).

Oh, trust me, I understand your fix.

But the point is that your fix

- doesn't fix any other commands (and there are tons of other commands
people may be using)

- and is totally pointless and isn't *needed* if we just fix this
properly (ie we've never cared before, so why should we start caring
now?).

See?

Fixing this properly is exactly what my patch did - it made the whole core
engine not really even care. Just like it used to.

> Call taskfile crap all you want [ ... ]

You're totally not listening or understanding.

I'm not calling taskfile crap as a concept.

I'm calling fragile code that fails unnecessarily crap.

See the difference?

The old "drive_cmd_intr()" code (that you deleted) was fundamentally more
robust than the taskfile code you replaced it with.

And that's not just an opinion. It's a *fact*. It's why this bug showed up
in the first place. Code that used to work because it didn't even care all
that deeply about every single detail being set up just the way it wanted
got replaced by code that was fragile.

Do you see the difference?

If we have a choice between robust code that just "does the right thing"
even in the face of problems, and code that "stops working when you look
at it wrong", which one should we choose? Which one is the better code?
Which one is crap, and which one isn't?

The fact is, the old "drive_cmd_intr()" code was simply more robust.

So this is why I feel so strongly about this. Robust code is just about
the most important thing we can have in the kernel. Bugs will always
happen, but when they happen, we shouldn't just fall over dead. And that's
exactly what code robustness is all about.

So we should make the DRQ/ERR status bit handling robust in the face of
hardware and software that does odd things. Because we definitely have
seen cases of both. Sometimes it is hw that doesn't work the way the spec
requires, sometimes it's software that doesn't follow the spec 100%. It
doesn't matter.

And once the status bit handling is robust (like it _used_ to be!), only
*then* should we even ask ourself if we even care about having some random
tfargs.data_phase value for specific SMART command sub-cases.

My personal opinion is obviously that we simply shouldn't even care (since
we should now know that the driver doesn't care one way or the other), but
if you want to apply your patch despite it having absolutely no meaning,
that's your choice.

But the absolute first thing we should do is to make the code at least as
robust as it used to be, and preferably aim _higher_ in robustness rather
than lower!

Linus

Subject: Re: Linux 2.6.25-rc4

On Wednesday 19 March 2008, Linus Torvalds wrote:
>
> On Wed, 19 Mar 2008, Bartlomiej Zolnierkiewicz wrote:
> >
> > Please take a closer look - my "real fix" _only_ affects WIN_SMART command
> > and _not_ vendor special ones (no, there are none vendor special commands
> > using the same opcode).
>
> Oh, trust me, I understand your fix.
>
> But the point is that your fix
>
> - doesn't fix any other commands (and there are tons of other commands
> people may be using)
>
> - and is totally pointless and isn't *needed* if we just fix this
> properly (ie we've never cared before, so why should we start caring
> now?).
>
> See?
>
> Fixing this properly is exactly what my patch did - it made the whole core
> engine not really even care. Just like it used to.
>
> > Call taskfile crap all you want [ ... ]
>
> You're totally not listening or understanding.
>
> I'm not calling taskfile crap as a concept.
>
> I'm calling fragile code that fails unnecessarily crap.
>
> See the difference?
>
> The old "drive_cmd_intr()" code (that you deleted) was fundamentally more
> robust than the taskfile code you replaced it with.
>
> And that's not just an opinion. It's a *fact*. It's why this bug showed up
> in the first place. Code that used to work because it didn't even care all
> that deeply about every single detail being set up just the way it wanted
> got replaced by code that was fragile.
>
> Do you see the difference?
>
> If we have a choice between robust code that just "does the right thing"
> even in the face of problems, and code that "stops working when you look
> at it wrong", which one should we choose? Which one is the better code?
> Which one is crap, and which one isn't?
>
> The fact is, the old "drive_cmd_intr()" code was simply more robust.
>
> So this is why I feel so strongly about this. Robust code is just about
> the most important thing we can have in the kernel. Bugs will always
> happen, but when they happen, we shouldn't just fall over dead. And that's
> exactly what code robustness is all about.
>
> So we should make the DRQ/ERR status bit handling robust in the face of
> hardware and software that does odd things. Because we definitely have
> seen cases of both. Sometimes it is hw that doesn't work the way the spec
> requires, sometimes it's software that doesn't follow the spec 100%. It
> doesn't matter.
>
> And once the status bit handling is robust (like it _used_ to be!), only
> *then* should we even ask ourself if we even care about having some random
> tfargs.data_phase value for specific SMART command sub-cases.
>
> My personal opinion is obviously that we simply shouldn't even care (since
> we should now know that the driver doesn't care one way or the other), but
> if you want to apply your patch despite it having absolutely no meaning,
> that's your choice.
>
> But the absolute first thing we should do is to make the code at least as
> robust as it used to be, and preferably aim _higher_ in robustness rather
> than lower!

OK, I got the point.

Your patch is more robust and we should go with it
(and thanks for fixing this bug!).

Bart

2008-03-19 21:02:43

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4



Seems we got something here. For all I can tell, it's working!

I had to hand apply the last hunk of your patch, and the other patches are there as
well. Can you respin it vs. -rc6 and I'll try on a clean tree?

/A



Mar 18 17:23:12 tippex smartd[5922]: Home page is http://smartmontools.sourceforge.net/
Mar 18 17:23:12 tippex smartd[5922]: Opened configuration file /etc/smartd.conf
Mar 18 17:23:13 tippex smartd[5922]: Configuration file /etc/smartd.conf parsed.
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, opened
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=1, tf->command=236
Mar 18 17:23:13 tippex hda: tf: feat 0x00 nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00 dev 0x00 cmd 0xec
Mar 18 17:23:13 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, found in smartd database.
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
Mar 18 17:23:13 tippex hda: tf: feat 0xd8 nsect 0x00 lbal 0x01 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:13 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
Mar 18 17:23:13 tippex hda: tf: feat 0xda nsect 0x00 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:13 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:13 tippex hda: tf: feat 0xd0 nsect 0x01 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:13 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:13 tippex hda: tf: feat 0xd1 nsect 0x01 lbal 0x01 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:13 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=1, tf->command=236
Mar 18 17:23:13 tippex hda: tf: feat 0x00 nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00 dev 0x00 cmd 0xec
Mar 18 17:23:13 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, can't monitor Current Pending Sector count - no Attribute 197
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, can't monitor Offline Uncorrectable Sector count - no Attribute 198
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, can't monitor Temperature, ignoring -W Directive
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, appears to lack SMART Self-Test log; disabling -l selftest (override with -T permissive Directive)
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, appears to lack SMART Error log; disabling -l error (override with -T permissive Directive)
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, is SMART capable. Adding to "monitor" list.
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, opened
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, found in smartd database.
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
Mar 18 17:23:13 tippex hda: tf: feat 0xd8 nsect 0x00 lbal 0x01 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:13 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:13 tippex hda: tf: feat 0xd2 nsect 0xf1 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:13 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, enabled SMART Attribute Autosave.
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
Mar 18 17:23:13 tippex hda: tf: feat 0xda nsect 0x00 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:13 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:13 tippex hda: tf: feat 0xd0 nsect 0x01 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:13 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:13 tippex hda: tf: feat 0xd1 nsect 0x01 lbal 0x01 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:13 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:13 tippex hda: tf: feat 0xdb nsect 0xf8 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:13 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex ide_error(msg=task_in_intr, stat=81)
Mar 18 17:23:13 tippex ------------[ cut here ]------------
Mar 18 17:23:13 tippex WARNING: at /usr/src/linux-2.6.25/drivers/ide/ide-io.c:548 ide_error+0x47/0x100()
Mar 18 17:23:13 tippex Modules linked in: rtc rt2500pci rt2x00pci pcspkr i2c_piix4 rt2x00lib input_polldev eeprom_93cx6 i2c_core uhci_hcd intel_agp agpgart
Mar 18 17:23:13 tippex Pid: 3798, comm: syslog-ng Not tainted 2.6.25-rc5 #11
Mar 18 17:23:13 tippex [<c011c584>] warn_on_slowpath+0x54/0x70
Mar 18 17:23:13 tippex [<c011cef8>] ? release_console_sem+0x1c8/0x1f0
Mar 18 17:23:13 tippex [<c040d0cc>] ? _spin_unlock_irqrestore+0x2c/0x50
Mar 18 17:23:13 tippex [<c011cf08>] ? release_console_sem+0x1d8/0x1f0
Mar 18 17:23:13 tippex [<c011d2ae>] ? vprintk+0x1ce/0x3d0
Mar 18 17:23:13 tippex [<c01160c0>] ? default_wake_function+0x0/0x10
Mar 18 17:23:13 tippex [<c01385da>] ? __lock_acquire+0xba/0x700
Mar 18 17:23:13 tippex [<c011d4cb>] ? printk+0x1b/0x20
Mar 18 17:23:13 tippex [<c0284777>] ide_error+0x47/0x100
Mar 18 17:23:13 tippex [<c02889b3>] task_error+0x73/0xb0
Mar 18 17:23:13 tippex [<c0289591>] task_in_intr+0xf1/0x110
Mar 18 17:23:13 tippex [<c0284543>] ide_intr+0x93/0x200
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, can't monitor Current Pending Sector count - no Attribute 197
Mar 18 17:23:13 tippex [<c0137dcd>] ? put_lock_stats+0xd/0x30
Mar 18 17:23:13 tippex [<c0137e4d>] ? lock_release_holdtime+0x5d/0x80
Mar 18 17:23:13 tippex [<c02894a0>] ? task_in_intr+0x0/0x110
Mar 18 17:23:13 tippex [<c0143408>] handle_IRQ_event+0x28/0x60
Mar 18 17:23:13 tippex [<c0144b9b>] handle_level_irq+0x6b/0xe0
Mar 18 17:23:13 tippex [<c01056f2>] do_IRQ+0x42/0x80
Mar 18 17:23:13 tippex [<c0103963>] common_interrupt+0x23/0x28
Mar 18 17:23:13 tippex [<c013981f>] ? lock_acquired+0xff/0x190
Mar 18 17:23:13 tippex [<c040c91c>] _spin_lock+0x5c/0x70
Mar 18 17:23:13 tippex [<c038a1e4>] ? unix_accept+0xa4/0xf0
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, can't monitor Offline Uncorrectable Sector count - no Attribute 198
Mar 18 17:23:13 tippex [<c038a1e4>] unix_accept+0xa4/0xf0
Mar 18 17:23:13 tippex [<c031e9e3>] sys_accept+0xd3/0x1c0
Mar 18 17:23:13 tippex [<c019635e>] ? dnotify_parent+0x6e/0x80
Mar 18 17:23:13 tippex [<c040cfd7>] ? _spin_unlock+0x27/0x50
Mar 18 17:23:13 tippex [<c031eb91>] sys_socketcall+0xc1/0x260
Mar 18 17:23:13 tippex [<c0231535>] ? copy_to_user+0x35/0x50
Mar 18 17:23:13 tippex [<c0102f3a>] ? sysenter_past_esp+0x6b/0x91
Mar 18 17:23:13 tippex [<c0102f2e>] sysenter_past_esp+0x5f/0x91
Mar 18 17:23:13 tippex =======================
Mar 18 17:23:13 tippex ---[ end trace beb8e12f45c08448 ]---
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, can't monitor Temperature, ignoring -W Directive
Mar 18 17:23:13 tippex hda: task_in_intr: status=0x51 { DriveReady SeekComplete Error }
Mar 18 17:23:13 tippex hda: task_in_intr: error=0x04 { DriveStatusError }
Mar 18 17:23:13 tippex ide: failed opcode was: 0xb0
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, SMART Automatic Offline Testing unsupported...
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=1, tf->command=236
Mar 18 17:23:13 tippex hdb: tf: feat 0x00 nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00 dev 0x00 cmd 0xec
Mar 18 17:23:13 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:13 tippex hdb: tf: feat 0x00 nsect 0x10 lbal 0x17 lbam 0x8d lbah 0xad dev 0x00 cmd 0x35
Mar 18 17:23:13 tippex hdb: hob: nsect 0x00 lbal 0x08 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:13 tippex hdb: tf: feat 0x00 nsect 0x28 lbal 0x57 lbam 0x3a lbah 0x00 dev 0x00 cmd 0x35
Mar 18 17:23:13 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, enable SMART Automatic Offline Testing failed.
Mar 18 17:23:13 tippex hdb: tf: feat 0x00 nsect 0x08 lbal 0x7f lbam 0x3a lbah 0x00 dev 0x00 cmd 0x35
Mar 18 17:23:13 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, appears to lack SMART Self-Test log; disabling -l selftest (override with -T permissive Directive)
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
Mar 18 17:23:13 tippex hdb: tf: feat 0xd8 nsect 0x00 lbal 0x01 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:13 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, appears to lack SMART Error log; disabling -l error (override with -T permissive Directive)
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hda, is SMART capable. Adding to "monitor" list.
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hdb, opened
Mar 18 17:23:13 tippex smartd[5922]: Device: /dev/hdb, found in smartd database.
Mar 18 17:23:13 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:13 tippex hdb: tf: feat 0xd2 nsect 0xf1 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:13 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:14 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
Mar 18 17:23:14 tippex hdb: tf: feat 0xda nsect 0x00 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:14 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:14 tippex smartd[5922]: Device: /dev/hdb, enabled SMART Attribute Autosave.
Mar 18 17:23:14 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:14 tippex hdb: tf: feat 0xd0 nsect 0x01 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:14 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:14 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:14 tippex hdb: tf: feat 0xd1 nsect 0x01 lbal 0x01 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:14 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:14 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:14 tippex hdb: tf: feat 0xdb nsect 0xf8 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:14 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:14 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:14 tippex hdb: tf: feat 0xd5 nsect 0x01 lbal 0x06 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:14 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:14 tippex smartd[5922]: Device: /dev/hdb, enabled SMART Automatic Offline Testing.
Mar 18 17:23:14 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:14 tippex hdb: tf: feat 0xd5 nsect 0x01 lbal 0x01 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:14 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:14 tippex do_rw_taskfile(task->data_phase=1, tf->command=236
Mar 18 17:23:14 tippex hdd: tf: feat 0x00 nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00 dev 0x00 cmd 0xec
Mar 18 17:23:14 tippex hdd: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:14 tippex smartd[5922]: Device: /dev/hdb, is SMART capable. Adding to "monitor" list.
Mar 18 17:23:14 tippex smartd[5922]: Device: /dev/hdd, opened
Mar 18 17:23:14 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
Mar 18 17:23:14 tippex hdd: tf: feat 0xd8 nsect 0x00 lbal 0x01 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:14 tippex hdd: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:14 tippex smartd[5922]: Device: /dev/hdd, found in smartd database.
Mar 18 17:23:14 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:14 tippex hdd: tf: feat 0xd2 nsect 0xf1 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:14 tippex hdd: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:14 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
Mar 18 17:23:14 tippex hdd: tf: feat 0xda nsect 0x00 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:14 tippex hdd: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:14 tippex smartd[5922]: Device: /dev/hdd, enabled SMART Attribute Autosave.
Mar 18 17:23:14 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:14 tippex hdd: tf: feat 0xd0 nsect 0x01 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:14 tippex hdd: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:14 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:14 tippex hdd: tf: feat 0xd1 nsect 0x01 lbal 0x01 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:14 tippex hdd: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:14 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:14 tippex hdd: tf: feat 0xdb nsect 0xf8 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:14 tippex hdd: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:15 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:15 tippex hdd: tf: feat 0xd5 nsect 0x01 lbal 0x06 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:15 tippex hdd: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:15 tippex smartd[5922]: Device: /dev/hdd, enabled SMART Automatic Offline Testing.
Mar 18 17:23:15 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 17:23:15 tippex hdd: tf: feat 0xd5 nsect 0x01 lbal 0x01 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 17:23:15 tippex hdd: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:15 tippex smartd[5922]: Device: /dev/hdd, is SMART capable. Adding to "monitor" list.
Mar 18 17:23:15 tippex smartd[5922]: Device: /dev/sda, No such device, open() failed
Mar 18 17:23:15 tippex smartd[5922]: Unable to register ATA device /dev/sda at line 59 of file /etc/smartd.conf
Mar 18 17:23:15 tippex smartd[5922]: Unable to register device /dev/sda (no Directive -d removable). Exiting.
Mar 18 17:23:18 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:18 tippex hdb: tf: feat 0x00 nsect 0x08 lbal 0x1f lbam 0x8d lbah 0xad dev 0x00 cmd 0x35
Mar 18 17:23:18 tippex hdb: hob: nsect 0x00 lbal 0x08 lbam 0x00 lbah 0x00
Mar 18 17:23:18 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:18 tippex hdb: tf: feat 0x00 nsect 0x10 lbal 0x2f lbam 0x8d lbah 0xad dev 0x00 cmd 0x35
Mar 18 17:23:18 tippex hdb: hob: nsect 0x00 lbal 0x08 lbam 0x00 lbah 0x00
Mar 18 17:23:18 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:18 tippex hdb: tf: feat 0x00 nsect 0x30 lbal 0x87 lbam 0x3a lbah 0x00 dev 0x00 cmd 0x35
Mar 18 17:23:18 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:18 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:18 tippex hdb: tf: feat 0x00 nsect 0x08 lbal 0xb7 lbam 0x3a lbah 0x00 dev 0x00 cmd 0x35
Mar 18 17:23:18 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:21 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:21 tippex hdb: tf: feat 0x00 nsect 0x10 lbal 0x37 lbam 0x8d lbah 0xad dev 0x00 cmd 0x35
Mar 18 17:23:21 tippex hdb: hob: nsect 0x00 lbal 0x08 lbam 0x00 lbah 0x00
Mar 18 17:23:26 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:26 tippex hdb: tf: feat 0x00 nsect 0x08 lbal 0x87 lbam 0xc0 lbah 0x52 dev 0x00 cmd 0x35
Mar 18 17:23:26 tippex hdb: hob: nsect 0x00 lbal 0x0b lbam 0x00 lbah 0x00
Mar 18 17:23:26 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:26 tippex hdb: tf: feat 0x00 nsect 0x08 lbal 0x3f lbam 0x8d lbah 0xad dev 0x00 cmd 0x35
Mar 18 17:23:26 tippex hdb: hob: nsect 0x00 lbal 0x08 lbam 0x00 lbah 0x00
Mar 18 17:23:26 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:26 tippex hdb: tf: feat 0x00 nsect 0x48 lbal 0xbf lbam 0x3a lbah 0x00 dev 0x00 cmd 0x35
Mar 18 17:23:26 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:26 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:26 tippex hdb: tf: feat 0x00 nsect 0x08 lbal 0x07 lbam 0x3b lbah 0x00 dev 0x00 cmd 0x35
Mar 18 17:23:26 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:31 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:31 tippex hdb: tf: feat 0x00 nsect 0x08 lbal 0x4f lbam 0x00 lbah 0x10 dev 0x00 cmd 0x35
Mar 18 17:23:31 tippex hdb: hob: nsect 0x00 lbal 0x03 lbam 0x00 lbah 0x00
Mar 18 17:23:31 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:31 tippex hdb: tf: feat 0x00 nsect 0x08 lbal 0xaf lbam 0x01 lbah 0xa4 dev 0x00 cmd 0x35
Mar 18 17:23:31 tippex hdb: hob: nsect 0x00 lbal 0x08 lbam 0x00 lbah 0x00
Mar 18 17:23:31 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:31 tippex hdb: tf: feat 0x00 nsect 0x08 lbal 0x3f lbam 0x00 lbah 0x00 dev 0x00 cmd 0x35
Mar 18 17:23:31 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:31 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:31 tippex hdb: tf: feat 0x00 nsect 0x10 lbal 0x67 lbam 0x00 lbah 0x00 dev 0x00 cmd 0x35
Mar 18 17:23:31 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:31 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:31 tippex hdb: tf: feat 0x00 nsect 0x08 lbal 0x3f lbam 0x00 lbah 0xac dev 0x00 cmd 0x35
Mar 18 17:23:31 tippex hdb: hob: nsect 0x00 lbal 0x08 lbam 0x00 lbah 0x00
Mar 18 17:23:31 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:31 tippex hdb: tf: feat 0x00 nsect 0x08 lbal 0x5f lbam 0xf0 lbah 0xac dev 0x00 cmd 0x35
Mar 18 17:23:31 tippex hdb: hob: nsect 0x00 lbal 0x08 lbam 0x00 lbah 0x00
Mar 18 17:23:31 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:31 tippex hdb: tf: feat 0x00 nsect 0x08 lbal 0x3f lbam 0x00 lbah 0x50 dev 0x00 cmd 0x35
Mar 18 17:23:31 tippex hdb: hob: nsect 0x00 lbal 0x0b lbam 0x00 lbah 0x00
Mar 18 17:23:31 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:31 tippex hdb: tf: feat 0x00 nsect 0x08 lbal 0x97 lbam 0x00 lbah 0x50 dev 0x00 cmd 0x35
Mar 18 17:23:31 tippex hdb: hob: nsect 0x00 lbal 0x0b lbam 0x00 lbah 0x00
Mar 18 17:23:31 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:31 tippex hdb: tf: feat 0x00 nsect 0x08 lbal 0x3f lbam 0x8d lbah 0xad dev 0x00 cmd 0x35
Mar 18 17:23:31 tippex hdb: hob: nsect 0x00 lbal 0x08 lbam 0x00 lbah 0x00
Mar 18 17:23:31 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:31 tippex hdb: tf: feat 0x00 nsect 0x10 lbal 0x0f lbam 0x3b lbah 0x00 dev 0x00 cmd 0x35
Mar 18 17:23:31 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 17:23:31 tippex do_rw_taskfile(task->data_phase=64, tf->command=53
Mar 18 17:23:31 tippex hdb: tf: feat 0x00 nsect 0x08 lbal 0x1f lbam 0x3b lbah 0x00 dev 0x00 cmd 0x35
Mar 18 17:23:31 tippex hdb: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00




2008-03-19 21:30:45

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


[email protected] said:
> Please add "#define DEBUG" before ide_tf_load() in ide-taskfile.c so we can
> see which SMART sub-command is causing this.

Mar 18 16:02:13 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
Mar 18 16:02:13 tippex hda: tf: feat 0xda nsect 0x00 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 16:02:13 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 16:02:14 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 16:02:14 tippex hda: tf: feat 0xd0 nsect 0x01 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 16:02:14 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 16:02:14 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 16:02:14 tippex hda: tf: feat 0xd1 nsect 0x01 lbal 0x01 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 16:02:14 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 16:02:14 tippex do_rw_taskfile(task->data_phase=1, tf->command=236
Mar 18 16:02:14 tippex hda: tf: feat 0x00 nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00 dev 0x00 cmd 0xec
Mar 18 16:02:14 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 16:02:14 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
Mar 18 16:02:14 tippex hda: tf: feat 0xd8 nsect 0x00 lbal 0x01 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 16:02:14 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 16:02:14 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
Mar 18 16:02:14 tippex hda: tf: feat 0xd2 nsect 0xf1 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 16:02:14 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 16:02:14 tippex task_in_intr: hda: stat=50



2008-03-19 21:30:07

by Anders Eriksson

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4


[email protected] said:
> I suspect the reason you had to hand-apply it may be the other test-patches
> you had. Can you just undo those? Since it looks like it may be working for
> you, the debug patches are just adding tons of noise by now, and it would be
> good to hear whether the status with that last patch is just a simple "ok,
> it works now".

Latest git with your patch works perfectly.

Thanks a lot!!

/Anders


Subject: Re: Linux 2.6.25-rc4

On Wednesday 19 March 2008, Linus Torvalds wrote:
>
> On Wed, 19 Mar 2008, Bartlomiej Zolnierkiewicz wrote:
> >
> > Which is with compliance with PIO-in protocol specification and years of
> > usage of the task_in_intr() code for fs code paths and HDIO_DRIVE_TASKFILE
> > ioctl has proven that real hardware also works this way (please note that
> > the changed code was used only for HDIO_DRIVE_CMD ioctl requests).
>
> .. and years of drive_cmd_intr() which is much more widely used is *not*
> in agreement.
>
> > If INTRQ is asserted and "BSY is cleared to zero and DRQ is cleared, then
> > the device has completed the command with an error." (thus task_in_intr()
> > assumed ERR bit to be set), otherwise the value ERR may not be defined
> > (however task_in_intr() still assumed that it is OK to check ERR bit).
>
> First off, the patch I sent out _works_.
>
> Secondly, it's a hell of a lot more robust than yours is, exactly because
> it doesn't get confused if the data direction or size bit disagrees with
> the particular command in question.
>
> > This is SMART command with SMART ENABLE ATTRIBUTE AUTOSAVE sub-command
> > (feat == 0xd2, nsect == 0xf1) but it should use no-data protocol instead of
> > PIO-in which brings us back to commit 18a056feccabdfa9764016a615121b194828bc72
> > ("ide: don't enable local IRQs for PIO-in in driver_cmd_intr() (take 2)"):
>
> .. and what about all the magic special IDE commands that may be
> drive-specific? What are we going to do about them?
>
> In other words, we should not try to create an impossible-to-maintain
> piece of shit code that does the wrong thing if you send a command to the
> drive that the IDE layer doesn't understand (but the sending code
> hopefully does).
>
> We should make the core IDE code *robust*.
>
> Your "real fix" is nothing of the sort. It's just a workaround for the
> fragility of the code that looks at the drive status. The real fix is to
> be robust in the face of even unexpected drive status codes, *especially*
> for the code that handles commands injected by the user!

Please take a closer look - my "real fix" _only_ affects WIN_SMART command
and _not_ vendor special ones (no, there are none vendor special commands
using the same opcode).

DRQ/ERR bits handling is a tangent issue (and yes it also needs fixing).

> In other words, you can talk about protocol specifications for things like
> the regular filesystem READ/WRITE commands. But don't create total crap
> like this that depends on the code knowing all possible outcomes of every
> single possible command.
>
> Your patch is utter crap.
>
> You say (about commit 18a056feccabdfa9764016a615121b194828bc72):
>
> > as can be seen before this patch protocol to use was decided basing on DRQ bit
> > being set - what would you call _that_ if taskfile code is horrible, he? ;-)
>
> I would call that *correct*.
>
> And my point is, we used to be better. You made the code buggy and fragile
> with that crap commit, and with the others like it (ie the already
> much-mentioned commit 4d977e43d8ae758434e603cf2455d955f71c77c4).
>
> And that is and was *exactly* my point. The reason I called the taskfile
> code horrible was exactly the fact that it only worked if it thought it
> knew exactly what was going on.

This is actually how the ATA hardware operates.

You cannot just bang random commands and expect that later driver will be
able to 100% correctly deduce what the command wants from the drive status
itself (this may work more-or-less well for no-data and PIO-in by using DRQ
bit trick, but we also have PIO-out, DMA, PACKET etc).

IOW this won't fly as drive/controller alone doesn't provide use with enough
information about command being currently executed.

> Deciding what to do based on the DRQ bit (and the READY/BUSY/ERROR bits)
> is the *right* thing to do. It's the intelligent approach - actually
> tekign the response of the hardware into account, and being robust. The
> *stupid* and horrible thing to do is to think that you know better than
> what the hardware tells you, and think that you can look up every command
> that the user sends in the spec and use *that* to figure out what to do.

There is some misunderstaning here - taskfile approach lets user specify
_both_ the command and what it really wants (protocol etc.), and no - we
don't do any command checking with the spec but give user the control...

Call taskfile crap all you want but the fact is that taskfile approach
handles _all_ protocols and _all_ commands while the beloved "robust"
and "intelligent" approach is able to handle only 28-bit commands using
no-data or PIO-in protocols (this is what HDIO_DRIVE_CMD is supporting
and there is no way it will ever support more than that with its design).

[ BTW libata also uses taskfile approach (including HDIO_DRIVE_CMD!) ]

> Trust the hardware, not the paper. Don't make the code only work when you
> think you know what is going on. Make the code work _always_.

The problem here is that we cannot fully trust neither hardware nor the
paper (so we give the control to the user for the final decision).

> In short, there is no way in hell I'll apply a workaround patch for crap
> code, when we already know what the robust solution is.

Please re-consider this decision given the above facts.

Thanks,
Bart

Subject: Re: Linux 2.6.25-rc4

On Tuesday 18 March 2008, Linus Torvalds wrote:
>
> On Tue, 18 Mar 2008, Anders Eriksson wrote:
> >
> > Mar 18 14:18:26 tippex do_rw_taskfile(task->data_phase=1, tf->command=236
> > Mar 18 14:18:26 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
> > Mar 18 14:18:26 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
> > Mar 18 14:18:26 tippex task_in_intr: hda: stat=50
>
> Uhhuh. That's READY_STAT | SRV_STAT. No error, no DRQ, no nothing.
>
> And I think this also explains why your bisect found that old commit
> 4d977e43d8ae758434e603cf2455d955f71c77c4 to be problematic.
>
> The thing is, that commit - and the taskfile code that it then all got
> replaced with - use this totally bogus check:
>
> OK_STAT(stat, DRQ_STAT, BAD_R_STAT)
> ...
>
> which basically says that the only OK situation is that no error bits are
> set, and DRQ _has_ to be set.
>
> Before that, the code did the right thing in any _combination_ of bits: if
> DRQ wasn't set, it would just say "oh, ok, the command is done", but the
> taskfile code and the 4d977e43d commit code thinks that DRQ not being set
> is an error, and then it gets confused when the actual error bits aren't
> set!

Which is with compliance with PIO-in protocol specification and years of
usage of the task_in_intr() code for fs code paths and HDIO_DRIVE_TASKFILE
ioctl has proven that real hardware also works this way (please note that
the changed code was used only for HDIO_DRIVE_CMD ioctl requests).

> I think that whole way of writing code is totally horribly bad! It's not
> only trying to tie together bits that are independent, but it actually
> gets a lot harder to understand too, because now you have *four* different
> cases ("no error, no drq", "error, no drq", "no error, drq", "error, drq")
> but you use one test to try to find the one you expect, and then the code
> easily messes up on all the other three cases!

If INTRQ is asserted and "BSY is cleared to zero and DRQ is cleared, then
the device has completed the command with an error." (thus task_in_intr()
assumed ERR bit to be set), otherwise the value ERR may not be defined
(however task_in_intr() still assumed that it is OK to check ERR bit).

Additionally handling of premature shared PCI interrupts comes into the
picture making the whole thing much more messier. It could happen in the
past that drive_is_ready() was called before drive had time to assert BSY
so later also task_in_intr() assumed that the drive is ready. However this
should be already fixed as we now always guarantee sufficient delay after
the command was written so how's about the following patch which just makes
DRQ == 0 || BSY == 1 || ERR == 1 an error (ideally we should also proceed
with transfer if DRQ == 1 && ERR == 1 but it may have other gotchas so lets
keep it as it was for now):

---
preferably this should get some testing in -mm first

drivers/ide/ide-taskfile.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)

Index: b/drivers/ide/ide-taskfile.c
===================================================================
--- a/drivers/ide/ide-taskfile.c
+++ b/drivers/ide/ide-taskfile.c
@@ -431,14 +431,9 @@ static ide_startstop_t task_in_intr(ide_
struct request *rq = HWGROUP(drive)->rq;
u8 stat = ide_read_status(drive);

- /* new way for dealing with premature shared PCI interrupts */
- if (!OK_STAT(stat, DRQ_STAT, BAD_R_STAT)) {
- if (stat & (ERR_STAT | DRQ_STAT))
- return task_error(drive, rq, __FUNCTION__, stat);
- /* No data yet, so wait for another IRQ. */
- ide_set_handler(drive, &task_in_intr, WAIT_WORSTCASE, NULL);
- return ide_started;
- }
+ /* TODO: more complex handling is needed for ERR == 1 */
+ if ((stat & DRQ_STAT) == 0 || (stat & (BUSY_STAT | ERR_STAT)))
+ return task_error(drive, rq, __func__, stat);

ide_pio_datablock(drive, rq, 0);


Now back to the recent debug log from Anders:

Mar 18 16:02:14 tippex hda: tf: feat 0xd2 nsect 0xf1 lbal 0x00 lbam 0x4f lbah 0xc2 dev 0x00 cmd 0xb0
Mar 18 16:02:14 tippex hda: hob: nsect 0x00 lbal 0x00 lbam 0x00 lbah 0x00
Mar 18 16:02:14 tippex task_in_intr: hda: stat=50

This is SMART command with SMART ENABLE ATTRIBUTE AUTOSAVE sub-command
(feat == 0xd2, nsect == 0xf1) but it should use no-data protocol instead of
PIO-in which brings us back to commit 18a056feccabdfa9764016a615121b194828bc72
("ide: don't enable local IRQs for PIO-in in driver_cmd_intr() (take 2)"):

@@ -638,19 +638,22 @@ static ide_startstop_t drive_cmd_intr (ide_drive_t *drive)
{
struct request *rq = HWGROUP(drive)->rq;
ide_hwif_t *hwif = HWIF(drive);
- u8 *args = (u8 *) rq->buffer;
- u8 stat = hwif->INB(IDE_STATUS_REG);
+ u8 *args = (u8 *)rq->buffer, pio_in = (args && args[3]) ? 1 : 0, stat;

- local_irq_enable_in_hardirq();
- if (rq->cmd_type == REQ_TYPE_ATA_CMD &&
- (stat & DRQ_STAT) && args && args[3]) {
+ if (pio_in) {
u8 io_32bit = drive->io_32bit;
+ stat = hwif->INB(IDE_STATUS_REG);
+ if ((stat & DRQ_STAT) == 0)
+ goto out;
drive->io_32bit = 0;
hwif->ata_input_data(drive, &args[4], args[3] * SECTOR_WORDS);
drive->io_32bit = io_32bit;
stat = wait_drive_not_busy(drive);
+ } else {
+ local_irq_enable_in_hardirq();
+ stat = hwif->INB(IDE_STATUS_REG);
}
-
+out:
if (!OK_STAT(stat, READY_STAT, BAD_STAT))
return ide_error(drive, "drive_cmd", stat);
/* calls ide_end_drive_cmd */

as can be seen before this patch protocol to use was decided basing on DRQ bit
being set - what would you call _that_ if taskfile code is horrible, he? ;-)

[ I tried really hard to make patchset which converted HDIO_DRIVE_CMD to use
the common code as bisectable and simple as possible (by separating real
changes in behavior from pure code transformations and making patches of
small granularity) since potential problems were kind of expected but
I must admit that I completely overlooked the hidden meaning of DRQ_STAT
check... ]

Later commit 4d977e43d8ae758434e603cf2455d955f71c77c4 just triggered the bug...

The "real" fix (Anders, please test it):

---
BTW libata seems to have exactly the same problem but it
is hidden by the lack of quirk for "premature PCI IRQs"

drivers/ide/ide-taskfile.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)

Index: b/drivers/ide/ide-taskfile.c
===================================================================
--- a/drivers/ide/ide-taskfile.c
+++ b/drivers/ide/ide-taskfile.c
@@ -771,15 +771,25 @@ int ide_cmd_ioctl (ide_drive_t *drive, u
tf->lbam = 0x4f;
tf->lbah = 0xc2;
tfargs.tf_flags = IDE_TFLAG_OUT_TF | IDE_TFLAG_IN_NSECT;
+
+ /* SMART READ DATA / LOG */
+ if (tf->feature == 0xD0 || tf->feature == 0xD5)
+ tfargs.data_phase = TASKFILE_IN;
+ else
+ tfargs.data_phase = TASKFILE_NO_DATA;
} else {
tf->nsect = args[1];
tfargs.tf_flags = IDE_TFLAG_OUT_FEATURE |
IDE_TFLAG_OUT_NSECT | IDE_TFLAG_IN_NSECT;
+
+ if (args[3])
+ tfargs.data_phase = TASKFILE_IN;
+ else
+ tfargs.data_phase = TASKFILE_NO_DATA;
}
tf->command = args[0];
- tfargs.data_phase = args[3] ? TASKFILE_IN : TASKFILE_NO_DATA;

- if (args[3]) {
+ if (tfargs.data_phase == TASKFILE_IN) {
tfargs.tf_flags |= IDE_TFLAG_IO_16BIT;
bufsize = SECTOR_WORDS * 4 * args[3];
buf = kzalloc(bufsize, GFP_KERNEL);

Subject: Re: Linux 2.6.25-rc4

On Wednesday 19 March 2008, Linus Torvalds wrote:
>
> On Wed, 19 Mar 2008, Bartlomiej Zolnierkiewicz wrote:
> >
> > Your patch is more robust and we should go with it
> > (and thanks for fixing this bug!).
>
> Ok, I committed the patch as-is, since it's what Anders tested, but I'm
> not at all convinced that it is necessarily the best or final form. The

Thanks.

> things I am aware of but didn't think about all *that* deeply:
>
> - do we get return values etc right (ie if we complete the command that
> didn't give any data, how do we account the size of it?)

Yeah, closer look would be needed there.

> - what about that remaining old unexpected case? I kept the "wait for it
> with timeout" behaviour for the case that wasn't an issue here, but if
> it really is a shared interrupt, that seems like it's going to always
> reset the timeout to WAIT_WORSTCASE, which doesn't sound really right.

This shared IRQs quirk should no longer be necessary so probably the best
way to handle BSY there would be to give drive some last chance and if it
is still BSY treat is as error.

> so I think this particular bug is fixed and we should be better off, but
> I'm definitely not claiming that the code shouldn't have people thinking
> about improving it..

Definitevely, I'll try to address "old unexpected case" for 2.6.26
(+ I'll keep looking for other issues as time permits) and of course
I'll be happy to review/merge any patches improving this area.

Bart

Subject: Re: Linux 2.6.25-rc4

On Tuesday 18 March 2008, Anders Eriksson wrote:
>
> [email protected] said:
> > Could you also add printk() to task_in_intr()?
>
> Mar 18 14:18:26 tippex do_rw_taskfile(task->data_phase=1, tf->command=236
> Mar 18 14:18:26 tippex do_rw_taskfile(task->data_phase=0, tf->command=176
> Mar 18 14:18:26 tippex do_rw_taskfile(task->data_phase=1, tf->command=176
> Mar 18 14:18:26 tippex task_in_intr: hda: stat=50

This is quite unexpected status value...

Please add "#define DEBUG" before ide_tf_load() in ide-taskfile.c
so we can see which SMART sub-command is causing this.

Thanks,
Bart

2008-03-21 15:03:43

by Mark Lord

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

Alan Cox wrote:
> On Sun, 16 Mar 2008 12:39:43 -0700 (PDT)
> Linus Torvalds <[email protected]> wrote:
>
>>
>> On Sun, 16 Mar 2008, Alan Cox wrote:
>>> No it doesn't. DRQ simply means "drive has more data for the controller
>>> if you want it". Interrupts are controlled via IEN and the interrupt line.
>> A _lot_ of chips require you to clear the DRQ by taking the data they
>> have.
>
> Almost none and mostly very old ones. I'm not saying we shouldn't do it
> (except where it hangs the hardware - hence the FIFO flag) but for the
> traces presented and hardware reported it appears to be a bit of a red
> herring.
>
>>> If the drive wants to give us data and we end the transaction that is
>>> fine. In practice a tiny few devices crap themselves if we don't.
>> More than a few tiny devices from what I remember. It tends to be the
>> other way around - most devices do *not* want to get new commands until
>> you've finished the previous one by draining the queues.
>
> Not in my experience having maintained a lot of ATA drivers for a very
> long time. In fact the changes for draining the DRQ went into libata only
> very recently because it was only when we had a distro sized userbase
> with PATA devices that it became apparent that a few corner case problems
> remained.
..

Err.. I have a fairly modern PATA drive (160GB seagate 2.5")
that gets pissed if we leave DRQ hanging. So it's not just
something for old/obsolete drives.

Or maybe it's the also-modern-ish ICH chipset that gets stuck. Whatever.

-ml

2008-03-21 15:07:20

by Alan

[permalink] [raw]
Subject: Re: Linux 2.6.25-rc4

> Err.. I have a fairly modern PATA drive (160GB seagate 2.5")
> that gets pissed if we leave DRQ hanging. So it's not just
> something for old/obsolete drives.
>
> Or maybe it's the also-modern-ish ICH chipset that gets stuck.

ICH's with AHCI support seem to get peeved.

Alan