When I unplug the cable the system just stops responding to anything,
at all. No message is printed to the console when the cable is plugged
back in.
rtl8139_interrupt (spin_lock(&tp->lock))
-> rtl8139_weird_interrupt
-> rtl_check_media
-> mii_check_media (printk(KERN_INFO "%s: link down\n", ...))
[netpoll stuff here]
-> rtl8139_poll_controller
-> rtl8139_interrupt
*deadlock*
See below for my random stuff of the day. Feel free to open a PR at
bugzilla.kernel.org if the issue does not go away.
--------8<-----------------------------------------------------------------
8139too: netconsole breakage when link changes
rtl8139_interrupt is not supposed to be reentrant but its link
management part can emit printk.
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
From: Simon Arlott <hidden> Date: 2007-03-09 23:30:31
On 09/03/07 20:42, Francois Romieu wrote:
Simon Arlott [off-list ref] :
quoted
When I unplug the cable the system just stops responding to anything,
at all. No message is printed to the console when the cable is plugged
back in.
rtl8139_interrupt (spin_lock(&tp->lock))
-> rtl8139_weird_interrupt
-> rtl_check_media
-> mii_check_media (printk(KERN_INFO "%s: link down\n", ...))
[netpoll stuff here]
-> rtl8139_poll_controller
-> rtl8139_interrupt
*deadlock*
See below for my random stuff of the day. Feel free to open a PR at
bugzilla.kernel.org if the issue does not go away.
The patch doesn't fix it, nothing changes. I'm not sure how this can
be debugged if printk won't work...
quoted hunk
--------8<-----------------------------------------------------------------
8139too: netconsole breakage when link changes
rtl8139_interrupt is not supposed to be reentrant but its link
management part can emit printk.
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
When I unplug the cable the system just stops responding to
anything, at all. No message is printed to the console when the
cable is plugged back in.
rtl8139_interrupt (spin_lock(&tp->lock))
-> rtl8139_weird_interrupt
-> rtl_check_media
-> mii_check_media (printk(KERN_INFO "%s: link down\n", ...))
[netpoll stuff here]
-> rtl8139_poll_controller
-> rtl8139_interrupt
*deadlock*
See below for my random stuff of the day. Feel free to open a PR at
bugzilla.kernel.org if the issue does not go away.
The patch doesn't fix it, nothing changes. I'm not sure how this can
be debugged if printk won't work...
earlyprintk can be called directly (early_printk()) and should
work. It won't log over the network of course.
-Andi
From: Simon Arlott <hidden> Date: 2007-03-10 14:06:35
On 10/03/07 13:38, Andi Kleen wrote:
Simon Arlott [off-list ref] writes:
quoted
On 09/03/07 20:42, Francois Romieu wrote:
quoted
Simon Arlott [off-list ref] :
quoted
When I unplug the cable the system just stops responding to
anything, at all. No message is printed to the console when the
cable is plugged back in.
rtl8139_interrupt (spin_lock(&tp->lock))
-> rtl8139_weird_interrupt
-> rtl_check_media
-> mii_check_media (printk(KERN_INFO "%s: link down\n", ...))
[netpoll stuff here]
-> rtl8139_poll_controller
-> rtl8139_interrupt
*deadlock*
See below for my random stuff of the day. Feel free to open a PR at
bugzilla.kernel.org if the issue does not go away.
The patch doesn't fix it, nothing changes. I'm not sure how this can
be debugged if printk won't work...
earlyprintk can be called directly (early_printk()) and should
work. It won't log over the network of course.
It also won't log over the serial console either :(
(but that's probably a good thing, it's slow enough to boot with tons
of messages to the display because of netconsole and nfs).
rtl8139_interrupt
-> spin_lock(&tp->lock)
-> rtl8139_weird_interrupt
-> rtl_check_media
-> mii_check_media
-> printk(KERN_INFO "%s: link down\n", ...)
-> wite_msg
-> local_irq_save
-> netpoll_send_udp
-> netpoll_send_skb
-> local_irq_save
-> dev->hard_start_xmit(..., ...)
rtl8139_start_xmit
-> spin_lock_irqsave
*deadlock*
--
Simon Arlott
Probably the best thing that can be done here aside from moving
mii_check_media outside interrupt handling is to add
netpoll_plug/unplug(dev) methods that push work off to netpoll's queue
for drivers that have a netpoll recursion problem.
--
Mathematics is the supreme nostalgia of our time.
On Sat, Mar 10, 2007 at 02:06:28PM +0000, Simon Arlott wrote:
On 10/03/07 13:38, Andi Kleen wrote:
quoted
Simon Arlott [off-list ref] writes:
quoted
On 09/03/07 20:42, Francois Romieu wrote:
quoted
Simon Arlott [off-list ref] :
quoted
When I unplug the cable the system just stops responding to
anything, at all. No message is printed to the console when the
cable is plugged back in.
rtl8139_interrupt (spin_lock(&tp->lock))
-> rtl8139_weird_interrupt
-> rtl_check_media
-> mii_check_media (printk(KERN_INFO "%s: link down\n", ...))
[netpoll stuff here]
-> rtl8139_poll_controller
-> rtl8139_interrupt
*deadlock*
See below for my random stuff of the day. Feel free to open a PR at
bugzilla.kernel.org if the issue does not go away.
The patch doesn't fix it, nothing changes. I'm not sure how this can
be debugged if printk won't work...
earlyprintk can be called directly (early_printk()) and should
work. It won't log over the network of course.
It also won't log over the serial console either :(
It does, you just have to configure it properly.
earlyprintk=serial,ttySx,baud
-Andi