[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170816175805.GB7017@linux.vnet.ibm.com>
Date: Wed, 16 Aug 2017 10:58:05 -0700
From: "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
To: Steven Rostedt <rostedt@...dmis.org>
Cc: Daniel Lezcano <daniel.lezcano@...aro.org>,
Pratyush Anand <panand@...hat.com>,
κΉλν <austinkernel.kim@...il.com>,
john.stultz@...aro.org, linux-kernel@...r.kernel.org
Subject: Re: RCU stall when using function_graph
On Wed, Aug 16, 2017 at 12:41:40PM -0400, Steven Rostedt wrote:
> On Wed, 16 Aug 2017 09:32:28 -0700
> "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com> wrote:
>
> > Let me see if I understand you... About halfway to the stall limit,
> > RCU triggers an irq_work (on each CPU that has not yet passed through
> > a quiescent state, IPIing them in turn?), and if the irq_work has
> > not completed by the end of the stall limit, RCU adds that to its
> > stall-warning message.
>
> Doesn't even have to be half way through. It could be done at the
> limit, and then wait a little more.
Agreed. However, I take other evasive action halfway through, so there
is a nice place to put the code.
> > Or am I missing something here?
>
> No, I think that's what I was suggesting.
I don't see a way of canceling an irq_work.
Ah, but there is an irq_work_queue_on() that fails if still pending.
I should be able to use that instead of cancel. Plus, -I- don't have
to send the IPIs, I can just let irq_work_queue_on() do my dirty work!
This should provide sufficient entertainment for a bit! ;-)
Thanx, Paul
Powered by blists - more mailing lists