From: Marc-André Lureau <marcandre.lureau@redhat.com>
Hi,
Thanks to recent work by Kevin, it becomes possible to run HMP/QMP commands i=
n a
coroutine. The screendump command is a good target, as it requires to re-enter
the main-loop in ordre to flush the display, and write to file in a non-block=
ing
way.
Despite the flush, the dump may still have glitches. The graphic device may
perform some operations during the write on the same framebuffer. Doing a mem=
ory
copy could help, but it would also create a number of other issues. Keeping t=
he
BQL would defeat a number of advantages of using a coroutine. Afaik, there is=
no
mechanism to "freeze" the device either (and this could also have bad
consequences anyway). Good enough?
Marc-Andr=C3=A9 Lureau (3):
coroutine: let CoQueue wake up outside a coroutine
console: modify ppm_save to take a pixman image ref
console: make QMP/HMP screendump run in coroutine
hmp-commands.hx | 1 +
monitor/hmp-cmds.c | 3 ++-
qapi/ui.json | 3 ++-
ui/console.c | 42 +++++++++++++++++++++++++++++---------
ui/trace-events | 2 +-
util/qemu-coroutine-lock.c | 6 ++----
6 files changed, 40 insertions(+), 17 deletions(-)
--=20
2.28.0