• P
    KVM: Don't keep reference to irq routing table in irqfd struct · 56f89f36
    Paul Mackerras 提交于
    This makes the irqfd code keep a copy of the irq routing table entry
    for each irqfd, rather than a reference to the copy in the actual
    irq routing table maintained in kvm/virt/irqchip.c.  This will enable
    us to change the routing table structure in future, or even not have a
    routing table at all on some platforms.
    
    The synchronization that was previously achieved using srcu_dereference
    on the read side is now achieved using a seqcount_t structure.  That
    ensures that we don't get a halfway-updated copy of the structure if
    we read it while another thread is updating it.
    
    We still use srcu_read_lock/unlock around the read side so that when
    changing the routing table we can be sure that after calling
    synchronize_srcu, nothing will be using the old routing.
    Signed-off-by: NPaul Mackerras <paulus@samba.org>
    Tested-by: NEric Auger <eric.auger@linaro.org>
    Tested-by: NCornelia Huck <cornelia.huck@de.ibm.com>
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    56f89f36
eventfd.c 20.9 KB