From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2EB49CCF2D2 for ; Mon, 19 Jan 2026 09:39:30 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vhlix-0000aV-6W; Mon, 19 Jan 2026 04:39:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vhliv-0000ZE-Gu for qemu-devel@nongnu.org; Mon, 19 Jan 2026 04:39:01 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vhlit-0000Or-CI for qemu-devel@nongnu.org; Mon, 19 Jan 2026 04:39:01 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1768815537; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references; bh=fYoeAkYvVAWePIAhGG+8cNgF2+eZdXUQJBvwo5rpbIo=; b=WxA9EslxxLQT6AK44msuSG0SpQdbyGIajo/6QsinRtRyvA8Wl4L6PfQCIoVBVPjaKSww1D YoZjImpmvRpYmTn7NxwgcCNwW/y0rAGnSEiv2r/acgHukVRiMhfDcqK+ZcurnYyzFSFLgA 0fI6jMK6rpA5Uv+PixJAfZvrjVArUbE= Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-615-D47x9xwqMPCsu2Esg5j05A-1; Mon, 19 Jan 2026 04:38:53 -0500 X-MC-Unique: D47x9xwqMPCsu2Esg5j05A-1 X-Mimecast-MFC-AGG-ID: D47x9xwqMPCsu2Esg5j05A_1768815532 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id A2D421954B21; Mon, 19 Jan 2026 09:38:51 +0000 (UTC) Received: from redhat.com (unknown [10.42.28.53]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 7C6E21800577; Mon, 19 Jan 2026 09:38:45 +0000 (UTC) Date: Mon, 19 Jan 2026 09:38:41 +0000 From: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= To: Filip Hejsek Cc: qemu-devel@nongnu.org, =?utf-8?Q?Marc-Andr=C3=A9?= Lureau , Paolo Bonzini , "Michael S. Tsirkin" , Laurent Vivier , Amit Shah , Markus Armbruster , Eric Blake , Eduardo Habkost , Marcel Apfelbaum , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Yanan Wang , Zhao Liu , Maximilian Immanuel Brandtner , Szymon Lukasz Subject: Re: [PATCH v6 08/12] virtio-serial-bus: add terminal resize messages Message-ID: References: <20260119-console-resize-v6-0-33a7b0330a7a@gmail.com> <20260119-console-resize-v6-8-33a7b0330a7a@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20260119-console-resize-v6-8-33a7b0330a7a@gmail.com> User-Agent: Mutt/2.2.14 (2025-02-20) X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 Received-SPF: pass client-ip=170.10.129.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.077, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.01, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org 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 , > but partially rewritten to fix various corner cases. > > Signed-off-by: Szymon Lukasz > Signed-off-by: Filip Hejsek > --- > 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 :|