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. Jan
Attachment:
signature.asc
Description: OpenPGP digital signature