From: sen wang <wangsen.linux@gmail.com>
To: mingo@elte.hu, akpm@linux-foundation.org, kernel@kolivas.org,
npiggin@suse.de, arjan@infradead.org,
linux-arm-kernel@lists.arm.linux.org.uk,
linux-kernel@vger.kernel.org
Subject: report a bug about sched_rt
Date: Fri, 24 Jul 2009 18:57:35 +0800 [thread overview]
Message-ID: <454c71700907240357l61f5c4fajaca73db0fba7db8@mail.gmail.com> (raw)
I find something is wrong about sched_rt.
when I am debugging my system with rt_bandwidth_enabled, there is a
running realtime FIFO task in the sched_rt running queue and
the fair running queue is empty. I found the idle task will be
scheduled up when the running task still lie in the sched_rt running
queue!
this will happen when rt runqueue passed it's rt_bandwidth_enabled
runtime,then the scheduler choose the idle task instead of realtime
FIFO task.
the reason lie in: when scheduler try to pick up a realtime FIFO task,
it will check if rt_throttled is enabled,
if so, it'll return and try fair queue but it is empty, then it come
to the sched_idle class.
I don't think it reasonable, we should give the realtime FIFO task the
chance, even when rt runqueue passed it's runtime.
because it is cpu's free time.
To fix it ,and keep rt_bandwidth works as before, I think
pick_next_task_rt() is the best space,
the pick_next_task_rt should check another condiction: rq->cfs.nr_running.
So,I modify pick_next_task_rt() like this and debug it on my omap3430
zoom2 board, it works!
static struct task_struct *pick_next_task_rt(struct rq *rq)
{
struct sched_rt_entity *rt_se;
struct task_struct *p;
struct rt_rq *rt_rq;
...
if (rt_rq_throttled(rt_rq)&& rq->cfs.nr_running)
return NULL;
...
}
next reply other threads:[~2009-07-24 10:57 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-24 10:57 sen wang [this message]
2009-07-24 12:14 ` Peter Zijlstra
2009-07-24 13:04 ` sen wang
2009-07-24 13:14 ` Peter Zijlstra
2009-07-24 13:26 ` sen wang
2009-07-24 13:33 ` Peter Zijlstra
2009-07-24 13:44 ` sen wang
2009-07-24 13:54 ` Peter Zijlstra
2009-07-24 14:04 ` sen wang
2009-07-24 14:48 ` Peter Zijlstra
2009-07-24 14:53 ` sen wang
2009-07-24 15:07 ` sen wang
2009-07-24 15:24 ` Peter Zijlstra
2009-07-24 15:43 ` sen wang
2009-07-24 15:34 ` Thomas Gleixner
2009-07-25 11:12 ` Raistlin
2009-07-24 14:24 ` sen wang
2009-07-24 14:48 ` Peter Zijlstra
2009-07-24 15:02 ` sen wang
2009-07-24 15:40 ` Jamie Lokier
2009-07-24 16:01 ` Peter Zijlstra
2009-07-24 23:30 ` Jamie Lokier
2009-07-25 5:22 ` Bill Gatliff
2009-07-25 22:48 ` Jamie Lokier
2009-07-26 2:44 ` Bill Gatliff
2009-07-26 19:03 ` Jamie Lokier
2009-07-27 10:45 ` Peter Zijlstra
2009-07-27 13:35 ` Bill Gatliff
2009-07-25 12:33 ` Raistlin
2009-07-25 14:58 ` Tommaso Cucinotta
2009-07-25 12:19 ` Raistlin
2009-07-25 22:54 ` Jamie Lokier
2009-07-25 23:24 ` Tommaso Cucinotta
2009-07-25 11:10 ` Raistlin
[not found] ` <454c71700907250429i1c77658bt6d65b02f08a29f4a@mail.gmail.com>
2009-07-25 23:01 ` Jamie Lokier
2009-07-24 14:28 ` Arjan van de Ven
2009-07-26 3:55 ` sen wang
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=454c71700907240357l61f5c4fajaca73db0fba7db8@mail.gmail.com \
--to=wangsen.linux@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=arjan@infradead.org \
--cc=kernel@kolivas.org \
--cc=linux-arm-kernel@lists.arm.linux.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=npiggin@suse.de \
/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
all inboxes | Powered by JetHome®