Re: [PATCH] KVM: race-free exit from KVM_RUN without POSIX signals

2017-02-17 Thread Paolo Bonzini
On 16/02/2017 20:26, David Hildenbrand wrote: > As mentioned already on IRC, maybe something like "block_vcpu_run" would > fit better now. Hmm, the purpose of the flag is cause an immediate exit and it does do so... Surely incorrect (or just uncommon) usage will prevent a VCPU from running,

Re: [PATCH] KVM: race-free exit from KVM_RUN without POSIX signals

2017-02-16 Thread David Hildenbrand
> post_kvm_run_save(vcpu); > diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h > index 7964b970b9ad..f51d5082a377 100644 > --- a/include/uapi/linux/kvm.h > +++ b/include/uapi/linux/kvm.h > @@ -218,7 +218,8 @@ struct kvm_hyperv_exit { > struct kvm_run { > /* in */ >

Re: [PATCH] KVM: race-free exit from KVM_RUN without POSIX signals

2017-02-16 Thread Radim Krčmář
2017-02-15 15:43+0100, Paolo Bonzini: > The purpose of the KVM_SET_SIGNAL_MASK API is to let userspace "kick" > a VCPU out of KVM_RUN through a POSIX signal. A signal is attached > to a dummy signal handler; by blocking the signal outside KVM_RUN and > unblocking it inside, this possible race is

Re: [PATCH] KVM: race-free exit from KVM_RUN without POSIX signals

2017-02-15 Thread Paolo Bonzini
On 15/02/2017 16:24, Christian Borntraeger wrote: > On 02/15/2017 03:43 PM, Paolo Bonzini wrote: >> The purpose of the KVM_SET_SIGNAL_MASK API is to let userspace "kick" >> a VCPU out of KVM_RUN through a POSIX signal. A signal is attached >> to a dummy signal handler; by blocking the signal

[PATCH] KVM: race-free exit from KVM_RUN without POSIX signals

2017-02-15 Thread Paolo Bonzini
The purpose of the KVM_SET_SIGNAL_MASK API is to let userspace "kick" a VCPU out of KVM_RUN through a POSIX signal. A signal is attached to a dummy signal handler; by blocking the signal outside KVM_RUN and unblocking it inside, this possible race is closed: VCPU thread