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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.