On 06/21/2012 08:54 PM, Christoffer Dall wrote: >>> @@ -504,6 +514,13 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu >>> *vcpu, struct kvm_run *run) >>> */ >>> preempt_disable(); >>> local_irq_disable(); >>> + >>> + if (check_new_vmid_gen(kvm)) { >>> + local_irq_enable(); >>> + preempt_enable(); >>> + continue; >>> + } >>> + >> >> I see the same race with signals. Your signal_pending() check needs to >> be after the local_irq_disable(), otherwise we can enter a guest with a >> pending signal. >> > > that's not functionally incorrect though is it? It may simply increase > the latency for the signal delivery as far as I can see, but I > definitely don't mind changing this path in any case. Nothing guarantees that there will be a next exit. I think we still run the timer tick on guest entry, so we'll exit after a few milliseconds, but there are patches to disable the timer tick if only one task is queued. -- error compiling committee.c: too many arguments to function -- 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