All of lore.kernel.org
 help / color / mirror / Atom feed
* Scheduling of I/O domains
@ 2004-07-21 17:21 Rob Gardner
  2004-07-21 18:54 ` G. Milos
  2004-08-02 11:48 ` G. Milos
  0 siblings, 2 replies; 13+ messages in thread
From: Rob Gardner @ 2004-07-21 17:21 UTC (permalink / raw)
  To: xen-devel

I have been looking for the code in xen that handles scheduling of I/O
domains, but have not succeeded in finding any. Only after some time did
I start thinking that maybe there wasn't any. So I did the following
simple experiment:
In domain 1:
  time dd if=/dev/hda of=/dev/null bs=1024k count=100
and this this took about 2 seconds.
Then I ran a cpu-consuming process in domain 2, and repeated the dd
command above. The result was more than 8 seconds! This strongly
suggests that domain 0 is not being treated specially by the scheduler,
and is being made to wait before servicing I/O interrupts, thereby
killing I/O performance in the presence of cpu-bound domain activity. It
seems to me that I/O domains need to be scheduled and dispatched
immediately upon receipt of an I/O interrupt.

Am I missing something here? How come nobody has noticed this behavior
before? Is somebody working on this? I

Rob Gardner






-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click

^ permalink raw reply	[flat|nested] 13+ messages in thread
* RE: Scheduling of I/O domains
@ 2004-07-22  0:33 Neugebauer, Rolf
  0 siblings, 0 replies; 13+ messages in thread
From: Neugebauer, Rolf @ 2004-07-22  0:33 UTC (permalink / raw)
  To: Rob Gardner, G. Milos; +Cc: xen-devel, Neugebauer, Rolf

the scheduler should also be entered if an event (in this case a
virtualized interrupt) is delivered to a domain by Xen (and not just on
a timer interrupt). In particular the event delivery mechanisms should
check if the receiving domain is blocked, if so, wake it up and enter
the scheduler.

It is debatable if an already running/runable domain should be given
special treatment if a virtualized HW interrupt or an event in general
is delivered to it. because the scheduler should also provide an upper
bound or some notion of fairness on the CPU time received by domains if
they receive lots of events.

In general we are aware of some scheduler 'issues' with more IO bound
domains in the presence of cpu bound domains (and in this sense IO
domains and IO bound domains are pretty similar).

I have a look tomorrow once I my workstation is back up in a usable
state, and as gregor pointed out, he is also looking into this.
Hopefully we can resolve this issue reasonably quick.

rolf

> -----Original Message-----
> From: xen-devel-admin@lists.sourceforge.net [mailto:xen-devel-
> admin@lists.sourceforge.net] On Behalf Of Rob Gardner
> Sent: 21 July 2004 23:25
> To: G. Milos
> Cc: xen-devel@lists.sourceforge.net
> Subject: Re: [Xen-devel] Scheduling of I/O domains
> 
> G. Milos wrote:
> >
> > To target the unfairness I am developing a modification of BVT (I
called
> > it Fair Borrowed Virtual Time [FBVT]). You can enable it by
supplying
> > "sched=fbvt" command to Xen at the startup. The scheduler is under
> > development and it needs some tweaking to get the best performance
(that
> > is what I am working on at the moment). It would be very helpful if
you
> > could email me with the results of your tests for FBVT.
> 
> 
> I tried booting xen with "sched=fbvt" in the command line in
grub.conf.
> It didn't change the results at all. And why would it? We are not
> dealing with an "I/O bound domain" here, but rather with an "I/O
> domain", two very different things.
> 
> It seems to me that this problem doesn't have anything to do with the
> choice of scheduling policy or parameters; It is about when the
> scheduler is called. It appears as though the xen cpu scheduler
> currently only runs when the hardware timer ticks. It does not run
when
> an external interrupt happens. So there is a large latency introduced
to
> I/O interrupts, and this limits I/O performance. Changing the
scheduler
> algorithm won't help this.
> 
> The only way to avoid this is to immediately dispatch the I/O domain
> responsible for a given I/O interrupt as soon as that interrupt
occurs.
> This means giving I/O domains with pending interrupts scheduling
> priority over any "regular" domains. Just as in a "normal" operating
> system, interrupt service routines must complete before any user
> processes are executed. Otherwise, latencies are introduced that kill
> I/O performance.
> 
> Rob Gardner
> 
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by BEA Weblogic Workshop
> FREE Java Enterprise J2EE developer tools!
> Get your free copy of BEA WebLogic Workshop 8.1 today.
> http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/xen-devel



-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_idG21&alloc_id\x10040&op=click

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2004-08-23 17:51 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
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

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.