On Mon, Oct 12, 2026 at 04:04:59PM +0200, Filip Hejsek wrote:
> Summary of the Series
> ---------------------
> 
> This series adds terminal size support to the virtio-console device.
> The goal is to make it possible to get a resizable terminal into a guest
> without using e.g. ssh.
> 
> Support for detecting terminal size is added to stdio and vc backends,
> but not pty and serial, because for the later it's unfortunately
> impossible to get resize notifications.
> 
> A QMP command is added for notifying QEMU about the terminal size
> of any chardev. This can be used by clients to support resizing for
> devices where QEMU is not able to detect the size by itself (e.g. virsh
> console).
> 
> There was a bug in Linux versions prior to 6.15 which caused the
> dimensions to be interpreted incorrectly by the guest. The fix has
> been backported to currently supported kernels, but to avoid making the
> terminal harder to use on out of date guests, the feature is disabled
> by default and must be enabled with the console-size property.
> 
> Limitations
> -----------
> 
> There is no documentation for the virtio-serial device. I'm working on
> this and will submit it separately.
> 
> Resizing support for the spice version of 'vc' chardev is still missing.
> 
> After migration, the guest is not informed about the new console size.
> I propably won't fix this any time soon unless someone helps me with
> migration stream changes.

virtio things:

Acked-by: Michael S. Tsirkin <[email protected]>

> Full Changelog
> --------------
> 
> v10:
> - Fix build error on win32
> - Link to v9: 
> https://lore.kernel.org/qemu-devel/[email protected]
> 
> v9:
> - Clean up SIGWINCH notifier when stdio or curses chardev is destroyed
> - Link to v8: 
> https://lore.kernel.org/qemu-devel/[email protected]
> 
> v8:
> - Rebased
> - Fixed uninitialized buffer in send_console_resize
> - "Since: 11.1" -> "Since: 11.2"
> - Link to v7: 
> https://lore.kernel.org/qemu-devel/[email protected]
> 
> v7:
> - Rebased
> - Renamed some functions
> - Made virtio size support disabled by default
> - "Since: 11.0" -> "Since: 11.1"
> - Dropped "must exist" from chardev id param description in qmp docs
> - Link to v6: 
> https://lore.kernel.org/qemu-devel/[email protected]
> 
> v6:
> - Rebased (renaming CharBackend -> CharFrontend)
> - Virtio resize message code rewritten to fix corner cases
> - Updated version numbers ('Since: 11.0', hw_compat_10_2)
> - Added note to CHR_EVENT_RESIZE definition comment, explaining
>   that only the focused frontend gets the event
> - Fixed checkpatch warning (line length)
> - Link to v5: 
> https://lore.kernel.org/qemu-devel/[email protected]
> 
> v5:
> - Rename chardev-resize -> chardev-window-size-changed
> - Improve chardev-window-size-changed documentation
> - Add partial implementation for 'vc' chardev
> - Config space now returns port 0 size if multiport
> - Console-size property completely disables size support
> - Fix misnamed variables in char-win-stdio
> - Link to v4: 
> https://lore.kernel.org/qemu-devel/[email protected]
> 
> v4:
> - Changed order of rows and cols fields
> - Added support for terminal size on Windows
> - Trace event is also emitted for legacy (non-multiport) drivers
> - Minor fixes required because of changes in QEMU (DECLARE_INSTANCE_CHECKER, 
> qmp-example)
> - Updated version numbers ('Since: 10.2', hw_compat_10_1)
> - Link to v3: 
> https://lore.kernel.org/qemu-devel/[email protected]
> 
> v3:
> - Add resize messages over QMP, as suggested by Daniel
> 
> v2:
> - Fix adding a new virtio feature bit to the virtio console device
> 
> ---
> Filip Hejsek (4):
>       char-win-stdio: add support for terminal size
>       ui/console-vc: forward text console size to vc chardev
>       ui/gtk: forward gtk console size to vc chardev
>       virtio-serial-bus: add terminal resize messages
> 
> Szymon Lukasz (8):
>       chardev: add cols, rows fields
>       chardev: add CHR_EVENT_RESIZE
>       chardev: add qemu_chr_resize()
>       char-mux: add support for the terminal size
>       main-loop: change the handling of SIGWINCH
>       char-stdio: add support for the terminal size
>       qmp: add chardev-window-size-changed command
>       virtio-console: notify the guest about terminal resizes
> 
>  backends/cryptodev-vhost-user.c   |  1 +
>  chardev/char-fe.c                 | 13 +++++++
>  chardev/char-mux.c                | 19 ++++++++-
>  chardev/char-stdio.c              | 33 ++++++++++++++++
>  chardev/char-win-stdio.c          | 19 +++++++++
>  chardev/char.c                    | 26 +++++++++++++
>  hw/block/vhost-user-blk.c         |  1 +
>  hw/char/terminal3270.c            |  1 +
>  hw/char/trace-events              |  1 +
>  hw/char/virtio-console.c          | 35 +++++++++++++++--
>  hw/char/virtio-serial-bus.c       | 81 
> ++++++++++++++++++++++++++++++++++++++-
>  hw/display/vhost-user-media.c     |  1 +
>  hw/ipmi/ipmi_bmc_extern.c         |  1 +
>  hw/scsi/vhost-user-scsi.c         |  1 +
>  hw/usb/ccid-card-passthru.c       |  1 +
>  hw/usb/dev-serial.c               |  1 +
>  hw/usb/redirect.c                 |  1 +
>  hw/virtio/vhost-user-base.c       |  1 +
>  hw/virtio/vhost-user-scmi.c       |  1 +
>  include/chardev/char-fe.h         | 10 +++++
>  include/chardev/char.h            |  9 +++++
>  include/hw/virtio/virtio-serial.h |  7 ++++
>  include/qemu/main-loop.h          |  5 +++
>  monitor/hmp.c                     |  1 +
>  monitor/qmp.c                     |  1 +
>  net/passt.c                       |  1 +
>  net/vhost-user.c                  |  1 +
>  qapi/char.json                    | 31 +++++++++++++++
>  ui/console-vc.c                   |  8 ++++
>  ui/curses.c                       | 21 +++++++---
>  ui/gtk.c                          | 28 ++++++++++++++
>  util/main-loop.c                  | 33 ++++++++++++++++
>  32 files changed, 382 insertions(+), 12 deletions(-)
> ---
> base-commit: 615ece3c406b262996e569f29ea6eed0d81c4d8d
> change-id: 20250912-console-resize-96c42140ba08
> 
> Best regards,
> --  
> Filip Hejsek <[email protected]>


Reply via email to