Skip to content
  • Kevin Wolf's avatar
    80fc5d26
    graph-lock: Disable locking for now · 80fc5d26
    Kevin Wolf authored
    
    
    In QEMU 8.0, we've been seeing deadlocks in bdrv_graph_wrlock(). They
    come from callers that hold an AioContext lock, which is not allowed
    during polling. In theory, we could temporarily release the lock, but
    callers are inconsistent about whether they hold a lock, and if they do,
    some are also confused about which one they hold. While all of this is
    fixable, it's not trivial, and the best course of action for 8.0.1 is
    probably just disabling the graph locking code temporarily.
    
    We don't currently rely on graph locking yet. It is supposed to replace
    the AioContext lock eventually to enable multiqueue support, but as long
    as we still have the AioContext lock, it is sufficient without the graph
    lock. Once the AioContext lock goes away, the deadlock doesn't exist any
    more either and this commit can be reverted. (Of course, it can also be
    reverted while the AioContext lock still exists if the callers have been
    fixed.)
    
    Cc: qemu-stable@nongnu.org
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
    Message-Id: <20230517152834.277483-2-kwolf@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
    80fc5d26
    graph-lock: Disable locking for now
    Kevin Wolf authored
    
    
    In QEMU 8.0, we've been seeing deadlocks in bdrv_graph_wrlock(). They
    come from callers that hold an AioContext lock, which is not allowed
    during polling. In theory, we could temporarily release the lock, but
    callers are inconsistent about whether they hold a lock, and if they do,
    some are also confused about which one they hold. While all of this is
    fixable, it's not trivial, and the best course of action for 8.0.1 is
    probably just disabling the graph locking code temporarily.
    
    We don't currently rely on graph locking yet. It is supposed to replace
    the AioContext lock eventually to enable multiqueue support, but as long
    as we still have the AioContext lock, it is sufficient without the graph
    lock. Once the AioContext lock goes away, the deadlock doesn't exist any
    more either and this commit can be reverted. (Of course, it can also be
    reverted while the AioContext lock still exists if the callers have been
    fixed.)
    
    Cc: qemu-stable@nongnu.org
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
    Message-Id: <20230517152834.277483-2-kwolf@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
Loading