From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Filip Hejsek <filip.hejsek@gmail.com>
Cc: qemu-devel@nongnu.org,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Laurent Vivier" <lvivier@redhat.com>,
"Amit Shah" <amit@kernel.org>,
"Markus Armbruster" <armbru@redhat.com>,
"Eric Blake" <eblake@redhat.com>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Zhao Liu" <zhao1.liu@intel.com>,
"Maximilian Immanuel Brandtner" <maxbr@linux.ibm.com>,
"Szymon Lukasz" <noh4hss@gmail.com>
Subject: Re: [PATCH v6 08/12] virtio-serial-bus: add terminal resize messages
Date: Mon, 19 Jan 2026 09:38:41 +0000 [thread overview]
Message-ID: <aW37oZ1X_7O6AXvo@redhat.com> (raw)
In-Reply-To: <20260119-console-resize-v6-8-33a7b0330a7a@gmail.com>
On Mon, Jan 19, 2026 at 04:27:51AM +0100, Filip Hejsek wrote:
> Implement the part of the virtio spec that allows to notify the virtio
> driver about terminal resizes. The virtio spec contains two methods to
> achieve that:
>
> For legacy drivers, we have only one port and we put the terminal size
> in the config space and inject the config changed interrupt.
>
> For multiport devices, we use the control virtqueue to send a packet
> containing the terminal size. Note that old versions of the Linux kernel
> used an incorrect order for the fields (rows then cols instead of cols
> then rows), until it was fixed by commit 5326ab737a47278dbd16ed3ee7380b26c7056ddd.
>
> As a result, when using a Linux kernel older than 6.15, the number of rows
> and columns will be swapped.
>
> Based on a patch originally written by Szymon Lukasz <noh4hss@gmail.com>,
> but partially rewritten to fix various corner cases.
>
> Signed-off-by: Szymon Lukasz <noh4hss@gmail.com>
> Signed-off-by: Filip Hejsek <filip.hejsek@gmail.com>
> ---
> hw/char/trace-events | 1 +
> hw/char/virtio-serial-bus.c | 76 +++++++++++++++++++++++++++++++++++++--
> hw/core/machine.c | 4 ++-
> include/hw/virtio/virtio-serial.h | 5 +++
> 4 files changed, 83 insertions(+), 3 deletions(-)
>
> @@ -1158,6 +1228,8 @@ static const Property virtio_serial_properties[] = {
> 31),
> DEFINE_PROP_BIT64("emergency-write", VirtIOSerial, host_features,
> VIRTIO_CONSOLE_F_EMERG_WRITE, true),
> + DEFINE_PROP_BIT64("console-size", VirtIOSerial, host_features,
> + VIRTIO_CONSOLE_F_SIZE, true),
> };
Given the horrible mess with the kernel intentionally changing its
behaviour after 15 years, I don't think we can we set this to be
enabled by default.
The recent behaviour change is never going to be backported to enough
stable distros that we can rely on the new behaviour, and thanks to
the change we can't rely on the old behaviour either. We're doomed no
matter what ordernig we use.
Thus, IMHO, this has to stay set to false indefinitely.
> static void virtio_serial_class_init(ObjectClass *klass, const void *data)
> diff --git a/hw/core/machine.c b/hw/core/machine.c
> index 6411e68856..50554b8900 100644
> --- a/hw/core/machine.c
> +++ b/hw/core/machine.c
> @@ -38,7 +38,9 @@
> #include "hw/acpi/generic_event_device.h"
> #include "qemu/audio.h"
>
> -GlobalProperty hw_compat_10_2[] = {};
> +GlobalProperty hw_compat_10_2[] = {
> + { "virtio-serial-device", "console-size", "off" },
> +};
> const size_t hw_compat_10_2_len = G_N_ELEMENTS(hw_compat_10_2);
>
> GlobalProperty hw_compat_10_1[] = {
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2026-01-19 9:39 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-19 3:27 [PATCH v6 00/12] virtio-console: notify about the terminal size Filip Hejsek
2026-01-19 3:27 ` [PATCH v6 01/12] chardev: add cols, rows fields Filip Hejsek
2026-01-19 3:27 ` [PATCH v6 02/12] chardev: add CHR_EVENT_RESIZE Filip Hejsek
2026-01-19 3:27 ` [PATCH v6 03/12] chardev: add qemu_chr_resize() Filip Hejsek
2026-01-19 3:27 ` [PATCH v6 04/12] char-mux: add support for the terminal size Filip Hejsek
2026-01-19 3:27 ` [PATCH v6 05/12] main-loop: change the handling of SIGWINCH Filip Hejsek
2026-01-19 3:27 ` [PATCH v6 06/12] char-stdio: add support for the terminal size Filip Hejsek
2026-01-19 3:27 ` [PATCH v6 07/12] qmp: add chardev-window-size-changed command Filip Hejsek
2026-01-19 6:47 ` Markus Armbruster
2026-01-20 8:04 ` Filip Hejsek
2026-01-20 8:18 ` [PATCH] qapi: drop "must exist" from ID descriptions for consistency Filip Hejsek
2026-01-19 3:27 ` [PATCH v6 08/12] virtio-serial-bus: add terminal resize messages Filip Hejsek
2026-01-19 9:38 ` Daniel P. Berrangé [this message]
2026-01-19 9:43 ` Michael S. Tsirkin
2026-01-20 8:43 ` Daniel P. Berrangé
2026-01-20 9:16 ` Filip Hejsek
2026-01-20 12:56 ` Michael S. Tsirkin
2026-01-20 9:50 ` Filip Hejsek
2026-01-20 9:54 ` Daniel P. Berrangé
2026-01-20 10:07 ` Filip Hejsek
2026-01-20 10:10 ` Daniel P. Berrangé
2026-01-20 10:16 ` Filip Hejsek
2026-01-20 10:20 ` Daniel P. Berrangé
2026-01-20 10:22 ` Filip Hejsek
2026-01-20 10:28 ` Filip Hejsek
2026-01-20 12:58 ` Michael S. Tsirkin
2026-01-19 3:27 ` [PATCH v6 09/12] virtio-console: notify the guest about terminal resizes Filip Hejsek
2026-01-19 3:27 ` [PATCH v6 10/12] char-win-stdio: add support for terminal size Filip Hejsek
2026-01-19 3:27 ` [PATCH v6 11/12] ui/console-vc: forward text console size to vc chardev Filip Hejsek
2026-01-19 3:27 ` [PATCH v6 12/12] ui/gtk: forward gtk " Filip Hejsek
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=aW37oZ1X_7O6AXvo@redhat.com \
--to=berrange@redhat.com \
--cc=amit@kernel.org \
--cc=armbru@redhat.com \
--cc=eblake@redhat.com \
--cc=eduardo@habkost.net \
--cc=filip.hejsek@gmail.com \
--cc=lvivier@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=maxbr@linux.ibm.com \
--cc=mst@redhat.com \
--cc=noh4hss@gmail.com \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=wangyanan55@huawei.com \
--cc=zhao1.liu@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox