From: Michael Tokarev <mjt@tls.msk.ru>
To: Michael Tokarev <mjt@tls.msk.ru>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Anthony Liguori <aliguori@us.ibm.com>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v3 1/2] trap signals for "-serial mon:stdio"
Date: Tue, 09 Jul 2013 11:39:45 +0400 [thread overview]
Message-ID: <51DBBE41.3090004@msgid.tls.msk.ru> (raw)
In-Reply-To: <1372868986-25988-1-git-send-email-mjt@msgid.tls.msk.ru>
Ping?
03.07.2013 20:29, Michael Tokarev wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
>
> With mon:stdio you can exit the VM by switching to the monitor and
> sending the "quit" command. It is then useful to pass Ctrl-C to the
> VM instead of exiting.
>
> This in turn lets us stop tying the default signal handling behavior
> to -nographic, removing gratuitous differences between "-display none"
> and "-nographic".
>
> This patch changes behavior for "-display none -serial mon:stdio", as
> expected, but not for "-display none -serial stdio".
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
> ---
> V2: added code comments and documentation fixes by mjt
> (hopefully the s-o-b stands still)
> V3: documentation fix, no code changed
>
> qemu-char.c | 13 +++++++++----
> qemu-options.hx | 8 +++++---
> 2 files changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/qemu-char.c b/qemu-char.c
> index 6cec5d7..18c42a3 100644
> --- a/qemu-char.c
> +++ b/qemu-char.c
> @@ -926,7 +926,6 @@ static void qemu_chr_set_echo_stdio(CharDriverState *chr, bool echo)
> tty.c_cc[VMIN] = 1;
> tty.c_cc[VTIME] = 0;
> }
> - /* if graphical mode, we allow Ctrl-C handling */
> if (!stdio_allow_signal)
> tty.c_lflag &= ~ISIG;
>
> @@ -955,7 +954,6 @@ static CharDriverState *qemu_chr_open_stdio(ChardevStdio *opts)
> chr = qemu_chr_open_fd(0, 1);
> chr->chr_close = qemu_chr_close_stdio;
> chr->chr_set_echo = qemu_chr_set_echo_stdio;
> - stdio_allow_signal = display_type != DT_NOGRAPHIC;
> if (opts->has_signal) {
> stdio_allow_signal = opts->signal;
> }
> @@ -2932,6 +2930,14 @@ QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename)
> if (strstart(filename, "mon:", &p)) {
> filename = p;
> qemu_opt_set(opts, "mux", "on");
> + if (strcmp(filename, "stdio") == 0) {
> + /* Monitor is muxed to stdio: do not exit on Ctrl+C by default
> + * but pass it to the guest. Handle this only for compat syntax,
> + * for -chardev syntax we have special option for this.
> + * This is what -nographic did, redirecting+muxing serial+monitor
> + * to stdio causing Ctrl+C to be passed to guest. */
> + qemu_opt_set(opts, "signal", "off");
> + }
> }
>
> if (strcmp(filename, "null") == 0 ||
> @@ -3060,8 +3066,7 @@ static void qemu_chr_parse_stdio(QemuOpts *opts, ChardevBackend *backend,
> {
> backend->stdio = g_new0(ChardevStdio, 1);
> backend->stdio->has_signal = true;
> - backend->stdio->signal =
> - qemu_opt_get_bool(opts, "signal", display_type != DT_NOGRAPHIC);
> + backend->stdio->signal = qemu_opt_get_bool(opts, "signal", true);
> }
>
> static void qemu_chr_parse_serial(QemuOpts *opts, ChardevBackend *backend,
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 137a39b..7cc4d8e 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -842,7 +842,8 @@ STEXI
> Normally, QEMU uses SDL to display the VGA output. With this option,
> you can totally disable graphical output so that QEMU is a simple
> command line application. The emulated serial port is redirected on
> -the console. Therefore, you can still use QEMU to debug a Linux kernel
> +the console and muxed with the monitor (unless redirected elsewhere
> +explicitly). Therefore, you can still use QEMU to debug a Linux kernel
> with a serial console.
> ETEXI
>
> @@ -2485,14 +2486,15 @@ same as if you had specified @code{-serial tcp} except the unix domain socket
> @item mon:@var{dev_string}
> This is a special option to allow the monitor to be multiplexed onto
> another serial port. The monitor is accessed with key sequence of
> -@key{Control-a} and then pressing @key{c}. See monitor access
> -@ref{pcsys_keys} in the -nographic section for more keys.
> +@key{Control-a} and then pressing @key{c}.
> @var{dev_string} should be any one of the serial devices specified
> above. An example to multiplex the monitor onto a telnet server
> listening on port 4444 would be:
> @table @code
> @item -serial mon:telnet::4444,server,nowait
> @end table
> +When monitor is multiplexed to stdio this way, Ctrl+C will not terminate
> +QEMU anymore but will be passed to the guest instead.
>
> @item braille
> Braille device. This will use BrlAPI to display the braille output on a real
>
next prev parent reply other threads:[~2013-07-09 7:39 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-03 16:29 [Qemu-devel] [PATCH v3 1/2] trap signals for "-serial mon:stdio" Michael Tokarev
2013-07-03 16:29 ` [Qemu-devel] [PATCH v3 2/2] display: stop using DT_NOGRAPHIC, use DT_NONE Michael Tokarev
2013-07-09 14:07 ` Peter Maydell
2013-07-09 7:39 ` Michael Tokarev [this message]
2013-07-09 8:42 ` [Qemu-devel] [PATCH v3 1/2] trap signals for "-serial mon:stdio" Andreas Färber
2013-07-09 8:57 ` Michael Tokarev
2013-07-09 11:00 ` Max Filippov
2013-07-09 11:21 ` Andreas Färber
2013-07-09 12:02 ` Michael Tokarev
2013-07-09 12:37 ` Peter Maydell
2013-07-09 12:40 ` Andreas Färber
2013-07-09 12:45 ` Peter Maydell
2013-07-09 13:13 ` Michael Tokarev
2013-07-09 14:04 ` Peter Maydell
2013-07-09 14:24 ` Michael Tokarev
2013-07-10 19:33 ` Anthony Liguori
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=51DBBE41.3090004@msgid.tls.msk.ru \
--to=mjt@tls.msk.ru \
--cc=aliguori@us.ibm.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/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.