This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] Scheduling of I/O domains

To: Rob Gardner <rob.gardner@xxxxxx>
Subject: Re: [Xen-devel] Scheduling of I/O domains
From: "G. Milos" <gm281@xxxxxxxxxxxxxxxx>
Date: Mon, 2 Aug 2004 12:48:07 +0100 (BST)
Cc: xen-devel@xxxxxxxxxxxxxxxxxxxxx
Delivery-date: Mon, 02 Aug 2004 12:54:51 +0100
Envelope-to: steven.hand@xxxxxxxxxxxx
In-reply-to: <40FEA619.1050800@xxxxxx>
List-archive: <http://sourceforge.net/mailarchive/forum.php?forum=xen-devel>
List-help: <mailto:xen-devel-request@lists.sourceforge.net?subject=help>
List-id: List for Xen developers <xen-devel.lists.sourceforge.net>
List-post: <mailto:xen-devel@lists.sourceforge.net>
List-subscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=subscribe>
List-unsubscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=unsubscribe>
References: <40FEA619.1050800@xxxxxx>
Sender: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx
I've just checked in another set of changes to the scheduling code.
Now the default scheduler (BVT) handles I/O bound domains much better. I run the test suggested by Rob:
time dd if=/dev/sda1 of=/dev/null bs=1024k count=1000
with the folloving results:
dd alone:
run 1: 16.830s
run 2: 17.058s
run 3: 16.999s
avg:   16.962s

dd against cpu bound process in another domain:
run 1: 17.348s
run 2: 16.973s
run 3: 16.931s
avg:   17.084s

difference: 0.72% (small enough)

As soon as the code gets pushed in to bkbits it will be available for tests.

Currently the warp mechanism does not work (it has never been implemented properly). Changing the warp parameters will have small effect on the scheduler's behaviour. As soon as I get this to work we can arrange for domain 0 to run warped, thus receiving CPU in "privilaged" manner.


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 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
Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>