qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Filip Hejsek <filip.hejsek@gmail.com>
To: Markus Armbruster <armbru@redhat.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>, "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>,
	"Szymon Lukasz" <noh4hss@gmail.com>,
	"Daniel P.Berrangé" <berrange@redhat.com>,
	devel@lists.libvirt.org
Subject: Re: [PATCH v4 07/10] qmp: add chardev-resize command
Date: Tue, 16 Sep 2025 19:01:49 +0200	[thread overview]
Message-ID: <53a9b16a229930a3caa80af9541f16b4a8b6094c.camel@gmail.com> (raw)
In-Reply-To: <87bjnao8ae.fsf@pond.sub.org>

On Tue, 2025-09-16 at 15:07 +0200, Markus Armbruster wrote:
> Filip Hejsek <filip.hejsek@gmail.com> writes:
> 
> > On Mon, 2025-09-15 at 08:35 +0200, Markus Armbruster wrote:
> > > Filip Hejsek <filip.hejsek@gmail.com> writes:
> > > 
> > > > On Fri, 2025-09-12 at 16:01 +0200, Markus Armbruster wrote:
> > > > > Cc: libvirt
> > > > > 
> > > > > Filip Hejsek <filip.hejsek@gmail.com> writes:
> > > > > 
> > > > > > From: Szymon Lukasz <noh4hss@gmail.com>
> > > > > > 
> > > > > > [...]
> > > > > >  
> > > > > > +##
> > > > > > +# @chardev-resize:
> > > > > 
> > > > > This name doesn't tell me what is being resized.  PATCH 04 uses
> > > > > "winsize", which is better.  The (losely) related SIGWINCH suggests
> > > > > "window change" or "window size change".  Below, you use "terminal
> > > > > size".
> > > > 
> > > > How about chardev-console-resize? That would match the name of the
> > > > virtio event (VIRTIO_CONSOLE_RESIZE).
> > > 
> > > Not bad.  It could become slightly bad if we make devices other than
> > > "consoles" make us of it.  Would that be possible?
> > 
> > I don't think the size has any meaning for devices that are not
> > connected to a console, although the code does not care whether it
> > actually is a console and simply has a size for every chardev.
> 
> Double-checking: the command works for any ChardevBackendKind, doesn't
> it?

Yes. For some (e.g. stdio) it will clash with builtin resize detection,
but it can still be used (last update wins).

Maybe using the command should be prohibited for some device types?

> > I guess I could also rename it to chardev-window-resize
> > or chardev-set-window-size. Let me know if you prefer one of these.
> 
> I think I'd prefer "window" or "terminal".
> 
> "resize" and "set size" suggest that the command initiates a size
> change.  Not true, it notifies of a size change.  Maybe
> "chardev-window-size-changed", "chardev-terminal-size-changed",
> "chardev-window-resized", or "chardev-terminal-resized".

OK, then I'll use "chardev-window-size-changed".

> > > > > 
> > > > 
> [...]
> Another question...  'vc' chardevs accept optional @rows, @cols (see
> ChardevVC).  Is this the same size or something else?

Well, yes and no. @cols + @rows control the actual size of the console
screen buffer, while the chardev size is only used to inform the guest
about the size. @cols and @rows can also be unset, in which case the
size will be determined automatically from display and font size.

This patch series does not yet implement size propagation for the 'vc'
device. I have WIP patches for that, but there is something I'm not
sure how to do, so I will likely send an RFC first.

> > > A clearly invalid size.  I guess it effectively means "unknown size".
> > > Should we document that?
> > 
> > Probably. 0x0 is I think also the default size in the Linux kernel, but
> > I don't think the Linux kernel documents this.
> 
> How does 0 x 0 behave compared to a valid size like 80 x 24?

In these patches it is not treated specially (apart from being the
default). I think the Linux kernel doesn't treat it specially either.
Terminal programs generally interpret it as unknown size and use other
methods to obtain the size like environment variables, the terminfo
database, or defaulting to 80x24. Example:

   $ python -c 'import termios; termios.tcsetwinsize(0, (0,0))'
   $ tput cols
   80

> 
> [...]
> > > > > Do we need a way to query the size?
> > > > 
> > > > I don't think it is necessary. What would be the usecase for that?
> > > 
> > > I don't know, but it's my standard question when I see an interface to
> > > set something without an interface to get it.  Its purpose is to make us
> > > think, not to make us at the get blindly.
> > 
> > I guess it might be useful for debugging. If the size is not propagated
> > correctly, one might query it to find out on which side the problem is.
> 
> We have query-chardev.  It doesn't return much.

