Hypercall for sleeping for some amount of time?

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

 



Hi,

there are situations where a guest needs to wait, but has interrupts 
disabled.  Usually this is done by polling in a tight loop, which is a 
waste of CPU cycles on a virtualized system. Therefore I propose to 
add a hypercall to KVM that allows the guest to yield the CPU for a 
specified amount of time.

One significant use case is the guest sitting in a kernel debugger and 
polling for user input. But I expect that there are other situations 
where such a hypercall could be useful, for example during hardware 
detection at startup.

What do you think about this idea?

What would be the preferred interface for such a hypercall? Using 
vmcall like KVM_HC_*, or MSR write, or even a simple IO port write? Is 
there a way to make this architecture independent?

For detection, at least a new bit in KVM_CPUID_FEATURES would be 
necessary.  Does one also need more information, like the minimum 
supported delay and the expected granularity of the delay? Also, 
should the call be simply "best effort" or should it guarantee that it 
sleeps for at least the requested time? I think keeping it simple at 
first would be best.

Cheers,
Stefan

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux