Hi,
Tested under very high console activity and it no longer freeze.
Thanks,
Best regards,
Emmanuel.
---
Créez votre adresse électronique prenom.nom@laposte.net
1 Go d'espace de stockage, anti-spam et anti-virus intégrés.
Hi,
Tested under very high console activity and it no longer freeze.
Hmm, I have been seeing lockups too and asked about doing something
almost exactly the same as this recently, but was told that it shouldn't
need irqs disabled at this point. Well if it makes netconsole more
stable, I think I will try adding it to and see if it makes the problems
go away for good (my problem only happens at random and can be days
between it happening).
--
Len Sorensen
Hi,
Tested under very high console activity and it no longer freeze.
Hmm, I have been seeing lockups too and asked about doing something
almost exactly the same as this recently, but was told that it shouldn't
need irqs disabled at this point. Well if it makes netconsole more
for normal interrupt delivery it doesn't matter, because there shouldn't
be any more interrupts coming in at that point. But netconsole uses
pcnet32_interrupt for polling the chip. So if during service of a
a real interrupt a polled pcnet32_interrupt call is done, the machine
will deadlock.
Using spin_lock_irqsave() is probably the only race free solution,
when using NET_POLL.
Thomas.
--
Crap can work. Given enough thrust pigs will fly, but it's not necessary a
good idea. [ RFC1925, 2.3 ]
Hmm, I have been seeing lockups too and asked about doing something
almost exactly the same as this recently, but was told that it shouldn't
need irqs disabled at this point.
Yes. The patch should not be needed.
OTOH, it is still interesting to know if it makes a difference, though
I do not really figure why afterwards (the local irq thread could get
interrupted and the interrupting thread printk() before returning but
I doubt that it is realistic).
Well if it makes netconsole more stable, I think I will try adding it to
and see if it makes the problems go away for good (my problem only happens
at random and can be days between it happening).
One must ensure that pcnet32_{interrupt/hard_start_xmit} do not try to
printk() too.
--
Ueimor
for normal interrupt delivery it doesn't matter, because there shouldn't
be any more interrupts coming in at that point. But netconsole uses
pcnet32_interrupt for polling the chip. So if during service of a
a real interrupt a polled pcnet32_interrupt call is done, the machine
will deadlock.
Even if the driver-agnostic part of the irq processing can be interrupted
locally, the irq handlers are run sequentially on a given cpu. It does not
leave a lot of room for a deadlock-prone printk().
It _can_ happen but I'd prefer to pinpoint a specific candidate path
where it would have happened.
--
Ueimor