|
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 irqAdding 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.
[Prev in Thread] | Current Thread | [Next in Thread] |