From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: "Kevin Wolf" <kwolf@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@gmail.com>,
QEMU <qemu-devel@nongnu.org>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Markus Armbruster" <armbru@redhat.com>
Subject: Re: [PATCH v2 3/3] console: make QMP/HMP screendump run in coroutine
Date: Wed, 20 Jan 2021 16:25:44 +0000 [thread overview]
Message-ID: <20210120162544.GG2930@work-vm> (raw)
In-Reply-To: <20210120160947.6nta7ghzn444ya6f@sirius.home.kraxel.org>
* Gerd Hoffmann (kraxel@redhat.com) wrote:
> On Wed, Jan 20, 2021 at 06:29:41PM +0400, Marc-André Lureau wrote:
> > Hi Gerd
> >
> > On Wed, Jan 20, 2021 at 6:18 PM Gerd Hoffmann <kraxel@redhat.com> wrote:
> > >
> > > On Tue, Oct 27, 2020 at 05:36:02PM +0400, marcandre.lureau@redhat.com wrote:
> > > > From: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > >
> > > > Thanks to the monitors' coroutine support (merge commit b7092cda1b3),
> > > > the screendump handler can trigger a graphic_hw_update(), yield and let
> > > > the main loop run until update is done. Then the handler is resumed, and
> > > > ppm_save() will write the screen image to disk in the coroutine context.
> > > >
> > > > The IO is still blocking though, as the file is set blocking so far,
> > > > this could be addressed by some future change (with other caveats).
> > > >
> > > > Related to:
> > > > https://bugzilla.redhat.com/show_bug.cgi?id=1230527
> > > >
> > > > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > > Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
> > >
> > > Hmm, just noticed that with this patch applied screendump hangs for vms
> > > with "-device qxl" ("-device qxl-vga" works fine).
> > >
> > > Can you have a look?
> >
> > Weird, I cannot reproduce. I tried this way:
> >
> > $ qemu-system-x86_64 -m 4096 -enable-kvm -device qxl -qmp
> > unix:/tmp/qmp.sock,server -snapshot rhel8
>
> -vga none or -nodefaults is needed, otherwise you'll get both VGA and
> qxl devices.
>
> Using gtk ui, just saying "screendump /tmp/x" in the monitor tab.
>
> > Can you also provide a backtrace?
>
> Thread 1 (Thread 0x7fab988e4440 (LWP 2822797) "qemu-system-x86"):
> #0 0x00007fab9c8a990e in ppoll () at /lib64/libc.so.6
> #1 0x000055f3f9c33dd5 in fdmon_poll_wait ()
> #2 0x000055f3f9c26c6a in aio_poll ()
> #3 0x000055f3f99552a5 in handle_hmp_command ()
That's the :
1117 AIO_WAIT_WHILE(qemu_get_aio_context(), !data.done);
Dave
> #4 0x000055f3f99553cd in monitor_command_cb ()
> #5 0x000055f3f9c29a37 in readline_handle_byte ()
> #6 0x000055f3f995541b in monitor_read ()
> #7 0x000055f3f992373c in gd_vc_in ()
> #8 0x00007fab9d84e22d in _vte_marshal_VOID__STRING_UINTv () at /lib64/libvte-2.91.so.0
> #9 0x00007fab9d8e9080 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
> #10 0x00007fab9d8e91a3 in g_signal_emit () at /lib64/libgobject-2.0.so.0
> #11 0x00007fab9d858a7e in vte::terminal::Terminal::emit_commit(std::basic_string_view<char, std::char_traits<char> > const&) () at /lib64/libvte-2.91.so.0
> #12 0x00007fab9d85cf1d in vte::terminal::Terminal::send_child(std::basic_string_view<char, std::char_traits<char> > const&) () at /lib64/libvte-2.91.so.0
> #13 0x00007fab9d8715bc in vte_terminal_key_press(_GtkWidget*, _GdkEventKey*) () at /lib64/libvte-2.91.so.0
> #14 0x00007fab9d47eccc in _gtk_marshal_BOOLEAN__BOXEDv () at /lib64/libgtk-3.so.0
> #15 0x00007fab9d8e869a in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
> #16 0x00007fab9d8e91a3 in g_signal_emit () at /lib64/libgobject-2.0.so.0
> #17 0x00007fab9d441bb4 in gtk_widget_event_internal.part.0.lto_priv () at /lib64/libgtk-3.so.0
> #18 0x00007fab9d45029b in gtk_window_propagate_key_event () at /lib64/libgtk-3.so.0
> #19 0x00007fab9d453283 in gtk_window_key_press_event.lto_priv () at /lib64/libgtk-3.so.0
> #20 0x00007fab9d47eccc in _gtk_marshal_BOOLEAN__BOXEDv () at /lib64/libgtk-3.so.0
> #21 0x00007fab9d8e9080 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
> #22 0x00007fab9d8e91a3 in g_signal_emit () at /lib64/libgobject-2.0.so.0
> #23 0x00007fab9d441bb4 in gtk_widget_event_internal.part.0.lto_priv () at /lib64/libgtk-3.so.0
> #24 0x00007fab9d2e000f in propagate_event.lto_priv () at /lib64/libgtk-3.so.0
> #25 0x00007fab9d2e1223 in gtk_main_do_event () at /lib64/libgtk-3.so.0
> #26 0x00007fab9cfbb633 in _gdk_event_emit () at /lib64/libgdk-3.so.0
> #27 0x00007fab9d022ba6 in gdk_event_source_dispatch.lto_priv () at /lib64/libgdk-3.so.0
> #28 0x00007fab9db3296f in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
> #29 0x000055f3f9c24f58 in main_loop_wait ()
> #30 0x000055f3f9a564b1 in qemu_main_loop ()
> #31 0x000055f3f97609ee in main ()
>
> take care,
> Gerd
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
prev parent reply other threads:[~2021-01-20 16:29 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-27 13:35 [PATCH v2 0/3] console: make QMP screendump use coroutine marcandre.lureau
2020-10-27 13:36 ` [PATCH v2 1/3] coroutine: let CoQueue wake up outside a coroutine marcandre.lureau
2020-10-27 13:36 ` [PATCH v2 2/3] console: modify ppm_save to take a pixman image ref marcandre.lureau
2020-11-03 13:24 ` Gerd Hoffmann
2020-10-27 13:36 ` [PATCH v2 3/3] console: make QMP/HMP screendump run in coroutine marcandre.lureau
2020-10-27 16:01 ` Markus Armbruster
2021-01-20 14:18 ` Gerd Hoffmann
2021-01-20 14:29 ` Marc-André Lureau
2021-01-20 16:09 ` Gerd Hoffmann
2021-01-20 16:25 ` Dr. David Alan Gilbert [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210120162544.GG2930@work-vm \
--to=dgilbert@redhat.com \
--cc=armbru@redhat.com \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=marcandre.lureau@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).