Skip to contentSkip to conversation

Hard lockup with ata_piix 2.6.21.1: strange traceback, too

DISCUSSION Mark Lord 2 participants 2 messages Jun 20, 2007 – Jun 21, 2007 libata

lore
Share & tools
lore

Mark Lord

author
#0 lore raw

Hi guys,

I'm debugging a system here based on ICH7/ata_piix. When we hot-pull a drive, it locks up solid. That's fine, but I'd like to find/fix the lockup.

So as part of poking around, I rebuilt the kernel with frame pointers, and inserted a WARN_ON(1) into ata_busy_sleep() to see who was calling it just before things locked up.

Here's the result: http://rtr.ca/libata.png

Can anyone here make sense of that traceback??
Are we *really* recursing inside the EH code?

Thanks

#1 lore raw
Quoted 6 lines · Mark Lord

Hi guys,

I'm debugging a system here based on ICH7/ata_piix. When we hot-pull a drive, it locks up solid. That's fine, but I'd like to find/fix the lockup.

Quoted 7 lines

So as part of poking around, I rebuilt the kernel with frame pointers, and inserted a WARN_ON(1) into ata_busy_sleep() to see who was calling it just before things locked up.
Here's the result: http://rtr.ca/libata.png

Can anyone here make sense of that traceback??
Are we *really* recursing inside the EH code?

It looks like SCSI EH -> piix_sata_error_handler -> ata_eh_recover -> ata_std_softreset -> ata_std_prereset -> ata_busy_sleep with lots of bogus entries inbetween.

Signature · 1 line
tejun