[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110519211458.GG1956@nowhere>
Date: Thu, 19 May 2011 23:15:00 +0200
From: Frederic Weisbecker <fweisbec@...il.com>
To: Yinghai Lu <yinghai@...nel.org>
Cc: "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
Ingo Molnar <mingo@...e.hu>, linux-kernel@...r.kernel.org,
Steven Rostedt <rostedt@...dmis.org>
Subject: Re: [GIT PULL rcu/next] rcu commits for 2.6.40
On Thu, May 19, 2011 at 12:51:26PM -0700, Yinghai Lu wrote:
> [ 85.194797] <idle>-0 0d... 85152953us : rcu_irq_enter: 1 49
> [ 85.194808] <idle>-0 0dN.. 85153081us : <stack trace>
> [ 85.194809] => rcu_irq_exit
> [ 85.194810] => irq_exit
> [ 85.194811] => smp_apic_timer_interrupt
> [ 85.194812] => apic_timer_interrupt
> [ 85.194813] => cpu_idle
> [ 85.194813] => rest_init
> [ 85.194814] => start_kernel
> [ 85.194815] => x86_64_start_reservations
So it's the dynticks_nesting going crazy. As if we had rcu_irq_enter()
without rcu_irq_exit().
I see you have CONFIG_DEBUG_LOCKING_API_SELFTESTS=y
and the locking api selftest is doing a strange thing: if we look
at HARDIRQ_ENTER(), it calls irq_enter(), but HARDIRQ_EXIT() only
calls __irq_exit(). Which means it lacks the rcu_irq_exit().
So, if I understood correctly the thing there, some selftests simulating
the hardirq context are unbalancing the rcu state.
Does that help if you unset CONFIG_DEBUG_LOCKING_API_SELFTESTS ?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists