On 11/07/12 13:51, Raghavendra K T wrote:Almost all s390 kernels use diag9c (directed yield to a given guest cpu) for spinlocks, though.
Perhaps x86 should copy this.
See arch/s390/lib/spinlock.c
The basic idea is using several heuristics:
- loop for a given amount of loops
- check if the lock holder is currently scheduled by the hypervisor
(smp_vcpu_scheduled, which uses the sigp sense running instruction)
Dont know if such thing is available for x86. It must be a lot cheaper
than a guest exit to be useful
Unfortunately we do not have information on lock-holder.
That would be an independent patch and requires guest changes.