[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Question about the ability of credit scheduler to handle I/O and CPU intensive VMs


  • To: George Dunlap <George.Dunlap@xxxxxxxxxxxxx>
  • From: Yuehai Xu <yuehaixu@xxxxxxxxx>
  • Date: Sun, 10 Oct 2010 00:08:41 -0400
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, yhxu@xxxxxxxxx
  • Delivery-date: Sat, 09 Oct 2010 21:09:31 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=hpi2y4dQUoJVCS3178PaVZWEDFZcNvUd7ghaqPE4kcfrAZFk8Lp9U9rUPO6SKamjDx sfQgH/vSmRkFglybEt7jY5fMTgORSC1zkJjuEc2EPrRiyEDZYef2nsLiNwv80OBebYxC +vl5KlniTRCb0qep/hSyKG0MKgvVTnXIBHGlA=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

> 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
experiments.

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
immediately?

Thanks,
Yuehai

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.