|
From: | Paolo Bonzini |
Subject: | Re: [Qemu-devel] [RFC] vhost: Can we change synchronize_rcu to call_rcu in vhost_set_memory() in vhost kernel module? |
Date: | Mon, 12 May 2014 12:25:35 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 |
Il 12/05/2014 12:18, Michael S. Tsirkin ha scritto:
On Mon, May 12, 2014 at 12:14:25PM +0200, Paolo Bonzini wrote:Il 12/05/2014 12:08, Michael S. Tsirkin ha scritto:On Mon, May 12, 2014 at 11:57:32AM +0200, Paolo Bonzini wrote:Perhaps we can check for cases where only the address is changing, and poke at an existing struct kvm_kernel_irq_routing_entry without doing any RCU synchronization?I suspect interrupts can get lost then: e.g. if address didn't match any cpus, now it matches some. No?Can you explain the problem more verbosely? :) Multiple writers would still be protected by the mutex, so you cannot have an "in-place update" writer racing with a "copy the array" writer.I am not sure really. I'm worried about reader vs writer. If reader sees a stale msi value msi will be sent to a wrong address.
That shouldn't happen on any cache-coherent system, no?Or at least, it shouldn't become any worse than what can already happen with RCU.
Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |