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

Re: [Xen-devel] Fast inter-VM signaling using monitor/mwait



On 06/05/2009 15:38, "Michael Abd-El-Malek" <mabdelmalek@xxxxxxx> wrote:

>> In Xen actual vcpu scheduling happens at the point before resuming
>> back to VM, instead of in timer interrupt ISR. So as long as your
>> monitor/mwait loop in hypercall doesn't exit before update is
>> observed,
>> scheduling won't happen.
> 
> I'm not an expert on Xen scheduling, so please correct my following
> understanding.  For the credit scheduler, csched_tick sets the next
> timer interrupt.  So after the mwait hypercall executes the mwait
> instruction and is waiting for a memory write, I observe the timer
> interrupt eventually causing the mwait instruction to return.  The
> mwait hypercall can then run the scheduler.

The issue is, what if another VM's VCPUs are runnable? Xen should prefer to
run those rather than pause the CPU on an MWAIT, right? But if it does that
it will lose the memory-access wakeup property of the MWAIT and cannot
schedule the 'MWAIT'ing VM back in promptly when the relevant memory access
occurs. I don't see that MWAIT can used effectively in a guest idle loop
unless you are happy to bin the work-conserving property of the Xen
scheduler (e.g., by dedicating a physical CPU to the VM).

 -- Keir



_______________________________________________
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®.