Re: bisect results of MSI-X related panic (help!)

From: Tejun Heo
Date: Thu Oct 15 2009 - 03:33:27 EST


Hello,

Brandeburg, Jesse wrote:
> On Mon, 12 Oct 2009, Tejun Heo wrote:
>> Can you please apply the following patch and try to retrigger the
>> panic?
>>
>> diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
>> index c166019..f5a1482 100644
>> --- a/kernel/irq/chip.c
>> +++ b/kernel/irq/chip.c
>> @@ -63,6 +63,9 @@ void dynamic_irq_cleanup(unsigned int irq)
>> struct irq_desc *desc = irq_to_desc(irq);
>> unsigned long flags;
>>
>> + printk("XXX dynamic_irq_cleanup() called on %u\n", irq);
>> + dump_stack();
>> +
>> if (!desc) {
>> WARN(1, KERN_ERR "Trying to cleanup invalid IRQ%d\n", irq);
>> return;
>
> I'm working on it, but now that I've added a bunch of debug including the
> above printk, my system panics (with a stack protector canary overwrite)
> when loading the first network adapter with 30+ MSI-X vectors. I can boot
> single user mode and bring up netconsole, but then as soon as I brought up
> the first port with lots of MSI-X vectors, the system hard locks, no panic
> message.
>
> I have a bit of a theory that the node = -1 (numa_node) stuff might be
> playing some havoc with the code in numa_migrate.c. I'm not sure if that
> is contributing, but the code in there doesn't seem written to handle node
> = - 1 very well. As in I never see it do an smp_processor_id at the
> bottom before accessing the node value.
>
> Not sure if that is relevant, but I wanted to mention it before I went
> home.
>
> What next? I made it worse so I guess that is something.

I don't know. At this point, I can't think of anything other than
sprinkling printks and dump_stacks around. :-(

Thanks.

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