From: Ingo Molnar <mingo@elte.hu>
To: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Dario Faggioli <raistlin@linux.it>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Michael Trimarchi <trimarchimichael@yahoo.it>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH] sched_rt.c: resch needed in rt_rq_enqueue() for the root rt_rq
Date: Sat, 4 Oct 2008 14:32:26 +0200 [thread overview]
Message-ID: <20081004123226.GC3728@elte.hu> (raw)
In-Reply-To: <1223119065.28938.22.camel@twins>
* Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
> On Fri, 2008-10-03 at 17:40 +0200, Dario Faggioli wrote:
> > Hi all,
> >
> > While working on the new version of the code for SCHED_SPORADIC I
> > noticed something strange in the present throttling mechanism. More
> > specifically in the throttling timer handler in sched_rt.c
> > (do_sched_rt_period_timer()) and in rt_rq_enqueue().
> >
> > The problem is that, when unthrottling a runqueue, rt_rq_enqueue() only
> > asks for rescheduling if the runqueue has a sched_entity associated to
> > it (i.e., rt_rq->rt_se != NULL).
> > Now, if the runqueue is the root rq (which has a rt_se = NULL)
> > rescheduling does not take place, and it is delayed to some undefined
> > instant in the future.
> >
> > This imply some random bandwidth usage by the RT tasks under throttling.
> > For instance, setting rt_runtime_us/rt_period_us = 950ms/1000ms an RT
> > task will get less than 95%. In our tests we got something varying
> > between 70% to 95%.
> > Using smaller time values, e.g., 95ms/100ms, things are even worse, and
> > I can see values also going down to 20-25%!!
> >
> > The tests we performed are simply running 'yes' as a SCHED_FIFO task,
> > and checking the CPU usage with top, but we can investigate thoroughly
> > if you think it is needed.
> >
> > Things go much better, for us, with the attached patch... Don't know if
> > it is the best approach, but it solved the issue for us.
>
> Its consistent with John Blackwood's change to the !group case
> (f3ade837), and looks good.
>
> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
>
> Ingo, please pickup (might be 27.1 material as well).
applied to tip/sched/devel, thanks! I've also added a Cc:
stable@kernel.org tag to the commit.
Ingo
prev parent reply other threads:[~2008-10-04 12:32 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-03 15:40 [PATCH] sched_rt.c: resch needed in rt_rq_enqueue() for the root rt_rq Dario Faggioli
2008-10-04 11:17 ` Peter Zijlstra
2008-10-04 12:32 ` Ingo Molnar [this message]
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=20081004123226.GC3728@elte.hu \
--to=mingo@elte.hu \
--cc=a.p.zijlstra@chello.nl \
--cc=linux-kernel@vger.kernel.org \
--cc=raistlin@linux.it \
--cc=tglx@linutronix.de \
--cc=trimarchimichael@yahoo.it \
/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.