Re: [PATCH 0/7] Consolidate vcpu ioctl locking
Alexander Graf <[email protected]> Thu, 13 May 2010 19:49:19 +0000
| Newsgroups | org.kernel.vger.kvm-ia64,org.kernel.vger.kvm,org.kernel.vger.kvm-ppc |
|---|---|
| Message-ID | <[email protected]> |
Am 13.05.2010 um 14:29 schrieb Avi Kivity <[email protected]>: > On 05/13/2010 03:18 PM, Alexander Graf wrote: >> >>> [PATCH 0/7] Consolidate vcpu ioctl locking >>> >>> In general, all vcpu ioctls need to take the vcpu mutex, but each >>> one does it >>> (or not) individually. This is cumbersome and error prone. >>> >>> This patchset moves all locking to a central place. This is >>> complicated >>> by the fact that ppc's KVM_INTERRUPT and s390's KVM_S390_INTERRUPT >>> break >>> the convention and need to run unlocked. >>> >> Why is the x86 non-kernel-pic path different? >> > > Userspace issues the ioctl from a vcpu thread. > > It has to, btw, since whether an interrupt can be injected or not > depends on vcpu-synchronous registers: eflags.if and tpr/cr8. On ppc we don't have a tpr, but eflags.if is basically the same as msr.ee. The major difference apparently is that on ppc we KVM_INTERRUPT pulls the interrupt line. On vcpu_run we then check whether msr.ee is set and if so, trigger the interrupt. I wonder why we don't do the same for x86. The current limitation on userspace checking eflags and the tpr seems cumbersome. Alex >