From: Rob Gardner <rob.gardner@hp.com>
To: rolf.neugebauer@intel.com
Cc: Keir Fraser <Keir.Fraser@cl.cam.ac.uk>,
"G. Milos" <gm281@hermes.cam.ac.uk>,
xen-devel@lists.sourceforge.net
Subject: Re: Scheduling of I/O domains
Date: Thu, 05 Aug 2004 16:21:42 -0600 [thread overview]
Message-ID: <4112B2F6.9070902@hp.com> (raw)
In-Reply-To: <1091194332.10916.55.camel@wyvis.research.intel-research.net>
Rolf Neugebauer wrote:
> ...
> The proper fix should be a call into the scheduler if a task unblocks,
> which shouldn't be too hard to add.
>
I found a simple way of doing this. In schedule.c/domain_wake(), I
changed the following code slightly:
if ( is_idle_task(curr) || (min_time <= now) )
cpu_raise_softirq(cpu, SCHEDULE_SOFTIRQ);
This code causes the scheduler to be run if the current task is the idle
task, or if the current task has already used up its time slice. I
changed this to:
if ( is_idle_task(curr) || (min_time <= now)
|| IS_CAPABLE_PHYSDEV(d) )
cpu_raise_softirq(cpu, SCHEDULE_SOFTIRQ);
This causes the scheduler also to be run if the domain we are waking up
is a device domain.
The stock BVT scheduling code seems to take care of the rest. Since the
device domain tends to run relatively rarely, its virtual time is
smaller, which causes the BVT algorithm to switch to it right away.
This changes the result of my little 'dd' test to be much closer to nominal:
time dd if=/dev/hda5 bs=1024k count=11 of=/dev/null
takes 1.96s with nothing else running.
takes 2.1s with a cpu intensive domain running concurrently
took over 8s without this change.
Maybe not perfect, but way better.
Rob Gardner
HP
-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
next prev parent reply other threads:[~2004-08-05 22:21 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-21 17:21 Scheduling of I/O domains Rob Gardner
2004-07-21 18:54 ` G. Milos
2004-07-21 22:25 ` Rob Gardner
2004-07-22 0:53 ` Keir Fraser
2004-07-30 13:32 ` Rolf Neugebauer
2004-07-30 14:48 ` G. Milos
2004-07-30 15:23 ` G. Milos
2004-08-05 22:21 ` Rob Gardner [this message]
2004-08-06 9:25 ` G. Milos
2004-08-06 21:05 ` Rob Gardner
2004-08-23 17:51 ` Ian Pratt
2004-08-02 11:48 ` G. Milos
-- strict thread matches above, loose matches on Subject: below --
2004-07-22 0:33 Neugebauer, Rolf
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=4112B2F6.9070902@hp.com \
--to=rob.gardner@hp.com \
--cc=Keir.Fraser@cl.cam.ac.uk \
--cc=gm281@hermes.cam.ac.uk \
--cc=rolf.neugebauer@intel.com \
--cc=xen-devel@lists.sourceforge.net \
/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.