[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-id: <4B4E1461.4010806@majjas.com>
Date: Wed, 13 Jan 2010 13:43:45 -0500
From: Michael Breuer <mbreuer@...jas.com>
To: paulmck@...ux.vnet.ibm.com
Cc: linux-kernel@...r.kernel.org
Subject: 2.6.33rc4 RCU hang mm spin_lock deadlock(?) after running libvirtd -
reproducible.
[Originally posted as: "Re: 2.6.33RC3 libvirtd ->sky2 & rcu oops (was
Sky2 oops - Driver tries to sync DMA memory it has not allocated)"]
On 1/11/2010 8:49 PM, Paul E. McKenney wrote:
> On Sun, Jan 10, 2010 at 03:10:03PM -0500, Michael Breuer wrote:
>
>> On 1/9/2010 5:21 PM, Michael Breuer wrote:
>>
>>> Hi,
>>>
>>> Attempting to move back to mainline after my recent 2.6.32 issues...
>>> Config is make oldconfig from working 2.6.32 config. Patch for af_packet.c
>>> (for skb issue found in 2.6.32) included. Attaching .config and NMI
>>> backtraces.
>>>
>>> System becomes unusable after bringing up the network:
>>>
>>> ...
> RCU stall warnings are usually due to an infinite loop somewhere in the
> kernel. If you are running !CONFIG_PREEMPT, then any infinite loop not
> containing some call to schedule will get you a stall warning. If you
> are running CONFIG_PREEMPT, then the infinite loop is in some section of
> code with preemption disabled (or irqs disabled).
>
> The stall-warning dump will normally finger one or more of the CPUs.
> Since you are getting repeated warnings, look at the stacks and see
> which of the most-recently-called functions stays the same in successive
> stack traces. This information should help you finger the infinite (or
> longer than average) loop.
> ...
>
I can now recreate this simply by "service start libvirtd" on an F12
box. My earlier report that suggested this had something to do with the
sky2 driver was incorrect. Interestingly, it's always CPU1 whenever I
start libvirtd.
Attaching two of the traces (I've got about ten, but they're all pretty
much the same). Looks pretty consistent - libvirtd in CPU1 is hung
forking. Not sure why yet - perhaps someone who knows this better than I
can jump in.
Summary of hang appears to be libvirtd forks - two threads show with
same pid deadlocked on a spin_lock
> Then if looking at the stack traces doesn't locate the offending loop,
> bisection might help.
>
It would, however it's going to be really difficult as I wasn't able to
get this far with rc1 & rc2 :(
> Thanx, Paul
>
>
>> --
>> 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
>>
View attachment "stall1" of type "text/plain" (34802 bytes)
View attachment "stall2" of type "text/plain" (35630 bytes)
Powered by blists - more mailing lists