From: Lei Li <lilei@linux.vnet.ibm.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: aliguori@us.ibm.com, qemu-devel <qemu-devel@nongnu.org>,
qemu-stable@nongnu.org, lcapitulino@redhat.com,
kraxel@redhat.com, Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 2/4] Revert "chardev: Make the name of memory device consistent"
Date: Fri, 28 Jun 2013 11:35:18 +0800 [thread overview]
Message-ID: <51CD0476.20301@linux.vnet.ibm.com> (raw)
In-Reply-To: <1372342930-28684-3-git-send-email-armbru@redhat.com>
On 06/27/2013 10:22 PM, Markus Armbruster wrote:
> This reverts commit 6a85e60cb994bd95d1537aafbff65816f3de4637.
>
> Commit 51767e7 "qemu-char: Add new char backend CirMemCharDriver"
> introduced a memory ring buffer character device driver named
> "memory". Commit 3949e59 "qemu-char: Saner naming of memchar stuff &
> doc fixes" changed the driver name to "ringbuf", along with a whole
> bunch of other names, with the following rationale:
>
> Naming is a mess. The code calls the device driver
> CirMemCharDriver, the public API calls it "memory", "memchardev",
> or "memchar", and the special commands are named like
> "memchar-FOO". "memory" is a particularly unfortunate choice,
> because there's another character device driver called
> MemoryDriver. Moreover, the device's distinctive property is that
> it's a ring buffer, not that's in memory.
>
> This is what we released in 1.4.0.
>
> Unfortunately, the rename missed a critical instance of "memory": the
> actual driver name. Thus, the new device could be used only by an
> entirely undocumented name. The documented name did not work.
> Bummer.
Hi Markus.
Actually I fixed this issue as the your coming patch set 3&4 (make them
consistent with 'ringbuf') in the beginning, but according to Paolo's
comments, since '-chardev memory' exists in 1.4 and cannot be renamed,
so made such change as Commit 6a85e60cb994bd95d1537aafbff65816f3de4637.
The original patch and discussion as link below:
http://patchwork.ozlabs.org/patch/244848/
>
> Commit 6a85e60 fixes this by changing the documentation to match the
> code. It also changes some, but not all related occurences of
> "ringbuf" to "memory". Left alone are identifiers in C code, HMP and
> QMP commands. The latter are external interface, so they can't be
> changed.
>
> The result is an inconsistent mess. Moreover, "memory" is a rotten
> name. The device's distinctive property is that it's a ring buffer,
> not that's in memory. User's don't care whether it's in RAM, flash,
> or carved into chocolate tablets by Oompa Loompas.
>
> Revert the commit. Next commit will fix just the bug.
>
> Cc: qemu-stable@nongnu.org
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
> qapi-schema.json | 6 +++---
> qemu-char.c | 16 ++++++++--------
> qemu-options.hx | 6 +++---
> 3 files changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 6cc07c2..6445da6 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -3275,7 +3275,7 @@
> '*rows' : 'int' } }
>
> ##
> -# @ChardevMemory:
> +# @ChardevRingbuf:
> #
> # Configuration info for memory chardevs
> #
> @@ -3283,7 +3283,7 @@
> #
> # Since: 1.5
> ##
> -{ 'type': 'ChardevMemory', 'data': { '*size' : 'int' } }
> +{ 'type': 'ChardevRingbuf', 'data': { '*size' : 'int' } }
>
> ##
> # @ChardevBackend:
> @@ -3310,7 +3310,7 @@
> 'spicevmc' : 'ChardevSpiceChannel',
> 'spiceport' : 'ChardevSpicePort',
> 'vc' : 'ChardevVC',
> - 'memory' : 'ChardevMemory' } }
> + 'memory' : 'ChardevRingbuf' } }
>
> ##
> # @ChardevReturn:
> diff --git a/qemu-char.c b/qemu-char.c
> index 63a9221..a8fad65 100644
> --- a/qemu-char.c
> +++ b/qemu-char.c
> @@ -2786,8 +2786,8 @@ static void ringbuf_chr_close(struct CharDriverState *chr)
> chr->opaque = NULL;
> }
>
> -static CharDriverState *qemu_chr_open_memory(ChardevMemory *opts,
> - Error **errp)
> +static CharDriverState *qemu_chr_open_ringbuf(ChardevRingbuf *opts,
> + Error **errp)
> {
> CharDriverState *chr;
> RingBufCharDriver *d;
> @@ -2799,7 +2799,7 @@ static CharDriverState *qemu_chr_open_memory(ChardevMemory *opts,
>
> /* The size must be power of 2 */
> if (d->size & (d->size - 1)) {
> - error_setg(errp, "size of memory chardev must be power of two");
> + error_setg(errp, "size of ringbuf chardev must be power of two");
> goto fail;
> }
>
> @@ -3101,12 +3101,12 @@ static void qemu_chr_parse_pipe(QemuOpts *opts, ChardevBackend *backend,
> backend->pipe->device = g_strdup(device);
> }
>
> -static void qemu_chr_parse_memory(QemuOpts *opts, ChardevBackend *backend,
> - Error **errp)
> +static void qemu_chr_parse_ringbuf(QemuOpts *opts, ChardevBackend *backend,
> + Error **errp)
> {
> int val;
>
> - backend->memory = g_new0(ChardevMemory, 1);
> + backend->memory = g_new0(ChardevRingbuf, 1);
>
> val = qemu_opt_get_size(opts, "size", 0);
> if (val != 0) {
> @@ -3705,7 +3705,7 @@ ChardevReturn *qmp_chardev_add(const char *id, ChardevBackend *backend,
> chr = vc_init(backend->vc);
> break;
> case CHARDEV_BACKEND_KIND_MEMORY:
> - chr = qemu_chr_open_memory(backend->memory, errp);
> + chr = qemu_chr_open_ringbuf(backend->memory, errp);
> break;
> default:
> error_setg(errp, "unknown chardev backend (%d)", backend->kind);
> @@ -3756,7 +3756,7 @@ static void register_types(void)
> register_char_driver("socket", qemu_chr_open_socket);
> register_char_driver("udp", qemu_chr_open_udp);
> register_char_driver_qapi("memory", CHARDEV_BACKEND_KIND_MEMORY,
> - qemu_chr_parse_memory);
> + qemu_chr_parse_ringbuf);
> register_char_driver_qapi("file", CHARDEV_BACKEND_KIND_FILE,
> qemu_chr_parse_file_out);
> register_char_driver_qapi("stdio", CHARDEV_BACKEND_KIND_STDIO,
> diff --git a/qemu-options.hx b/qemu-options.hx
> index ca6fdf6..3b71e39 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -1781,7 +1781,7 @@ DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
> "-chardev msmouse,id=id[,mux=on|off]\n"
> "-chardev vc,id=id[[,width=width][,height=height]][[,cols=cols][,rows=rows]]\n"
> " [,mux=on|off]\n"
> - "-chardev memory,id=id[,size=size]\n"
> + "-chardev ringbuf,id=id[,size=size]\n"
> "-chardev file,id=id,path=path[,mux=on|off]\n"
> "-chardev pipe,id=id,path=path[,mux=on|off]\n"
> #ifdef _WIN32
> @@ -1819,7 +1819,7 @@ Backend is one of:
> @option{udp},
> @option{msmouse},
> @option{vc},
> -@option{memory},
> +@option{ringbuf},
> @option{file},
> @option{pipe},
> @option{console},
> @@ -1928,7 +1928,7 @@ the console, in pixels.
> @option{cols} and @option{rows} specify that the console be sized to fit a text
> console with the given dimensions.
>
> -@item -chardev memory ,id=@var{id} [,size=@var{size}]
> +@item -chardev ringbuf ,id=@var{id} [,size=@var{size}]
>
> Create a ring buffer with fixed size @option{size}.
> @var{size} must be a power of two, and defaults to @code{64K}).
--
Lei
next prev parent reply other threads:[~2013-06-28 3:35 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-27 14:22 [Qemu-devel] [PATCH 0/4] qemu-char: ringbuf fixes Markus Armbruster
2013-06-27 14:22 ` [Qemu-devel] [PATCH 1/4] qemu-char: Fix ringbuf option size Markus Armbruster
2013-06-27 23:17 ` Eric Blake
2013-07-03 14:54 ` Luiz Capitulino
2013-06-27 14:22 ` [Qemu-devel] [PATCH 2/4] Revert "chardev: Make the name of memory device consistent" Markus Armbruster
2013-06-28 3:35 ` Lei Li [this message]
2013-06-28 7:15 ` Markus Armbruster
2013-06-27 14:22 ` [Qemu-devel] [PATCH 3/4] qemu-char: Register ring buffer driver with correct name "ringbuf" Markus Armbruster
2013-07-03 14:54 ` Luiz Capitulino
2013-07-04 6:30 ` Markus Armbruster
2013-06-27 14:22 ` [Qemu-devel] [PATCH 4/4] qapi: Rename ChardevBackend member "memory" to "ringbuf" Markus Armbruster
2013-06-28 13:37 ` Eric Blake
2013-06-28 17:19 ` Markus Armbruster
2013-07-01 3:08 ` Amos Kong
2013-07-01 8:10 ` Markus Armbruster
2013-07-01 9:00 ` Amos Kong
2013-07-01 9:28 ` Markus Armbruster
2013-07-01 11:17 ` Amos Kong
2013-07-01 16:08 ` Markus Armbruster
2013-07-01 12:52 ` Anthony Liguori
2013-07-03 14:55 ` [Qemu-devel] [PATCH 0/4] qemu-char: ringbuf fixes Luiz Capitulino
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=51CD0476.20301@linux.vnet.ibm.com \
--to=lilei@linux.vnet.ibm.com \
--cc=aliguori@us.ibm.com \
--cc=armbru@redhat.com \
--cc=kraxel@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-stable@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 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).