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: George Dunlap <George.Dunlap@xxxxxxxxxxxxx>
Date: Fri, 8 Oct 2010 10:57:10 +0100
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, yhxu@xxxxxxxxx
Delivery-date: Fri, 08 Oct 2010 03:02:14 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type; bh=tU3th55jHJB8CS1iFZuyGM76sm7D7UyQmoR/48p8JgA=; b=tGeIKxHQzihbakSeMlHJLoUVvc89CP1eJPk8Jt17HjJga1qWKd2DylTpctfKyQrswj hHQtoAamNDTvamh9DIPAyuvy38eeDeBNgGz0Iamv3ZTU2c/q9TNvHUSukhnJW4PKzZ96 94tV18FVA79BVZjKzgS55YD7m+h329ttcsP+8=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; b=kXcCTd6RKvlnxfyvoD/WkTXUY7SBieXTgyWbAW4z74udHaZ0n/LdpQXhR5nHZ9ASCU vuGKDvrCS/HGyfMFInllKMbLjNM4TCE2Mrm12I54Dbn3gi6iLXV/nfFk+ROKOwYpcaaR j4ax26I+4ClA9bcgLKIM5L1hUlRWR+VWxuy2g=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <AANLkTinG-y8gOW1jVpvKgJU2fBiiDkgj5r=FAOv=0J8q@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>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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.

Regarding tracing IO_READs: The code that did IO was refactored some
time back; I remember trying to figure out how to cleanly do the
tracing, but finding it difficult.  I can't remember now, though, what
the issue was.  Let me take a look again.


On Fri, Oct 8, 2010 at 1:25 AM, Yuehai Xu <yuehaixu@xxxxxxxxx> wrote:
>> I originally considered that when a Dom has an I/O event, its VCPU
>> would be waken up, in another word, csched_vcpu_wake(struct vcpu *vc)
>> should be invoked. However, I find I am definitely wrong. As long as
>> there is a CPU intensive program running in a Dom, this Dom should
>> never be in a state of "sleep"? In another word, it should never be
>> waken up?
> The trace result from xenalyze confirms that when a VM has a running
> CPU intensive program, it never needs to be waken up. So, my question
> is, how can I schedule a VM that has I/O event immediately even this
> VM is CPU intensive? I think it is impossible to implement it in the
> function csched_vcpu_wake.
> Also, is it possible to trace the I/O procedure by xenalyze? I notice
> even the macro TRC_HVM_IO_READ is defined, I don't find it is used in
> anywhere.
> Thanks,
> Yuehai
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel

Xen-devel mailing list

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