Based-on: <[email protected]>
("[PATCH] rcu: Unify force quiescent state")

Unmapping a blob changes the memory map, which is protected with RCU.
RCU is designed to minimize the read-side overhead at the cost of
reclamation delay. While this design usually makes sense, it is
problematic when unmapping a blob because the operation blocks all
virtio-gpu commands and causes perceivable disruption.

Minimize such the disruption with force_rcu(), which minimizes the
reclamation delay at the cost of a read-side overhead.

Dmitry, can you see if this change makes difference?

Signed-off-by: Akihiko Odaki <[email protected]>
---
Akihiko Odaki (5):
      futex: Add qemu_futex_timedwait()
      qemu-thread: Add qemu_event_timedwait()
      rcu: Use call_rcu() in synchronize_rcu()
      rcu: Wake the RCU thread when draining
      virtio-gpu: Force RCU when unmapping blob

 include/qemu/futex.h          |  29 ++++++--
 include/qemu/rcu.h            |   1 +
 include/qemu/thread-posix.h   |  11 +++
 include/qemu/thread.h         |   8 ++-
 hw/display/virtio-gpu-virgl.c |   1 +
 util/event.c                  |  34 ++++++++--
 util/qemu-thread-posix.c      |  11 +--
 util/rcu.c                    | 153 ++++++++++++++++++++++++------------------
 8 files changed, 163 insertions(+), 85 deletions(-)
---
base-commit: ee7fbe81705732785aef2cb568bbc5d8f7d2fce1
change-id: 20251027-force_rcu-616c743373f7

Best regards,
--  
Akihiko Odaki <[email protected]>


Reply via email to