[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC V4 5/5] Documentation/kvm : Add documentation on Hypercalls and features used for PV spinlock
On 01/16/2012 06:00 AM, Alexander Graf wrote: > On 16.01.2012, at 04:51, Srivatsa Vaddagiri wrote: > > > * Alexander Graf <agraf@xxxxxxx> [2012-01-16 04:23:24]: > > > >>> +5. KVM_HC_KICK_CPU > >>> +------------------------ > >>> +value: 5 > >>> +Architecture: x86 > >>> +Purpose: Hypercall used to wakeup a vcpu from HLT state > >>> + > >>> +Usage example : A vcpu of a paravirtualized guest that is busywaiting in > >>> guest > >>> +kernel mode for an event to occur (ex: a spinlock to become available) > >>> +can execute HLT instruction once it has busy-waited for more than a > >>> +threshold time-interval. Execution of HLT instruction would cause > >>> +the hypervisor to put the vcpu to sleep (unless yield_on_hlt=0) until > >>> occurence > >>> +of an appropriate event. Another vcpu of the same guest can wakeup the > >>> sleeping > >>> +vcpu by issuing KVM_HC_KICK_CPU hypercall, specifying APIC ID of the > >>> vcpu to be > >>> +wokenup. > >> > >> The description is way too specific. The hypercall basically gives the > >> guest the ability to yield() its current vcpu to another chosen vcpu. > > > > Hmm ..the hypercall does not allow a vcpu to yield. It just allows some > > target vcpu to be prodded/wokenup, after which vcpu continues execution. > > > > Note that semantics of this hypercall is different from the hypercall on > > which > > PPC pv-spinlock (__spin_yield()) is currently dependent. This is mainly > > because > > of ticketlocks on x86 (which does not allow us to easily store owning cpu > > details in lock word itself). > > Yes, sorry for not being more exact in my wording. It is a directed yield(). > Not like the normal old style thing that just says "I'm done, get some work > to someone else" but more something like "I'm done, get some work to this > specific guy over there" :). > It's not a yield. It unhalts a vcpu. Kind of like an IPI, but without actually issuing an interrupt on the target, and disregarding the interrupt flag. It says nothing about the source. -- error compiling committee.c: too many arguments to function _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |