qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] virtio-gpu: fix blob unmapping sequence
@ 2025-04-10 12:26 Manos Pitsidianakis
  2025-04-10 12:26 ` [PATCH v2 1/3] hw/display: re-arrange memory region tracking Manos Pitsidianakis
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Manos Pitsidianakis @ 2025-04-10 12:26 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alex Bennée, Philippe Mathieu-Daudé, Richard Henderson

A hang was observed when running a small kernel that exercised VIRTIO 
GPU under TCG. This is an edge-case and won't happen under typical 
conditions.

When unmapping a blob object, its MemoryRegion's freeing is deferred to 
the RCU thread. The hang's cause was determined to be a busy main loop 
not allowing for the RCU thread to run because the kernel did not setup 
any timers or had any interrupts on the way. While fixing the RCU thread 
to run even if the guest CPU spins is a solution, it's easier to fix the 
reason why the MemoryRegion isn't freed from the main loop instead.

While at it, also restructure the 3 stage cleanup to immediately respond 
to the guest if the MR happened to have had no other reference.

PS: The hang can be reproduced by running this unikernel with TCG 

https://git.codelinaro.org/manos.pitsidianakis/virtio-tests/-/tree/8c0ebe9395827e24aa5711186d499bf5de87cf63/virtio-test-suite

v1 to v2:
  - Add patch by Alex to prevent double-free when FlatView is destroyed 
    from RCU thread.

Alex Bennée (1):
  hw/display: re-arrange memory region tracking

Manos Pitsidianakis (2):
  virtio-gpu: fix hang under TCG when unmapping blob
  virtio-gpu: refactor async blob unmapping

 include/exec/memory.h         |  1 +
 hw/display/virtio-gpu-virgl.c | 60 ++++++++++++++++++++---------------
 2 files changed, 35 insertions(+), 26 deletions(-)


base-commit: 56c6e249b6988c1b6edc2dd34ebb0f1e570a1365
-- 
γαῖα πυρί μιχθήτω



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2025-04-17 11:38 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-10 12:26 [PATCH v2 0/3] virtio-gpu: fix blob unmapping sequence Manos Pitsidianakis
2025-04-10 12:26 ` [PATCH v2 1/3] hw/display: re-arrange memory region tracking Manos Pitsidianakis
2025-04-15 10:35   ` Philippe Mathieu-Daudé
2025-04-15 11:21     ` Alex Bennée
2025-04-10 12:26 ` [PATCH v2 2/3] virtio-gpu: fix hang under TCG when unmapping blob Manos Pitsidianakis
2025-04-10 14:59   ` Alex Bennée
2025-04-10 12:26 ` [PATCH v2 3/3] virtio-gpu: refactor async blob unmapping Manos Pitsidianakis
2025-04-15 10:40   ` Philippe Mathieu-Daudé
2025-04-15 18:46 ` [PATCH v2 0/3] virtio-gpu: fix blob unmapping sequence Alex Bennée
2025-04-16 18:57   ` Michael S. Tsirkin
2025-04-17  8:00     ` Alex Bennée
2025-04-17 11:37       ` Michael S. Tsirkin
2025-04-16 19:26   ` Stefan Hajnoczi
2025-04-17  8:08 ` Alex Bennée

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).