On 06/24/2012 05:08 PM, Jan Kiszka wrote: > On 2012-06-24 10:49, Avi Kivity wrote: >> On 06/23/2012 02:45 PM, Jan Kiszka wrote: >>> >>> Hmm, we may need the iothread lock around cpu_set_apic_tpr for >>> !kvm_irqchip_in_kernel(). And as we are at it, apic_base manipulation >>> can be but there as well. >>> >>> With in-kernel irqchip, there is no such need. Also, no one accesses >>> eflags outside of the vcpu thread, independent of the irqchip mode. >> >> In fact !kvm_irqchip_in_kernel() is broken wrt the tpr. Interrupt >> injection needs to be done atomically, but currently we check the tpr >> from the injecting thread, which means the cpu thread can race with it. >> We need to move the check to the vcpu thread so that the guest vcpu is >> halted. > > So apic_set_irq basically needs to be deferred to vcpu context, right? > Will have a look. Correct. IIRC, the kernel's 0a5fff192388d2 made the problem much worse, but did not create it. It was either Vista or XP-64 which triggered the problem reliably. Copying Gleb in case he remembers more. -- 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