[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <4573E6FD.3030905@cj.jp.nec.com>
Date: Mon, 04 Dec 2006 18:14:37 +0900
From: Kenzo Iwami <k-iwami@...jp.nec.com>
To: Kenzo Iwami <k-iwami@...jp.nec.com>
CC: "Brandeburg, Jesse" <jesse.brandeburg@...el.com>,
"Kok, Auke-jan H" <auke-jan.h.kok@...el.com>,
Shaw Vrana <shaw@...nix.com>, netdev@...r.kernel.org,
"Ronciak, John" <john.ronciak@...el.com>
Subject: Re: watchdog timeout panic in e1000 driver
Hi,
>> Doesn't this just mean that we need a spinlock or some other kind of
>> semaphore around acquiring, using, and releasing this resource? We keep
>> going around and around about this but I'm pretty sure spinlocks are
>> meant to be able to solve exactly this issue.
>>
>> The problem is going to get considerably more nasty if we need to hold a
>> spinlock with interrupts disabled for a significant amount of time, at
>> which point a semaphore of some kind with a spinlock around it would
>> seem to be more useful.
>
> Even if spin_lock() was used to protect this resource, it is still possible
> for an interrupt to kick in and call e1000_watchdog. In this case,
> e1000_get_software_semaphore() will be called from within the interrupt
> handler and the problem will still occur.
>
> In order to solve this problem, interrupt should be disabled (for example,
> spin_lock_irqsave).
> The interrupt handler can't run while the process is holding this resource,
> and this problem doesn't occur.
>
>> I'll work with Auke to see if we can come up with another try.
>
> Do you have any updates about your test code?
Does the fix I previously proposed have problems?
If it does, I'd like to help find investigate another fix to solve
this problem.
--
Kenzo Iwami (k-iwami@...jp.nec.com)
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists