|
From: | Paolo Bonzini |
Subject: | Re: [PATCH] chardev: add nodelay option |
Date: | Tue, 2 Mar 2021 13:10:11 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0 |
On 02/03/21 12:39, Daniel P. Berrangé wrote:
On Tue, Mar 02, 2021 at 12:04:44PM +0100, Paolo Bonzini wrote:The "delay" option was introduced as a way to enable Nagle's algorithm with ",nodelay". Since the short form for boolean options has now been deprecated, introduce a more properly named "nodelay" option. The "delay" option remains as an undocumented option. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- chardev/char-socket.c | 9 +++++++-- gdbstub.c | 2 +- qemu-options.hx | 14 +++++++------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/chardev/char-socket.c b/chardev/char-socket.c index 06a37c0cc8..73a7afe5a0 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c @@ -1472,8 +1472,13 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, sock = backend->u.socket.data = g_new0(ChardevSocket, 1); qemu_chr_parse_common(opts, qapi_ChardevSocket_base(sock));- sock->has_nodelay = qemu_opt_get(opts, "delay");- sock->nodelay = !qemu_opt_get_bool(opts, "delay", true); + sock->has_nodelay = + qemu_opt_get(opts, "delay") || + qemu_opt_get(opts, "nodelay"); + sock->nodelay = + !qemu_opt_get_bool(opts, "delay", true) || + qemu_opt_get_bool(opts, "nodelay", false);We should raise an explicit error if both options are present, otherwise you get into a debate about prioritization with nonsense such as -chardev socket,.....,delay=on,nodelay=on
Good point, we can squash this in: diff --git a/chardev/char-socket.c b/chardev/char-socket.c index 73a7afe5a0..c8bced76b7 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c@@ -1472,6 +1472,10 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
sock = backend->u.socket.data = g_new0(ChardevSocket, 1); qemu_chr_parse_common(opts, qapi_ChardevSocket_base(sock)); + if (qemu_opt_get(opts, "delay") && qemu_opt_get(opts, "nodelay")) { + error_setg(errp, "'delay' and 'nodelay' are mutually exclusive"); + return; + } sock->has_nodelay = qemu_opt_get(opts, "delay") || qemu_opt_get(opts, "nodelay"); Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |