Messages in this thread | | | Subject | Re: [RFC PATCH 0/4] Gang scheduling in CFS | From | Peter Zijlstra <> | Date | Wed, 04 Jan 2012 22:31:50 +0100 |
| |
On Wed, 2012-01-04 at 19:16 +0200, Avi Kivity wrote: > > > I think we can solve it at the guest level. The paravirt ticketlock > stuff introduces wait/wake calls (actually wait is just a HLT > instruction); we could spin for a while, then HLT until the other side > wakes us. We should do this for all sites that busy wait. > This is all TLB invalidates, right?
So why wait for non-running vcpus at all? That is, why not paravirt the TLB flush such that the invalidate marks the non-running VCPU's state so that on resume it will first flush its TLBs. That way you don't have to wake it up and wait for it to invalidate its TLBs.
Or am I like totally missing the point (I am after all reading the thread backwards and I haven't yet fully paged the kernel stuff back into my brain).
I guess tagging remote VCPU state like that might be somewhat tricky.. but it seems worth considering, the whole wake and wait for flush thing seems daft.
| |