* [PULL 0/2] chardev patches
@ 2024-10-09 8:39 marcandre.lureau
2024-10-09 8:39 ` [PULL 1/2] chardev: introduce 'reconnect-ms' and deprecate 'reconnect' marcandre.lureau
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: marcandre.lureau @ 2024-10-09 8:39 UTC (permalink / raw)
To: qemu-devel
Cc: Markus Armbruster, Eric Blake, Paolo Bonzini, devel,
peter.maydell, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
The following changes since commit 2af37e791906cfda42cb9604a16d218e56994bb1:
Merge tag 'pull-request-2024-10-07' of https://gitlab.com/thuth/qemu into staging (2024-10-07 12:55:02 +0100)
are available in the Git repository at:
https://gitlab.com/marcandre.lureau/qemu.git tags/chr-pull-request
for you to fetch changes up to b74cb8761c68275240af0826086590a03a1f419d:
chardev: add path option for pty backend (2024-10-09 12:13:05 +0400)
----------------------------------------------------------------
chardev: introduce 'reconnect-ms' and deprecate 'reconnect'
chardev: add path option for pty backend
----------------------------------------------------------------
Daniil Tatianin (1):
chardev: introduce 'reconnect-ms' and deprecate 'reconnect'
Octavian Purdila (1):
chardev: add path option for pty backend
docs/about/deprecated.rst | 6 +++++
qapi/char.json | 44 ++++++++++++++++++++++++++++++++---
include/chardev/char-socket.h | 2 +-
chardev/char-pty.c | 33 ++++++++++++++++++++++++++
chardev/char-socket.c | 33 +++++++++++++++++++-------
chardev/char.c | 8 +++++++
qemu-options.hx | 33 +++++++++++++++++++++-----
7 files changed, 140 insertions(+), 19 deletions(-)
--
2.47.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PULL 1/2] chardev: introduce 'reconnect-ms' and deprecate 'reconnect'
2024-10-09 8:39 [PULL 0/2] chardev patches marcandre.lureau
@ 2024-10-09 8:39 ` marcandre.lureau
2024-10-09 8:39 ` [PULL 2/2] chardev: add path option for pty backend marcandre.lureau
2024-10-09 19:11 ` [PULL 0/2] chardev patches Peter Maydell
2 siblings, 0 replies; 8+ messages in thread
From: marcandre.lureau @ 2024-10-09 8:39 UTC (permalink / raw)
To: qemu-devel
Cc: Markus Armbruster, Eric Blake, Paolo Bonzini, devel,
peter.maydell, Marc-André Lureau, Daniil Tatianin
From: Daniil Tatianin <d-tatianin@yandex-team.ru>
The 'reconnect' option only allows to specify the time in seconds,
which is way too long for certain workflows.
We have a lightweight disk backend server, which takes about 20ms to
live update, but due to this limitation in QEMU, previously the guest
disk controller would hang for one second because it would take this
long for QEMU to reinitialize the socket connection.
Introduce a new option called 'reconnect-ms', which is the same as
'reconnect', except the value is treated as milliseconds. These are
mutually exclusive and specifying both results in an error.
'reconnect' is also deprecated by this commit to make it possible to
remove it in the future as to not keep two options that control the
same thing.
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Daniil Tatianin <d-tatianin@yandex-team.ru>
Acked-by: Markus Armbruster <armbru@redhat.com>
Tested-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240913094604.269135-1-d-tatianin@yandex-team.ru>
---
docs/about/deprecated.rst | 6 ++++++
qapi/char.json | 17 +++++++++++++++--
include/chardev/char-socket.h | 2 +-
chardev/char-socket.c | 33 ++++++++++++++++++++++++---------
chardev/char.c | 3 +++
5 files changed, 49 insertions(+), 12 deletions(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index c02bbb66f7..82bb4927e8 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -394,6 +394,12 @@ Backend ``memory`` (since 9.0)
``memory`` is a deprecated synonym for ``ringbuf``.
+``reconnect`` (since 9.2)
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The ``reconnect`` option only allows specifiying second granularity timeouts,
+which is not enough for all types of use cases, use ``reconnect-ms`` instead.
+
CPU device properties
'''''''''''''''''''''
diff --git a/qapi/char.json b/qapi/char.json
index 0d6de1ee35..42eda4f98b 100644
--- a/qapi/char.json
+++ b/qapi/char.json
@@ -273,7 +273,19 @@
#
# @reconnect: For a client socket, if a socket is disconnected, then
# attempt a reconnect after the given number of seconds. Setting
-# this to zero disables this function. (default: 0) (Since: 2.2)
+# this to zero disables this function. The use of this member is
+# deprecated, use @reconnect-ms instead. (default: 0) (Since: 2.2)
+#
+# @reconnect-ms: For a client socket, if a socket is disconnected,
+# then attempt a reconnect after the given number of milliseconds.
+# Setting this to zero disables this function. This member is
+# mutually exclusive with @reconnect.
+# (default: 0) (Since: 9.2)
+#
+# Features:
+#
+# @deprecated: Member @reconnect is deprecated. Use @reconnect-ms
+# instead.
#
# Since: 1.4
##
@@ -287,7 +299,8 @@
'*telnet': 'bool',
'*tn3270': 'bool',
'*websocket': 'bool',
- '*reconnect': 'int' },
+ '*reconnect': { 'type': 'int', 'features': [ 'deprecated' ] },
+ '*reconnect-ms': 'int' },
'base': 'ChardevCommon' }
##
diff --git a/include/chardev/char-socket.h b/include/chardev/char-socket.h
index 0708ca6fa9..d6d13ad37f 100644
--- a/include/chardev/char-socket.h
+++ b/include/chardev/char-socket.h
@@ -74,7 +74,7 @@ struct SocketChardev {
bool is_websock;
GSource *reconnect_timer;
- int64_t reconnect_time;
+ int64_t reconnect_time_ms;
bool connect_err_reported;
QIOTask *connect_task;
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 1ca9441b1b..91496ceda9 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -74,7 +74,7 @@ static void qemu_chr_socket_restart_timer(Chardev *chr)
assert(!s->reconnect_timer);
name = g_strdup_printf("chardev-socket-reconnect-%s", chr->label);
s->reconnect_timer = qemu_chr_timeout_add_ms(chr,
- s->reconnect_time * 1000,
+ s->reconnect_time_ms,
socket_reconnect_timeout,
chr);
g_source_set_name(s->reconnect_timer, name);
@@ -481,7 +481,7 @@ static void tcp_chr_disconnect_locked(Chardev *chr)
if (emit_close) {
qemu_chr_be_event(chr, CHR_EVENT_CLOSED);
}
- if (s->reconnect_time && !s->reconnect_timer) {
+ if (s->reconnect_time_ms && !s->reconnect_timer) {
qemu_chr_socket_restart_timer(chr);
}
}
@@ -1080,9 +1080,9 @@ static int tcp_chr_wait_connected(Chardev *chr, Error **errp)
} else {
Error *err = NULL;
if (tcp_chr_connect_client_sync(chr, &err) < 0) {
- if (s->reconnect_time) {
+ if (s->reconnect_time_ms) {
error_free(err);
- g_usleep(s->reconnect_time * 1000ULL * 1000ULL);
+ g_usleep(s->reconnect_time_ms * 1000ULL);
} else {
error_propagate(errp, err);
return -1;
@@ -1267,13 +1267,13 @@ skip_listen:
static int qmp_chardev_open_socket_client(Chardev *chr,
- int64_t reconnect,
+ int64_t reconnect_ms,
Error **errp)
{
SocketChardev *s = SOCKET_CHARDEV(chr);
- if (reconnect > 0) {
- s->reconnect_time = reconnect;
+ if (reconnect_ms > 0) {
+ s->reconnect_time_ms = reconnect_ms;
tcp_chr_connect_client_async(chr);
return 0;
} else {
@@ -1354,6 +1354,12 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
}
}
+ if (sock->has_reconnect_ms && sock->has_reconnect) {
+ error_setg(errp,
+ "'reconnect' and 'reconnect-ms' are mutually exclusive");
+ return false;
+ }
+
return true;
}
@@ -1371,7 +1377,7 @@ static void qmp_chardev_open_socket(Chardev *chr,
bool is_tn3270 = sock->has_tn3270 ? sock->tn3270 : false;
bool is_waitconnect = sock->has_wait ? sock->wait : false;
bool is_websock = sock->has_websocket ? sock->websocket : false;
- int64_t reconnect = sock->has_reconnect ? sock->reconnect : 0;
+ int64_t reconnect_ms = 0;
SocketAddress *addr;
s->is_listen = is_listen;
@@ -1443,7 +1449,13 @@ static void qmp_chardev_open_socket(Chardev *chr,
return;
}
} else {
- if (qmp_chardev_open_socket_client(chr, reconnect, errp) < 0) {
+ if (sock->has_reconnect) {
+ reconnect_ms = sock->reconnect * 1000ULL;
+ } else if (sock->has_reconnect_ms) {
+ reconnect_ms = sock->reconnect_ms;
+ }
+
+ if (qmp_chardev_open_socket_client(chr, reconnect_ms, errp) < 0) {
return;
}
}
@@ -1509,6 +1521,9 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
sock->wait = qemu_opt_get_bool(opts, "wait", true);
sock->has_reconnect = qemu_opt_find(opts, "reconnect");
sock->reconnect = qemu_opt_get_number(opts, "reconnect", 0);
+ sock->has_reconnect_ms = qemu_opt_find(opts, "reconnect-ms");
+ sock->reconnect_ms = qemu_opt_get_number(opts, "reconnect-ms", 0);
+
sock->tls_creds = g_strdup(qemu_opt_get(opts, "tls-creds"));
sock->tls_authz = g_strdup(qemu_opt_get(opts, "tls-authz"));
diff --git a/chardev/char.c b/chardev/char.c
index ba847b6e9e..35623c78a3 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -888,6 +888,9 @@ QemuOptsList qemu_chardev_opts = {
},{
.name = "reconnect",
.type = QEMU_OPT_NUMBER,
+ },{
+ .name = "reconnect-ms",
+ .type = QEMU_OPT_NUMBER,
},{
.name = "telnet",
.type = QEMU_OPT_BOOL,
--
2.47.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PULL 2/2] chardev: add path option for pty backend
2024-10-09 8:39 [PULL 0/2] chardev patches marcandre.lureau
2024-10-09 8:39 ` [PULL 1/2] chardev: introduce 'reconnect-ms' and deprecate 'reconnect' marcandre.lureau
@ 2024-10-09 8:39 ` marcandre.lureau
2024-10-09 19:11 ` [PULL 0/2] chardev patches Peter Maydell
2 siblings, 0 replies; 8+ messages in thread
From: marcandre.lureau @ 2024-10-09 8:39 UTC (permalink / raw)
To: qemu-devel
Cc: Markus Armbruster, Eric Blake, Paolo Bonzini, devel,
peter.maydell, Marc-André Lureau, Octavian Purdila,
Paulo Neves
From: Octavian Purdila <tavip@google.com>
Add path option to the pty char backend which will create a symbolic
link to the given path that points to the allocated PTY.
This avoids having to make QMP or HMP monitor queries to find out what
the new PTY device path is.
Based on patch from Paulo Neves:
https://patchew.org/QEMU/1548509635-15776-1-git-send-email-ptsneves@gmail.com/
Tested with the following invocations that the link is created and
removed when qemu stops:
qemu-system-x86_64 -nodefaults -mon chardev=compat_monitor \
-chardev pty,path=test,id=compat_monitor0
qemu-system-x86_64 -nodefaults -monitor pty:test
# check QMP invocation with path set
qemu-system-x86_64 -nodefaults -qmp tcp:localhost:4444,server=on,wait=off
nc localhost 4444
> {"execute": "qmp_capabilities"}
> {"execute": "chardev-add", "arguments": {"id": "bar", "backend": {
"type": "pty", "data": {"path": "test" }}}}
# check QMP invocation with path not set
qemu-system-x86_64 -nodefaults -qmp tcp:localhost:4444,server=on,wait=off
nc localhost 4444
> {"execute": "qmp_capabilities"}
> {"execute": "chardev-add", "arguments": {"id": "bar", "backend": {
"type": "pty", "data": {}}}}
Also tested that when a link path is not passed invocations still work, e.g.:
qemu-system-x86_64 -monitor pty
Co-authored-by: Paulo Neves <ptsneves@gmail.com>
Signed-off-by: Paulo Neves <ptsneves@gmail.com>
[OP: rebase and address original patch review comments]
Signed-off-by: Octavian Purdila <tavip@google.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-ID: <20240806010735.2450555-1-tavip@google.com>
---
qapi/char.json | 27 ++++++++++++++++++++++++++-
chardev/char-pty.c | 33 +++++++++++++++++++++++++++++++++
chardev/char.c | 5 +++++
qemu-options.hx | 33 +++++++++++++++++++++++++++------
4 files changed, 91 insertions(+), 7 deletions(-)
diff --git a/qapi/char.json b/qapi/char.json
index 42eda4f98b..e045354350 100644
--- a/qapi/char.json
+++ b/qapi/char.json
@@ -444,6 +444,20 @@
'base': 'ChardevCommon',
'if': 'CONFIG_SPICE_PROTOCOL' }
+##
+# @ChardevPty:
+#
+# Configuration info for pty implementation.
+#
+# @path: optional path to create a symbolic link that points to the
+# allocated PTY
+#
+# Since: 9.2
+##
+{ 'struct': 'ChardevPty',
+ 'data': { '*path': 'str' },
+ 'base': 'ChardevCommon' }
+
##
# @ChardevBackendKind:
#
@@ -655,6 +669,17 @@
{ 'struct': 'ChardevRingbufWrapper',
'data': { 'data': 'ChardevRingbuf' } }
+
+##
+# @ChardevPtyWrapper:
+#
+# @data: Configuration info for pty chardevs
+#
+# Since: 9.2
+##
+{ 'struct': 'ChardevPtyWrapper',
+ 'data': { 'data': 'ChardevPty' } }
+
##
# @ChardevBackend:
#
@@ -675,7 +700,7 @@
'pipe': 'ChardevHostdevWrapper',
'socket': 'ChardevSocketWrapper',
'udp': 'ChardevUdpWrapper',
- 'pty': 'ChardevCommonWrapper',
+ 'pty': 'ChardevPtyWrapper',
'null': 'ChardevCommonWrapper',
'mux': 'ChardevMuxWrapper',
'msmouse': 'ChardevCommonWrapper',
diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index cc2f7617fe..cbb21b76ae 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -29,6 +29,7 @@
#include "qemu/sockets.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
+#include "qemu/option.h"
#include "qemu/qemu-print.h"
#include "chardev/char-io.h"
@@ -41,6 +42,7 @@ struct PtyChardev {
int connected;
GSource *timer_src;
+ char *path;
};
typedef struct PtyChardev PtyChardev;
@@ -204,6 +206,12 @@ static void char_pty_finalize(Object *obj)
Chardev *chr = CHARDEV(obj);
PtyChardev *s = PTY_CHARDEV(obj);
+ /* unlink symlink */
+ if (s->path) {
+ unlink(s->path);
+ g_free(s->path);
+ }
+
pty_chr_state(chr, 0);
object_unref(OBJECT(s->ioc));
pty_chr_timer_cancel(s);
@@ -330,6 +338,7 @@ static void char_pty_open(Chardev *chr,
int master_fd, slave_fd;
char pty_name[PATH_MAX];
char *name;
+ char *path = backend->u.pty.data->path;
master_fd = qemu_openpty_raw(&slave_fd, pty_name);
if (master_fd < 0) {
@@ -354,12 +363,36 @@ static void char_pty_open(Chardev *chr,
g_free(name);
s->timer_src = NULL;
*be_opened = false;
+
+ /* create symbolic link */
+ if (path) {
+ int res = symlink(pty_name, path);
+
+ if (res != 0) {
+ error_setg_errno(errp, errno, "Failed to create PTY symlink");
+ } else {
+ s->path = g_strdup(path);
+ }
+ }
+}
+
+static void char_pty_parse(QemuOpts *opts, ChardevBackend *backend,
+ Error **errp)
+{
+ const char *path = qemu_opt_get(opts, "path");
+ ChardevPty *pty;
+
+ backend->type = CHARDEV_BACKEND_KIND_PTY;
+ pty = backend->u.pty.data = g_new0(ChardevPty, 1);
+ qemu_chr_parse_common(opts, qapi_ChardevPty_base(pty));
+ pty->path = g_strdup(path);
}
static void char_pty_class_init(ObjectClass *oc, void *data)
{
ChardevClass *cc = CHARDEV_CLASS(oc);
+ cc->parse = char_pty_parse;
cc->open = char_pty_open;
cc->chr_write = char_pty_chr_write;
cc->chr_update_read_handler = pty_chr_update_read_handler;
diff --git a/chardev/char.c b/chardev/char.c
index 35623c78a3..c0cc52824b 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -428,6 +428,11 @@ QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename,
qemu_opt_set(opts, "path", p, &error_abort);
return opts;
}
+ if (strstart(filename, "pty:", &p)) {
+ qemu_opt_set(opts, "backend", "pty", &error_abort);
+ qemu_opt_set(opts, "path", p, &error_abort);
+ return opts;
+ }
if (strstart(filename, "tcp:", &p) ||
strstart(filename, "telnet:", &p) ||
strstart(filename, "tn3270:", &p) ||
diff --git a/qemu-options.hx b/qemu-options.hx
index 20a1ce0d43..d5afefe5b6 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -3712,7 +3712,7 @@ DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
"-chardev console,id=id[,mux=on|off][,logfile=PATH][,logappend=on|off]\n"
"-chardev serial,id=id,path=path[,mux=on|off][,logfile=PATH][,logappend=on|off]\n"
#else
- "-chardev pty,id=id[,mux=on|off][,logfile=PATH][,logappend=on|off]\n"
+ "-chardev pty,id=id[,path=path][,mux=on|off][,logfile=PATH][,logappend=on|off]\n"
"-chardev stdio,id=id[,mux=on|off][,signal=on|off][,logfile=PATH][,logappend=on|off]\n"
#endif
#ifdef CONFIG_BRLAPI
@@ -3951,12 +3951,22 @@ The available backends are:
``path`` specifies the name of the serial device to open.
-``-chardev pty,id=id``
- Create a new pseudo-terminal on the host and connect to it. ``pty``
- does not take any options.
+``-chardev pty,id=id[,path=path]``
+ Create a new pseudo-terminal on the host and connect to it.
``pty`` is not available on Windows hosts.
+ If ``path`` is specified, QEMU will create a symbolic link at
+ that location which points to the new PTY device.
+
+ This avoids having to make QMP or HMP monitor queries to find out
+ what the new PTY device path is.
+
+ Note that while QEMU will remove the symlink when it exits
+ gracefully, it will not do so in case of crashes or on certain
+ startup errors. It is recommended that the user checks and removes
+ the symlink after QEMU terminates to account for this.
+
``-chardev stdio,id=id[,signal=on|off]``
Connect to standard input and standard output of the QEMU process.
@@ -4314,8 +4324,19 @@ SRST
vc:80Cx24C
- ``pty``
- [Linux only] Pseudo TTY (a new PTY is automatically allocated)
+ ``pty[:path]``
+ [Linux only] Pseudo TTY (a new PTY is automatically allocated).
+
+ If ``path`` is specified, QEMU will create a symbolic link at
+ that location which points to the new PTY device.
+
+ This avoids having to make QMP or HMP monitor queries to find
+ out what the new PTY device path is.
+
+ Note that while QEMU will remove the symlink when it exits
+ gracefully, it will not do so in case of crashes or on certain
+ startup errors. It is recommended that the user checks and
+ removes the symlink after QEMU terminates to account for this.
``none``
No device is allocated. Note that for machine types which
--
2.47.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PULL 0/2] chardev patches
2024-10-09 8:39 [PULL 0/2] chardev patches marcandre.lureau
2024-10-09 8:39 ` [PULL 1/2] chardev: introduce 'reconnect-ms' and deprecate 'reconnect' marcandre.lureau
2024-10-09 8:39 ` [PULL 2/2] chardev: add path option for pty backend marcandre.lureau
@ 2024-10-09 19:11 ` Peter Maydell
2 siblings, 0 replies; 8+ messages in thread
From: Peter Maydell @ 2024-10-09 19:11 UTC (permalink / raw)
To: marcandre.lureau
Cc: qemu-devel, Markus Armbruster, Eric Blake, Paolo Bonzini, devel
On Wed, 9 Oct 2024 at 09:39, <marcandre.lureau@redhat.com> wrote:
>
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> The following changes since commit 2af37e791906cfda42cb9604a16d218e56994bb1:
>
> Merge tag 'pull-request-2024-10-07' of https://gitlab.com/thuth/qemu into staging (2024-10-07 12:55:02 +0100)
>
> are available in the Git repository at:
>
> https://gitlab.com/marcandre.lureau/qemu.git tags/chr-pull-request
>
> for you to fetch changes up to b74cb8761c68275240af0826086590a03a1f419d:
>
> chardev: add path option for pty backend (2024-10-09 12:13:05 +0400)
>
> ----------------------------------------------------------------
> chardev: introduce 'reconnect-ms' and deprecate 'reconnect'
> chardev: add path option for pty backend
>
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/9.2
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PULL 0/2] chardev patches
@ 2024-12-02 12:27 marcandre.lureau
2024-12-02 16:15 ` Peter Maydell
0 siblings, 1 reply; 8+ messages in thread
From: marcandre.lureau @ 2024-12-02 12:27 UTC (permalink / raw)
To: qemu-devel; +Cc: Marc-André Lureau, Paolo Bonzini, peter.maydell
From: Marc-André Lureau <marcandre.lureau@redhat.com>
The following changes since commit 72b88908d12ee9347d13539c7dd9a252625158d1:
Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging (2024-11-29 10:09:05 +0000)
are available in the Git repository at:
https://gitlab.com/marcandre.lureau/qemu.git tags/chr-pull-request
for you to fetch changes up to e6214fd6d48e704ed3aed6ea2053a9756d0ca13f:
chardev/char-mux: make boolean bit check instead of find_next_bit() (2024-12-02 16:23:12 +0400)
----------------------------------------------------------------
chardev patch queue
----------------------------------------------------------------
Roman Penyaev (2):
chardev/char-mux: shift unsigned long to avoid 32-bit overflow
chardev/char-mux: make boolean bit check instead of find_next_bit()
chardev/char-mux.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
--
2.47.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PULL 0/2] chardev patches
2024-12-02 12:27 marcandre.lureau
@ 2024-12-02 16:15 ` Peter Maydell
0 siblings, 0 replies; 8+ messages in thread
From: Peter Maydell @ 2024-12-02 16:15 UTC (permalink / raw)
To: marcandre.lureau; +Cc: qemu-devel, Paolo Bonzini
On Mon, 2 Dec 2024 at 12:27, <marcandre.lureau@redhat.com> wrote:
>
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> The following changes since commit 72b88908d12ee9347d13539c7dd9a252625158d1:
>
> Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging (2024-11-29 10:09:05 +0000)
>
> are available in the Git repository at:
>
> https://gitlab.com/marcandre.lureau/qemu.git tags/chr-pull-request
>
> for you to fetch changes up to e6214fd6d48e704ed3aed6ea2053a9756d0ca13f:
>
> chardev/char-mux: make boolean bit check instead of find_next_bit() (2024-12-02 16:23:12 +0400)
>
> ----------------------------------------------------------------
> chardev patch queue
>
> ----------------------------------------------------------------
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/9.2
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PULL 0/2] chardev patches
@ 2024-12-03 13:39 marcandre.lureau
2024-12-03 16:50 ` Peter Maydell
0 siblings, 1 reply; 8+ messages in thread
From: marcandre.lureau @ 2024-12-03 13:39 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Paolo Bonzini, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
The following changes since commit eb22a064455aeebc105cc89bf77f48aa18b52938:
Merge tag 'pull-request-2024-12-02' of https://gitlab.com/thuth/qemu into staging (2024-12-02 16:16:15 +0000)
are available in the Git repository at:
https://gitlab.com/marcandre.lureau/qemu.git tags/chr-pull-request
for you to fetch changes up to 3c8ab23fb30328111304cb8eab9bda769d52048f:
chardev: Remove __-prefixed names (2024-12-03 16:09:19 +0400)
----------------------------------------------------------------
chardev patch queue
----------------------------------------------------------------
Nicholas Piggin (2):
chardev: Fix record/replay error path NULL deref in device creation
chardev: Remove __-prefixed names
chardev/char.c | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
--
2.47.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PULL 0/2] chardev patches
2024-12-03 13:39 marcandre.lureau
@ 2024-12-03 16:50 ` Peter Maydell
0 siblings, 0 replies; 8+ messages in thread
From: Peter Maydell @ 2024-12-03 16:50 UTC (permalink / raw)
To: marcandre.lureau; +Cc: qemu-devel, Paolo Bonzini
On Tue, 3 Dec 2024 at 13:40, <marcandre.lureau@redhat.com> wrote:
>
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> The following changes since commit eb22a064455aeebc105cc89bf77f48aa18b52938:
>
> Merge tag 'pull-request-2024-12-02' of https://gitlab.com/thuth/qemu into staging (2024-12-02 16:16:15 +0000)
>
> are available in the Git repository at:
>
> https://gitlab.com/marcandre.lureau/qemu.git tags/chr-pull-request
>
> for you to fetch changes up to 3c8ab23fb30328111304cb8eab9bda769d52048f:
>
> chardev: Remove __-prefixed names (2024-12-03 16:09:19 +0400)
>
> ----------------------------------------------------------------
> chardev patch queue
>
> ----------------------------------------------------------------
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/9.2
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-12-03 16:50 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-09 8:39 [PULL 0/2] chardev patches marcandre.lureau
2024-10-09 8:39 ` [PULL 1/2] chardev: introduce 'reconnect-ms' and deprecate 'reconnect' marcandre.lureau
2024-10-09 8:39 ` [PULL 2/2] chardev: add path option for pty backend marcandre.lureau
2024-10-09 19:11 ` [PULL 0/2] chardev patches Peter Maydell
-- strict thread matches above, loose matches on Subject: below --
2024-12-02 12:27 marcandre.lureau
2024-12-02 16:15 ` Peter Maydell
2024-12-03 13:39 marcandre.lureau
2024-12-03 16:50 ` Peter Maydell
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).