From: Laszlo Ersek <lersek@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Cc: qemu-trivial@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
patches@linaro.org
Subject: Re: [Qemu-trivial] [Qemu-devel] [PATCH] qemu-options.hx: Improve documentation of chardev multiplexing mode
Date: Tue, 16 Feb 2016 17:32:24 +0100 [thread overview]
Message-ID: <56C34F18.7090006@redhat.com> (raw)
In-Reply-To: <1455638581-5912-1-git-send-email-peter.maydell@linaro.org>
On 02/16/16 17:03, Peter Maydell wrote:
> The current documentation of chardev mux=on is rather brief and opaque;
> expand it to hopefully be a bit more helpful.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> There was some discussion on #qemu yesterday evening about multiplexing,
> and "make the docs a bit less confusing" was one suggestion...
> ---
> qemu-options.hx | 20 +++++++++++++++++++-
> 1 file changed, 19 insertions(+), 1 deletion(-)
>
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 2f0465e..6b46dd4 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -2162,8 +2162,26 @@ All devices must have an id, which can be any string up to 127 characters long.
> It is used to uniquely identify this device in other command line directives.
>
> A character device may be used in multiplexing mode by multiple front-ends.
> +Specify @option{mux=on} to enable this mode.
> +A multiplexer is a "1:N" device, and here the "1" end is your specified chardev
> +backend, and the "N" end is the various parts of QEMU that can talk to a chardev.
> +If you create a chardev with @option{id=myid} and @option{mux=on}, QEMU will
> +create a multiplexer with your specified ID, and you can then configure multiple
> +front ends to use that chardev ID for their input/output. Up to four different
> +front ends can be connected to a single multiplexed chardev. (Without
> +multiplexing enabled, a chardev can only be used by a single front end.)
> +For instance you could use this to allow a single stdio chardev to be used by
> +two serial ports and the QEMU monitor.
> +
> The key sequence of @key{Control-a} and @key{c} will rotate the input focus
> -between attached front-ends. Specify @option{mux=on} to enable this mode.
> +of a multiplexed character device between attached front-ends.
> +
> +You can have more than one multiplexer in a system configuration; for instance
> +you could have a TCP port multiplexed between UART 0 and UART 1, and stdio
> +multiplexed between the QEMU monitor and a parallel port.
> +
> +There is currently no support for multiplexing in the other direction
> +(where a single QEMU front end takes input and output from multiple chardevs).
>
> Every backend supports the @option{logfile} option, which supplies the path
> to a file to record all data transmitted via the backend. The @option{logappend}
>
I'm a big fan of muxing the stdio backend between the (human) monitor
and the guest's serial console:
-chardev stdio,signal=off,mux=on,id=char0 \
-mon chardev=char0,mode=readline,default \
-serial chardev:char0 \
I think if you could mention the following in the above, that would be
even more helpful:
- how to enter a real Control-A character (relevant when typing at the
guest's shell prompt, over serial)
- not strictly related, but a warning about using this in "screen"
(I use "screen" all the time to capture serial IO) -- Control-A is
also piggy-backed by "screen"
- how the initially active frontend gets selected
- the fact that frontends use different syntaxes to refer to the
backend. You have two examples in the text being added ("for
instance, ..."), so I think it would be really helpful to provide
actual command line options for those.
Just my two cents. The patch looks great.
Thanks
Laszlo
WARNING: multiple messages have this Message-ID (diff)
From: Laszlo Ersek <lersek@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Cc: qemu-trivial@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
patches@linaro.org
Subject: Re: [Qemu-devel] [PATCH] qemu-options.hx: Improve documentation of chardev multiplexing mode
Date: Tue, 16 Feb 2016 17:32:24 +0100 [thread overview]
Message-ID: <56C34F18.7090006@redhat.com> (raw)
In-Reply-To: <1455638581-5912-1-git-send-email-peter.maydell@linaro.org>
On 02/16/16 17:03, Peter Maydell wrote:
> The current documentation of chardev mux=on is rather brief and opaque;
> expand it to hopefully be a bit more helpful.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> There was some discussion on #qemu yesterday evening about multiplexing,
> and "make the docs a bit less confusing" was one suggestion...
> ---
> qemu-options.hx | 20 +++++++++++++++++++-
> 1 file changed, 19 insertions(+), 1 deletion(-)
>
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 2f0465e..6b46dd4 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -2162,8 +2162,26 @@ All devices must have an id, which can be any string up to 127 characters long.
> It is used to uniquely identify this device in other command line directives.
>
> A character device may be used in multiplexing mode by multiple front-ends.
> +Specify @option{mux=on} to enable this mode.
> +A multiplexer is a "1:N" device, and here the "1" end is your specified chardev
> +backend, and the "N" end is the various parts of QEMU that can talk to a chardev.
> +If you create a chardev with @option{id=myid} and @option{mux=on}, QEMU will
> +create a multiplexer with your specified ID, and you can then configure multiple
> +front ends to use that chardev ID for their input/output. Up to four different
> +front ends can be connected to a single multiplexed chardev. (Without
> +multiplexing enabled, a chardev can only be used by a single front end.)
> +For instance you could use this to allow a single stdio chardev to be used by
> +two serial ports and the QEMU monitor.
> +
> The key sequence of @key{Control-a} and @key{c} will rotate the input focus
> -between attached front-ends. Specify @option{mux=on} to enable this mode.
> +of a multiplexed character device between attached front-ends.
> +
> +You can have more than one multiplexer in a system configuration; for instance
> +you could have a TCP port multiplexed between UART 0 and UART 1, and stdio
> +multiplexed between the QEMU monitor and a parallel port.
> +
> +There is currently no support for multiplexing in the other direction
> +(where a single QEMU front end takes input and output from multiple chardevs).
>
> Every backend supports the @option{logfile} option, which supplies the path
> to a file to record all data transmitted via the backend. The @option{logappend}
>
I'm a big fan of muxing the stdio backend between the (human) monitor
and the guest's serial console:
-chardev stdio,signal=off,mux=on,id=char0 \
-mon chardev=char0,mode=readline,default \
-serial chardev:char0 \
I think if you could mention the following in the above, that would be
even more helpful:
- how to enter a real Control-A character (relevant when typing at the
guest's shell prompt, over serial)
- not strictly related, but a warning about using this in "screen"
(I use "screen" all the time to capture serial IO) -- Control-A is
also piggy-backed by "screen"
- how the initially active frontend gets selected
- the fact that frontends use different syntaxes to refer to the
backend. You have two examples in the text being added ("for
instance, ..."), so I think it would be really helpful to provide
actual command line options for those.
Just my two cents. The patch looks great.
Thanks
Laszlo
next prev parent reply other threads:[~2016-02-16 16:32 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-16 16:03 [Qemu-trivial] [PATCH] qemu-options.hx: Improve documentation of chardev multiplexing mode Peter Maydell
2016-02-16 16:03 ` [Qemu-devel] " Peter Maydell
2016-02-16 16:20 ` [Qemu-trivial] " Paolo Bonzini
2016-02-16 16:20 ` [Qemu-devel] " Paolo Bonzini
2016-02-16 16:27 ` [Qemu-trivial] " Eric Blake
2016-02-16 16:27 ` Eric Blake
2016-02-16 16:32 ` Laszlo Ersek [this message]
2016-02-16 16:32 ` Laszlo Ersek
2016-02-16 17:02 ` [Qemu-trivial] " Paolo Bonzini
2016-02-16 17:02 ` Paolo Bonzini
2016-02-16 17:57 ` [Qemu-trivial] " Laszlo Ersek
2016-02-16 17:57 ` Laszlo Ersek
2016-02-16 18:07 ` [Qemu-trivial] " Peter Maydell
2016-02-16 18:07 ` Peter Maydell
2016-02-16 16:36 ` [Qemu-trivial] " Kashyap Chamarthy
2016-02-16 16:36 ` [Qemu-devel] " Kashyap Chamarthy
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=56C34F18.7090006@redhat.com \
--to=lersek@redhat.com \
--cc=patches@linaro.org \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@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.