I'm not sure what you're implying. Shall I add the size there?
> > > > > 


  reply	other threads:[~2025-09-16 17:03 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-12  3:39 [PATCH v4 00/10] virtio-console: notify about the terminal size Filip Hejsek
2025-09-12  3:39 ` [PATCH v4 01/10] chardev: add cols, rows fields Filip Hejsek
2025-09-12  3:39 ` [PATCH v4 02/10] chardev: add CHR_EVENT_RESIZE Filip Hejsek
2025-09-12  3:39 ` [PATCH v4 03/10] chardev: add qemu_chr_resize() Filip Hejsek
2025-09-18  8:45   ` Maximilian Immanuel Brandtner
2025-09-18  9:31     ` Filip Hejsek
2025-09-12  3:39 ` [PATCH v4 04/10] char-mux: add support for the terminal size Filip Hejsek
2025-09-18  8:32   ` Maximilian Immanuel Brandtner
2025-09-18  9:11     ` Filip Hejsek
2025-09-12  3:39 ` [PATCH v4 05/10] main-loop: change the handling of SIGWINCH Filip Hejsek
2025-09-12  3:39 ` [PATCH v4 06/10] char-stdio: add support for the terminal size Filip Hejsek
2025-09-12  3:39 ` [PATCH v4 07/10] qmp: add chardev-resize command Filip Hejsek
2025-09-12 14:01   ` Markus Armbruster
2025-09-12 18:10     ` Filip Hejsek
2025-09-15  6:35       ` Markus Armbruster
2025-09-15 22:22         ` Filip Hejsek
2025-09-16 13:07           ` Markus Armbruster
2025-09-16 17:01             ` Filip Hejsek [this message]
2025-09-17  8:25               ` Markus Armbruster
2025-09-12  3:39 ` [PATCH v4 08/10] virtio-serial-bus: add terminal resize messages Filip Hejsek
2025-09-12 13:50   ` Markus Armbruster
2025-09-12 15:02     ` Filip Hejsek
2025-09-18  8:23   ` Daniel P. Berrangé
2025-09-18  8:51     ` Filip Hejsek
2025-09-12  3:39 ` [PATCH v4 09/10] virtio-console: notify the guest about terminal resizes Filip Hejsek
2025-09-12  3:39 ` [PATCH v4 10/10] char-win-stdio: add support for terminal size Filip Hejsek
2025-09-12  8:41 ` [PATCH v4 00/10] virtio-console: notify about the " Michael S. Tsirkin
2025-09-12  8:44   ` Michael S. Tsirkin
2025-09-12  8:50   ` Daniel P. Berrangé
2025-09-12  8:54     ` Michael S. Tsirkin
2025-09-15  8:41     ` Maximilian Immanuel Brandtner
2025-09-15  8:44       ` Daniel P. Berrangé
2025-09-15 16:25         ` [PATCH] char-pty: add support for " Maximilian Immanuel Brandtner
2025-09-15 16:34           ` [PATCH v2] " Maximilian Immanuel Brandtner
2025-09-15 16:36             ` Michael S. Tsirkin
2025-09-15 22:02             ` Filip Hejsek
2025-09-17  9:39               ` Maximilian Immanuel Brandtner
2025-09-17 13:09                 ` Filip Hejsek
2025-09-17 13:31                   ` Daniel P. Berrangé
2025-09-17 14:08                     ` Filip Hejsek
2025-09-17 16:17                       ` Daniel P. Berrangé
2025-09-17 17:11                         ` Filip Hejsek
2025-09-17 17:53                           ` Daniel P. Berrangé
2025-09-17 18:29                             ` Filip Hejsek
2025-09-18  8:35                               ` Daniel P. Berrangé
2025-09-18  8:39                                 ` Maximilian Immanuel Brandtner
2025-09-18  8:48                                   ` Daniel P. Berrangé
2025-09-18  8:54                                     ` Maximilian Immanuel Brandtner
2025-09-18  8:59                                       ` Daniel P. Berrangé
2025-09-18  9:05                                         ` Maximilian Immanuel Brandtner
2025-09-18 19:21                                           ` Filip Hejsek
2025-09-18  7:53                     ` Maximilian Immanuel Brandtner
2025-09-18  8:10                       ` Filip Hejsek
2025-09-12 14:24   ` [PATCH v4 00/10] virtio-console: notify about " Filip Hejsek
2025-09-15 23:02 ` Filip Hejsek
2025-09-15 23:08   ` Michael S. Tsirkin
2025-09-17 18:32     ` 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=53a9b16a229930a3caa80af9541f16b4a8b6094c.camel@gmail.com \
    --to=filip.hejsek@gmail.com \
    --cc=amit@kernel.org \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=devel@lists.libvirt.org \
    --cc=eblake@redhat.com \
    --cc=eduardo@habkost.net \
    --cc=lvivier@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=marcel.apfelbaum@gmail.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;
as well as URLs for NNTP newsgroup(s).