• Cristian Marussi's avatar
    firmware: arm_scmi: Add a virtio channel refcount · 42e90eb5
    Cristian Marussi authored
    Currently SCMI VirtIO channels are marked with a ready flag and related
    lock to track channel lifetime and support proper synchronization at
    shutdown when virtqueues have to be stopped.
    
    This leads to some extended spinlocked sections with IRQs off on the RX
    path to keep hold of the ready flag and does not scale well especially when
    SCMI VirtIO polling mode will be introduced.
    
    Add an SCMI VirtIO channel dedicated refcount to track active users on both
    the TX and the RX path and properly enforce synchronization and cleanup at
    shutdown, inhibiting further usage of the channel once freed.
    
    Link: https://lore.kernel.org/r/20220217131234.50328-2-cristian.marussi@arm.com
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Cc: Igor Skalkin <igor.skalkin@opensynergy.com>
    Cc: Peter Hilber <peter.hilber@opensynergy.com>
    Cc: virtualization@lists.linux-foundation.org
    Signed-off-by: default avatarCristian Marussi <cristian.marussi@arm.com>
    Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
    42e90eb5
virtio.c 13.7 KB