qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC] create a single workqueue for each vm to update v


From: Avi Kivity
Subject: Re: [Qemu-devel] [RFC] create a single workqueue for each vm to update vm irq routing table
Date: Tue, 26 Nov 2013 18:29:17 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0

On 11/26/2013 06:28 PM, Paolo Bonzini wrote:
Il 26/11/2013 17:24, Gleb Natapov ha scritto:
     VCPU writes to routing table
                                        e = entry from IRQ routing table
     kvm_irq_routing_update(kvm, new);
     VCPU resumes execution
                                        kvm_set_msi_irq(e, &irq);
                                        kvm_irq_delivery_to_apic_fast();

where the entry is stale but the VCPU has already resumed execution.
So how is it different from what we have now:

disable_irq()
VCPU writes to routing table
                                  e = entry from IRQ routing table
                                  kvm_set_msi_irq(e, &irq);
                                  kvm_irq_delivery_to_apic_fast();
kvm_irq_routing_update(kvm, new);
synchronize_rcu()
VCPU resumes execution
enable_irq()
receive stale irq
Adding a "disable/enable IRQs" looks like a relatively big change.  But
perhaps it's not for some reason I'm missing.


Those are guest operations, which may not be there at all.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]