From: Marcelo Tosatti <mtosatti@redhat.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
Steven Rostedt <srostedt@redhat.com>,
Luiz Capitulino <lcapitulino@redhat.com>,
linux-rt-users@vger.kernel.org
Subject: Re: kernel-rt rcuc lock contention problem
Date: Mon, 2 Feb 2015 19:02:29 -0200 [thread overview]
Message-ID: <20150202210229.GA14624@amt.cnet> (raw)
In-Reply-To: <20150202155528.31bcb406@gandalf.local.home>
On Mon, Feb 02, 2015 at 03:55:28PM -0500, Steven Rostedt wrote:
> On Mon, 2 Feb 2015 18:46:59 -0200
> Marcelo Tosatti <mtosatti@redhat.com> wrote:
>
>
> > > > The second commit, d550e81dc0dd should be part of -RT, and currently is
> > > > not, because:
> > > >
> > > > -> Any IRQ work item will raise timer softirq.
> > > > -> __run_timers will do a full round of processing,
> > > > ruining latency.
> > >
> > > Was this discussed?
> >
> > Discussed where?
>
> It sounded like that commit was not added because of the above. That's
> why I asked, was it discussed. Sounded like you were saying that commit
> d550e81dc0dd should be part of -RT but it is not because ..., which
> sounds like there were some decisions made.
>
> >
> > The point is this: __run_timers has horrible latency.
> > How to avoid it: configure the system in such a way that no timers
> > (old interface, add_timers) expire on the local CPU.
> >
> > The patches Paul listed above limit the issue allowing
> > you to call raise_softirq(TIMER_SOFTIRQ) without having to go
> > through __run_timers, in the case of no pending timers.
>
> OK, so you are asking for me to add those patches?
Yes.
> > Then you rely on the sched timer interrupt to notice there is a pending
> > irq_work item?
>
> On, x86, there shouldn't be. irq_work can usually trigger its own
> interrupt. In the case that it can not, it requires the softirq to
> trigger when there's irq work to be done.
>
> >
> > If you have no sched timer interrupts, then what happens with that
> > irq_work item?
> >
>
> That's what that patch does. It should trigger some. Hmm, I have to see
> if no_hz_full checks irq work too.
>
> But again, of there's no irq_work to do then this should not matter. If
> there's irq_work to do, then something on that CPU asked to do irq
> work.
Right.
> If you are worried about run_timers, make sure nothing is on that
> CPU that can trigger a timer.
I am worried about two things:
1) Something calling raise_softirq(TIMER_SOFTIRQ) and lack of
Paul's d550e81dc0dd.
The result is __run_timers checking all timer wheel "nodes"
and updating base->timer_jiffies, latency is ruined.
Even if one carefully made sure no timer is present.
2) Reliance on sched timer interrupt to raise timer softirq
in case of pending irq work (your patch) AND no_hz_full.
> Isolation is the *only* way to make that work.
Fine. Please see item 1) above.
next prev parent reply other threads:[~2015-02-02 21:02 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-26 19:14 kernel-rt rcuc lock contention problem Luiz Capitulino
2015-01-27 20:37 ` Paul E. McKenney
2015-01-28 1:55 ` Marcelo Tosatti
2015-01-28 14:18 ` Luiz Capitulino
2015-01-28 18:09 ` Paul E. McKenney
2015-01-28 18:39 ` Luiz Capitulino
2015-01-28 19:00 ` Paul E. McKenney
2015-01-28 19:06 ` Luiz Capitulino
2015-01-28 18:03 ` Paul E. McKenney
2015-01-28 18:25 ` Marcelo Tosatti
2015-01-28 18:55 ` Paul E. McKenney
2015-01-29 17:06 ` Steven Rostedt
2015-01-29 18:11 ` Paul E. McKenney
2015-01-29 18:13 ` Marcelo Tosatti
2015-01-29 18:36 ` Paul E. McKenney
2015-02-02 18:24 ` Marcelo Tosatti
2015-02-02 20:35 ` Steven Rostedt
2015-02-02 20:46 ` Marcelo Tosatti
2015-02-02 20:55 ` Steven Rostedt
2015-02-02 21:02 ` Marcelo Tosatti [this message]
2015-02-03 20:36 ` Steven Rostedt
2015-02-03 20:57 ` Paul E. McKenney
2015-02-03 23:55 ` Marcelo Tosatti
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=20150202210229.GA14624@amt.cnet \
--to=mtosatti@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=linux-rt-users@vger.kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=rostedt@goodmis.org \
--cc=srostedt@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).