Message ID | 20250403121704.2754589-1-manos.pitsidianakis@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | virtio-gpu: fix blob unmapping sequence | expand |
Manos Pitsidianakis <manos.pitsidianakis@linaro.org> writes: > 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 Hmm these seems to regress the virtio-gpu tests: