netdev
[Top] [All Lists]

Re: [PATCH] Prevent netpoll hanging when link is down

To: Matt Mackall <mpm@xxxxxxxxxxx>
Subject: Re: [PATCH] Prevent netpoll hanging when link is down
From: Andi Kleen <ak@xxxxxxx>
Date: Mon, 11 Oct 2004 18:32:26 +0200
Cc: Andi Kleen <ak@xxxxxxx>, "David S. Miller" <davem@xxxxxxxxxxxxx>, Andrew Morton <akpm@xxxxxxxx>, colin@xxxxxxxxxx, netdev@xxxxxxxxxxx
In-reply-to: <20041011162224.GL31237@xxxxxxxxx>
References: <20041007160532.60c3f26b@pirandello> <20041007112846.5c85b2d9.davem@xxxxxxxxxxxxx> <20041007224422.1c1bea95@xxxxxxxxxxxxxxx> <20041007214505.GB31558@xxxxxxxxxxxxx> <20041008090610.70d7e183@pirandello> <20041008220001.GE31237@xxxxxxxxx> <20041008151839.01823e0c.akpm@xxxxxxxx> <20041010205928.6e54df7e.davem@xxxxxxxxxxxxx> <20041011154000.GB26350@xxxxxxxxxxxxx> <20041011162224.GL31237@xxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
On Mon, Oct 11, 2004 at 11:22:24AM -0500, Matt Mackall wrote:
> On Mon, Oct 11, 2004 at 05:40:00PM +0200, Andi Kleen wrote:
> > On Sun, Oct 10, 2004 at 08:59:28PM -0700, David S. Miller wrote:
> > > 
> > > Wait, I think I see the problem.
> > > 
> > > Sungem processes link status in it's ->poll() NAPI handler.
> > > This occurs via calls to gem_pcs_interrupt(), for example.
> > > Non-pcs sungem variants use a timer to poll link status.
> > > 
> > > When the link changes state, this link state processing
> > > does printk()'s.
> > > 
> > > So perhaps that is why it deadlocks.
> > 
> > printk handles recursion with the down_trylock on console_sem.
> > So it shouldn't deadlock.
> 
> If we're in the ->poll() handler for non-netpoll reasons, and the link
> state changes, causing a printk, we'll potentially reenter ->poll() via
> netconsole.

It won't because printk catches the case.

-Andi

<Prev in Thread] Current Thread [Next in Thread>