On 20/04/20 23:50, Davidlohr Bueso wrote:
On Mon, 20 Apr 2020, Paolo Bonzini wrote:
On 20/04/20 22:56, Davidlohr Bueso wrote:
On Mon, 20 Apr 2020, Marc Zyngier wrote:
This looks like a change in the semantics of the tracepoint. Before
this
change, 'waited' would have been true if the vcpu waited at all. Here,
you'd
have false if it has been interrupted by a signal, even if the vcpu
has waited
for a period of time.
Hmm but sleeps are now uninterruptible as we're using TASK_IDLE.
Hold on, does that mean that you can't anymore send a signal in order to
kick a thread out of KVM_RUN? Or am I just misunderstanding?
Considering that the return value of the interruptible wait is not
checked, I would not think this breaks KVM_RUN.
What return value? kvm_vcpu_check_block checks signal_pending, so you
could have a case where the signal is injected but you're not woken up.
Admittedly I am not familiar with how TASK_* work under the hood, but it
does seem to be like that.