Bad IRQs & SATA ADMA failures
Vivek Goyal
vgoyal at redhat.com
Tue Apr 8 19:48:01 EDT 2008
On Tue, Apr 08, 2008 at 03:05:20PM -0400, Alan D. Brunelle wrote:
> I'm new to the KEXEC/KDUMP world - just started out today. I believe
> that I have things set up right, but I'm running into two issues:
>
> 1. A few seconds into the boot, I see:
>
> [ 3.400435] ata1: SATA max UDMA/133 cmd 0x28d0 ctl 0x28f8 bmdma
> 0x28b0 irq 5
> [ 3.410435] ata2: SATA max UDMA/133 cmd 0x28d8 ctl 0x28fc bmdma
> 0x28b8 irq 5
> [ 3.864522] irq 5: nobody cared (try booting with the "irqpoll" option)
> [ 3.864522] Pid: 0, comm: swapper Not tainted 2.6.25-rc8-bannor-kexec #1
> [ 3.864522
> [ 3.864522] Call Trace:
> [ 3.864522] <IRQ> [<ffffffff8024da5e>] __report_bad_irq+0x1e/0x80
> [ 3.864522] [<ffffffff8024dd2f>] note_interrupt+0x26f/0x2a0
> [ 3.864522] [<ffffffff8024e2b1>] handle_fasteoi_irq+0x71/0xa0
> [ 3.864522] [<ffffffff8020ed8c>] do_IRQ+0x5c/0xc0
> [ 3.864522] [<ffffffff8020c471>] ret_from_intr+0x0/0xa
> [ 3.864522] <EOI> [<ffffffff803bc610>] nv_scr_read+0x0/0x30
> [ 3.864522] [<ffffffff8020afbe>] default_idle+0x2e/0x60
> [ 3.864522] [<ffffffff8020afb9>] default_idle+0x29/0x60
> [ 3.864522] [<ffffffff8020af90>] default_idle+0x0/0x60
> [ 3.864522] [<ffffffff8020b032>] cpu_idle+0x42/0x70
> [ 3.864522] [<ffffffff80501aaa>] start_kernel+0x23a/0x280
> [ 3.864522] [<ffffffff805011a5>] _sinittext+0x1a5/0x1f0
> [ 3.864522]
> [ 3.864522] handlers:
> [ 3.864522] [<ffffffff803bd950>] (nv_adma_interrupt+0x0/0x4c0)
> [ 3.864522] Disabling IRQ #5
>
>
This one just means that there is a device out there which has interrupt
line asserted and there is no associated driver to handle those. Hence
kernel sees a flood of interrupts and disables interrupt line. That's
why we boot with paramter "irqpoll". In kdump situations, these things
are expected. You can ignore this error.
> 2. Very soon thereafter, I start seeing:
>
> [ 4.671112] sda:<3>ata1: EH in ADMA mode, notifier 0x1
> notifier_error 0x0 g0
> [ 34.681112] ata1: CPB 0: ctl_flags 0xd, resp_flags 0x1
> [ 34.681112] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> frozen
> [ 34.691112] ata1.00: cmd c8/00:08:00:00:00/00:00:00:00:00/e0 tag 0
> dma 4096 n
> [ 34.691112] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask
> 0x4 (time)
> [ 34.701112] ata1.00: status: { DRDY }
> [ 35.051112] ata1: soft resetting link
> [ 35.211112] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
> [ 35.251112] ata1.00: configured for UDMA/100
> [ 35.251112] ata1: EH complete
>
> This goes on "forever" - and the system fails to boot.
>
This is problem with SATA. It is not able to reset the device and recover
and re-initialize. I think we shall have to open a bug for this for the
SATA driver owner.
> This script is used to set up kexec:
>
> root="root=/dev/sda1"
> gen_args="1 irqpoll maxcpus=1 reset_devices"
> bannor_args="acpi=off console=tty0 console=ttyS2,115200n8"
>
> /usr/local/sbin/kexec -l /boot/vmlinuz-2.6.25-rc8-bannor-kexec \
> --append="${root} ${gen_args} ${bannor_args}"
>
> Some other notes:
>
> o I have the kernel gen'd w/out an initrd
>
> o Kernel is gen'd w/out CONFIG_SMP
>
> o I added the 'acpi=off' as one site I google'd had that as a possible
> fix for a problem like this.
>
> I do not know if the two problems mentioned above are related, but in
> any case, I'm wondering if there are any pointers out there to help get
> this going.
>
> I have the output from 'lspci' and the console log during a failed boot
> up on : http://free.linux.hp.com/~adb/kexec/bootlog.txt
>
In general, I think your procedure is fine.
Thanks
Vivek
More information about the kexec
mailing list