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] Question about the ability of credit scheduler to handle

To: Yuehai Xu <yuehaixu@xxxxxxxxx>
Subject: Re: [Xen-devel] Question about the ability of credit scheduler to handle I/O and CPU intensive VMs
From: cendhu <cendhu@xxxxxxxxx>
Date: Sun, 10 Oct 2010 14:00:17 +0530
Cc: George Dunlap <George.Dunlap@xxxxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx, yhxu@xxxxxxxxx
Delivery-date: Sun, 10 Oct 2010 01:31:40 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:sender:received :in-reply-to:references:from:date:x-google-sender-auth:message-id :subject:to:cc:content-type; bh=8ZWrJbo2W0C5zYV8YSP0vlgX/7iMJP8hJdC3DuMvjfE=; b=LgnBCMQZ6Rrd3utUn3LCYG2E5JtXjOXBZi4D10F3ywZcMHr2kPlupFgIaOeLcQVsnP SEAd1zuH2BwWj0BN2F527KarzhM3TcTFz6BJBUBBVDPwg5E/ysTcrbomFswpOmlwQKjg ykt3S//jKZBSHOA9BgbUfjFlXrpta8zMRT+Pc=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; b=kz/yjeHeXEfFCBzyJoNfBOkENALLEt3c+0SjFY0lmArUWGBnDQ+jg50vP+LtU37UFD KBDUuZZdvJ8Moxb5fS24kcqHv7A4rTM6WFRwwpF1XR6S0aoJqJ//EEARu7pLVXNTQQ/c snlnVk9nCTWH0SOG5/GeJC7YPJw6oJldVMsN0=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <AANLkTi=nWMg7OQKLMOT6Z6-ok3pzEZS10AhxddcJTMf2@xxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <AANLkTi=Ro24zg-yDPk1+=c0XsZSe2kNn8Gk07Bu4x0WN@xxxxxxxxxxxxxx> <AANLkTin9E1m_jFcj4Ak7nB9OxcQynrznpQ_nNPi_U7hN@xxxxxxxxxxxxxx> <AANLkTikBWZdpOviSEQSNi_pf66A+zYW8FyQVjiCX8ojm@xxxxxxxxxxxxxx> <AANLkTi=Oa0_=vXrr63eALBU2sQa3aLV0NiQHt8hPPvcw@xxxxxxxxxxxxxx> <AANLkTimYTbf5meNptCtuiKWfQGd_qSNCkbCNabfREc_0@xxxxxxxxxxxxxx> <AANLkTintdF5h0-YD6FxjX0dapfbQYdAcK2P-=wHXnBiC@xxxxxxxxxxxxxx> <AANLkTinCbnzLLtNpdQe0x387UeDcy3SzrmffZw1oQAJo@xxxxxxxxxxxxxx> <AANLkTi=r2MzCwwNbNDopBkoCWvQSc=jkeWUy8hxKYD3_@xxxxxxxxxxxxxx> <AANLkTik+tZTr8RQrbCwTFYZjbgW6tDq=LTcoBC2xsQhw@xxxxxxxxxxxxxx> <AANLkTinG-y8gOW1jVpvKgJU2fBiiDkgj5r=FAOv=0J8q@xxxxxxxxxxxxxx> <AANLkTinc+Dar85ZU+_dYb=7AsdWgWpc3N_K_WFSTVbO6@xxxxxxxxxxxxxx> <AANLkTi=nWMg7OQKLMOT6Z6-ok3pzEZS10AhxddcJTMf2@xxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Similar work has been done already (but not for the credit scheduler)...

Have a look at this paper

On Sun, Oct 10, 2010 at 9:38 AM, Yuehai Xu <yuehaixu@xxxxxxxxx> wrote:
> The file you're looking for re getting an event channel is
> xen/common/schedule.c, the common scheduling code.
> In schedule.c, vcpu_wake() will always call the scheduler wake()
> function;  However, event channels and other "you have an event"
> functions call call vcpu_unblock() instead, which will check the
> vcpu's VPF_blocked flag and only call vcpu_wake if it was set.
> You could try changing vcpu_unblock() to always call vcpu_wake() for
> your experimental development; I'm not sure what side-effects this
> would have.

After changing vcpu_unblock() to always call vcpu_wake(), the VM that
has event can be scheduled immediately no matter whether it is CPU
intensive. However, I have another question. Except the I/O event, it
seems there are many other events too. Our design is to give a VM a
very short period of time when it has "I/O event", and right now,
vcpu_wake() is invoked when an event comes, even it is not "I/O
event", this will cause that the VM is scheduled much more frequently
than what I except.

For example, suppose 2 VMs, one is CPU intensive and another is CPU +
I/O intensive, from the level of scheduler, almost the same number of
events are received from the two VMs. Even I/O itself creates event,
since there are other events, the total number of events are almost
the same. In such case, I think we need to differentiate the I/O
events from other events.

I add trace point to __run_tickle() and notice the result that the
number of events are almost the same from two VMs, one of which is CPU
intensive and the other is CPU + I/O intensive. Although I do not
completely confirm what I have said currently, I need do more

Is it possible for me to detect the "I/O event" from "event" so that I
can give VM that has "I/O event" the priority to be scheduled


Xen-devel mailing list

Xen-devel mailing list
<Prev in Thread] Current Thread [Next in Thread>