Akihiko Odaki <[email protected]> writes: > 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]>
Are you planning a re-spin now the rcu patch is merged? If the rcu maintainers are happy I'm fine to take it via virtio-gpu/next with the testcase. > --- > 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, -- Alex Bennée Virtualisation Tech Lead @ Linaro
