All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: "Daniel Lezcano" <daniel.lezcano@linaro.org>,
	"Pratyush Anand" <panand@redhat.com>,
	김동현 <austinkernel.kim@gmail.com>,
	john.stultz@linaro.org, linux-kernel@vger.kernel.org
Subject: Re: RCU stall when using function_graph
Date: Wed, 16 Aug 2017 09:32:28 -0700	[thread overview]
Message-ID: <20170816163228.GZ7017@linux.vnet.ibm.com> (raw)
In-Reply-To: <20170816100421.318deae2@gandalf.local.home>

On Wed, Aug 16, 2017 at 10:04:21AM -0400, Steven Rostedt wrote:
> On Wed, 16 Aug 2017 10:42:15 +0200
> Daniel Lezcano <daniel.lezcano@linaro.org> wrote:
> 
> > Hi Steven,
> > 
> > 
> > On 15/08/2017 15:29, Steven Rostedt wrote:
> > > 
> > > [ I'm back from vacation! ]  
> > 
> > Did you get the tapes? :)
> 
> Yes, but nothing in them would cause the reputation of the POTUS to
> become any worse than it already is.
> 
> > 
> > > On Wed, 9 Aug 2017 17:51:33 +0200
> > > Daniel Lezcano <daniel.lezcano@linaro.org> wrote:
> > >   
> > >> Well, may be the instruction pointer thing is not a good idea.
> > >>
> > >> I learnt from this experience, an overloaded kernel with a lot of
> > >> interrupts can hang the console and issue RCU stall.
> > >>
> > >> However, someone else can face the same situation. Even if he reads the
> > >> RCU/stallwarn.txt documentation, it will be hard to figure out the issue.
> > >>
> > >> A message telling the grace period can't be reached because we are too
> > >> busy processing interrupts would have helped but I understand it is not
> > >> easy to implement.  
> > > 
> > > What if the stall code triggered an irqwork first? The irqwork would
> > > trigger as soon as interrupts were enabled again (or at the next tick,
> > > depending on the arch), and then it would know that RCU stalled due to
> > > an irq storm if the irqwork is being hit.  
> > 
> > Is that condition enough to tell the CPU is over utilized by the
> > interrupts handling?
> > 
> > And I'm wondering if it wouldn't make sense to have this detection in
> > the irq code. With or without the RCU stall warning kernel option set,
> > the irq framework will be warning about this situation. If the RCU stall
> > option is set, that will issue a second message. It will be easy to do
> > the connection between the first message and the second one, no ?
> 
> The thing is, the RCU code keeps track of the state of progress, I
> don't believe the interrupt code does. It just worries about handling
> interrupts. I'm not excited about adding infrastructure to the
> interrupt code to do accounting of IRQ storms.
> 
> On the other hand, the RCU code already does this. If it notices a
> stall, it can trigger a irq_work and wait a little more. If the
> irq_work doesn't fire, then it can do the normal RCU stall message. But
> if the irq_work does fire, and the RCU progress still hasn't moved
> forward, then it would be able to say this is due to an IRQ storm and
> produce a better error message.

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.

Or am I missing something here?

							Thanx, Paul

  reply	other threads:[~2017-08-16 16:32 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-01 22:04 RCU stall when using function_graph Paul E. McKenney
2017-08-01 22:15 ` Daniel Lezcano
2017-08-02  0:12   ` Steven Rostedt
2017-08-02 12:42     ` Daniel Lezcano
2017-08-02 13:07       ` Steven Rostedt
2017-08-03  2:40         ` Paul E. McKenney
2017-08-03 11:41         ` Daniel Lezcano
2017-08-03 12:44           ` Paul E. McKenney
2017-08-03 14:38             ` Daniel Lezcano
     [not found]               ` <CAOoBcBXo-=VYy2+TYEp=8+WSkOpDBr1x6uY=-r_GnTFKctXndQ@mail.gmail.com>
     [not found]                 ` <CAOoBcBVKpQkAVXji5qQu8r8GErqxpy9Ae9N97NhGpOQPgXudZg@mail.gmail.com>
     [not found]                   ` <CAOoBcBU00VRXmrNNEOjJHgXf9BimxKYOorJC0d3766mNdda=Bg@mail.gmail.com>
2017-08-06 17:02                     ` Paul E. McKenney
2017-08-09  9:13                       ` Pratyush Anand
2017-08-09 12:58                         ` Paul E. McKenney
2017-08-09 13:28                           ` Daniel Lezcano
2017-08-09 14:40                             ` Paul E. McKenney
2017-08-09 15:51                               ` Daniel Lezcano
2017-08-09 17:22                                 ` Paul E. McKenney
2017-08-10  9:45                                   ` Daniel Lezcano
2017-08-10 21:39                                     ` Paul E. McKenney
2017-08-11  9:38                                       ` Daniel Lezcano
2017-08-15 13:29                                 ` Steven Rostedt
2017-08-16  8:42                                   ` Daniel Lezcano
2017-08-16 14:04                                     ` Steven Rostedt
2017-08-16 16:32                                       ` Paul E. McKenney [this message]
2017-08-16 16:41                                         ` Steven Rostedt
2017-08-16 17:58                                           ` Paul E. McKenney
2017-08-30 22:07                                             ` Paul E. McKenney
2017-08-02 16:51       ` Paul E. McKenney
2017-08-02 12:49 ` Paul E. McKenney
  -- strict thread matches above, loose matches on Subject: below --
2017-08-01 21:07 Daniel Lezcano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170816163228.GZ7017@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=austinkernel.kim@gmail.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=john.stultz@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=panand@redhat.com \
    --cc=rostedt@goodmis.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.