Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: 4e059a9d966703e27c9f15e47c9b5e94509c5538
      
https://github.com/qemu/qemu/commit/4e059a9d966703e27c9f15e47c9b5e94509c5538
  Author: Roman Penyaev <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    M chardev/char-pty.c

  Log Message:
  -----------
  chardev/char-pty: send CHR_EVENT_CLOSED on disconnect

Change makes code symmetric to the code, which handles
the "connected" state, i.e. send CHR_EVENT_CLOSED when
state changes from "connected" to "disconnected".

This behavior is similar to char-socket, for example.

Signed-off-by: Roman Penyaev <[email protected]>
Reviewed-by: "Marc-André Lureau" <[email protected]>
Reviewed-by: "Alex Bennée" <[email protected]>
Cc: [email protected]
Message-ID: <[email protected]>


  Commit: b66ed232383162dc52d6a1c996599541860d1f1a
      
https://github.com/qemu/qemu/commit/b66ed232383162dc52d6a1c996599541860d1f1a
  Author: Roman Penyaev <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    A chardev/char-hub.c
    M chardev/char.c
    M chardev/chardev-internal.h
    M chardev/meson.build
    M include/chardev/char.h
    M qapi/char.json

  Log Message:
  -----------
  chardev/char-hub: implement backend chardev aggregator

This patch implements a new chardev backend `hub` device, which
aggregates input from multiple backend devices and forwards it to a
single frontend device. Additionally, `hub` device takes the output
from the frontend device and sends it back to all the connected
backend devices. This allows for seamless interaction between
different backend devices and a single frontend interface.

The idea of the change is trivial: keep list of backend devices
(up to 4), init them on demand and forward data buffer back and
forth.

The following is QEMU command line example:

   -chardev pty,path=/tmp/pty,id=pty0 \
   -chardev vc,id=vc0 \
   -chardev hub,id=hub0,chardevs.0=pty0,chardevs.1=vc0 \
   -device virtconsole,chardev=hub0 \
   -vnc 0.0.0.0:0

Which creates 2 backend devices: text virtual console (`vc0`) and a
pseudo TTY (`pty0`) connected to the single virtio hvc console with
the backend aggregator (`hub0`) help. `vc0` renders text to an image,
which can be shared over the VNC protocol.  `pty0` is a pseudo TTY
backend which provides biderectional communication to the virtio hvc
console.

'chardevs.N' list syntax is used for the sake of compatibility with
the representation of JSON lists in 'key=val' pairs format of the
util/keyval.c, despite the fact that modern QAPI way of parsing,
namely qobject_input_visitor_new_str(), is not used. Choice of keeping
QAPI list syntax may help to smoothly switch to modern parsing in the
future.

Signed-off-by: Roman Penyaev <[email protected]>
Reviewed-by: "Marc-André Lureau" <[email protected]>
Cc: [email protected]
Message-ID: <[email protected]>


  Commit: c9c05ed525d368c0771ccf1195613bdf49d1bd21
      
https://github.com/qemu/qemu/commit/c9c05ed525d368c0771ccf1195613bdf49d1bd21
  Author: Roman Penyaev <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    M tests/unit/test-char.c

  Log Message:
  -----------
  tests/unit/test-char: add unit tests for hub chardev backend

This commit introduces a new test function `char_hub_test` to validate
the functionality and constraints of the "hub" chardev backend in QEMU.
The test includes multiple scenarios:

1. Invalid hub creation:
   - Creating a hub without defining `chardevs.N` (expects an error).
   - Creating a hub with an embedded multiplexer (`mux=on`) or a chardev
     already in use (expects errors).

2. Max backend limit:
   - Ensures the hub does not accept more backends than the maximum
     allowed, with appropriate error handling.

3. Valid hub creation and data aggregation:
   - Successfully creating a hub with two ring buffer backends.
   - Verifying data aggregation from backends to a frontend and vice versa.
   - Ensuring correct error handling for attempts to attach a hub multiple
     times or remove busy chardevs.

4. Extended EAGAIN simulation (non-Windows only):
   - Simulates a setup with three backends, including a pipe, to test
     EAGAIN handling and watcher behavior.
   - Verifies data flow and recovery in scenarios involving buffer
     overflows and drained pipes.

The test also ensures correct cleanup of chardevs in all cases, covering
both valid and invalid configurations.

Signed-off-by: Roman Penyaev <[email protected]>
Reviewed-by: "Marc-André Lureau" <[email protected]>
Cc: [email protected]
Message-ID: <[email protected]>


  Commit: aeb6b818c1816304cdfdf846041e2b2ba0e73aca
      
https://github.com/qemu/qemu/commit/aeb6b818c1816304cdfdf846041e2b2ba0e73aca
  Author: Roman Penyaev <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    M qemu-options.hx

  Log Message:
  -----------
  qemu-options.hx: describe hub chardev and aggregation of several backends

This adds a few lines describing `hub` aggregator configuration
for aggregation of several backend devices with a single frontend
device.

Signed-off-by: Roman Penyaev <[email protected]>
Reviewed-by: "Marc-André Lureau" <[email protected]>
Cc: [email protected]
Message-ID: <[email protected]>


  Commit: 453b3f3cdc6326ad75a9dedd6bb21c570e7697ef
      
https://github.com/qemu/qemu/commit/453b3f3cdc6326ad75a9dedd6bb21c570e7697ef
  Author: Ani Sinha <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    M tests/qtest/libqos/fw_cfg.c

  Log Message:
  -----------
  libqos/fw_cfg: refactor file directory iteraton to make it more reusable

fw-cfg file directory iteration code can be used by other functions that may
want to implement fw-cfg file operations. Refactor it into a smaller helper
so that it can be reused.

No functional change.

Signed-off-by: Ani Sinha <[email protected]>
Reviewed-by: Fabiano Rosas <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Fabiano Rosas <[email protected]>


  Commit: 9c38fea83be147aa0b65eec881a2883089ecac40
      
https://github.com/qemu/qemu/commit/9c38fea83be147aa0b65eec881a2883089ecac40
  Author: Ani Sinha <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    M tests/qtest/libqos/fw_cfg.c
    M tests/qtest/libqos/fw_cfg.h

  Log Message:
  -----------
  tests/qtest/libqos: add DMA support for writing and reading fw_cfg files

At present, the libqos/fw_cfg.c library does not support the modern DMA
interface which is required to write to the fw_cfg files. It only uses the IO
interface. Implement read and write methods based on DMA. This will enable
developers to add tests that writes to the fw_cfg file(s). The structure of
the code is taken from edk2 fw_cfg implementation. It has been tested by
writing a qtest that writes to a fw_cfg file.

Signed-off-by: Ani Sinha <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Fabiano Rosas <[email protected]>


  Commit: 5fddf0c0459a9d637b6cfc683d938061c0c3b1a8
      
https://github.com/qemu/qemu/commit/5fddf0c0459a9d637b6cfc683d938061c0c3b1a8
  Author: Ani Sinha <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    M MAINTAINERS
    M tests/qtest/meson.build
    A tests/qtest/vmcoreinfo-test.c

  Log Message:
  -----------
  tests/qtest/vmcoreinfo: add a unit test to exercize basic vmcoreinfo function

A new qtest is written that exercizes the fw-cfg DMA based read and write ops
to write values into vmcoreinfo fw-cfg file and read them back and verify that
they are the same.

Signed-off-by: Ani Sinha <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Fabiano Rosas <[email protected]>


  Commit: 6f02691ff47255798def37bc47021e847c8d843d
      
https://github.com/qemu/qemu/commit/6f02691ff47255798def37bc47021e847c8d843d
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    M tests/qtest/libqtest.c

  Log Message:
  -----------
  tests/qtest: Extract qtest_qom_has_concrete_type() helper

Extract qtest_qom_has_concrete_type() out of qtest_has_device()
in order to re-use it in the following commit.

Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Akihiko Odaki <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Fabiano Rosas <[email protected]>


  Commit: b5467913722a008eedeed71bccf20a38175a5818
      
https://github.com/qemu/qemu/commit/b5467913722a008eedeed71bccf20a38175a5818
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    M tests/qtest/libqtest.c

  Log Message:
  -----------
  tests/qtest: Make qtest_has_accel() generic

Since commit b14a0b7469f ("accel: Use QOM classes for accel types")
accelerators are registered as QOM objects. Use QOM as a generic
API to query for available accelerators. This is in particular
useful to query hardware accelerators such HFV, Xen or WHPX which
otherwise have their definitions poisoned in "exec/poison.h".

Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Akihiko Odaki <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Fabiano Rosas <[email protected]>


  Commit: cd6406df15ed2216e70e34c45a4a82f42b55873f
      
https://github.com/qemu/qemu/commit/cd6406df15ed2216e70e34c45a4a82f42b55873f
  Author: Thomas Huth <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    M tests/qtest/vhost-user-test.c

  Log Message:
  -----------
  tests/qtest/vhost-user-test: Use modern virtio for vhost-user tests

All other vhost-user tests here use modern virtio, too, so let's
adjust the vhost-user-net test accordingly.

Signed-off-by: Thomas Huth <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Fabiano Rosas <[email protected]>
Signed-off-by: Fabiano Rosas <[email protected]>


  Commit: ccf86c392c5b8949bafd363e44d3abb112578044
      
https://github.com/qemu/qemu/commit/ccf86c392c5b8949bafd363e44d3abb112578044
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    M audio/dbusaudio.c
    M ui/dbus-console.c
    M ui/dbus.c

  Log Message:
  -----------
  ui/dbus: on win32, allow ANONYMOUS with p2p

GLib doesn't implement EXTERNAL on win32 at the moment, and disables
ANONYMOUS by default. zbus dropped support for COOKIE_SHA1 in 5.0,
making it no longer possible to connect to qemu -display dbus.

Since p2p connections are gated by existing QMP (or a D-Bus connection),
qemu -display dbus p2p can accept authentication with ANONYMOUS.

Signed-off-by: Marc-André Lureau <[email protected]>


  Commit: 5b4109232e5c6db61fb02aa86b30170d93234acb
      
https://github.com/qemu/qemu/commit/5b4109232e5c6db61fb02aa86b30170d93234acb
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    M ui/dbus-display1.xml

  Log Message:
  -----------
  ui/dbus: clarify the kind of win32 handle that is shared

"-display dbus" hands over a file mapping handle to the peer
process (not a file handle).

Signed-off-by: Marc-André Lureau <[email protected]>


  Commit: c0fb8e88cbbfc140800e614586b446193a3fd93a
      
https://github.com/qemu/qemu/commit/c0fb8e88cbbfc140800e614586b446193a3fd93a
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    M contrib/plugins/cache.c

  Log Message:
  -----------
  plugins: fix -Werror=maybe-uninitialized false-positive

../contrib/plugins/cache.c:638:9: error: ‘l2_cache’ may be used uninitialized 
[-Werror=maybe-uninitialized]
  638 |         append_stats_line(rep, l1_dmem_accesses, l1_dmisses,
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Is a false-positive, since cores > 1, so the variable is set in the
above loop.

Signed-off-by: Marc-André Lureau <[email protected]>
Reviewed-by: Pierrick Bouvier <[email protected]>


  Commit: 19c628f2f579f2702dd13192b7c2de6bc8d665ce
      
https://github.com/qemu/qemu/commit/19c628f2f579f2702dd13192b7c2de6bc8d665ce
  Author: Marc-André Lureau <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    M audio/dbusaudio.c
    M qapi/audio.json
    M ui/dbus-display1.xml

  Log Message:
  -----------
  dbus: add -audio dbus nsamples option

Allow to set the number of audio samples per read/write to dbus.

Signed-off-by: Marc-André Lureau <[email protected]>


  Commit: f58eb46a5ba284a97e45fd754871333ba2aeff39
      
https://github.com/qemu/qemu/commit/f58eb46a5ba284a97e45fd754871333ba2aeff39
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    M MAINTAINERS
    M tests/qtest/libqos/fw_cfg.c
    M tests/qtest/libqos/fw_cfg.h
    M tests/qtest/libqtest.c
    M tests/qtest/meson.build
    M tests/qtest/vhost-user-test.c
    A tests/qtest/vmcoreinfo-test.c

  Log Message:
  -----------
  Merge tag 'qtest-20250203-pull-request' of https://gitlab.com/farosas/qemu 
into staging

Qtest pull request

- fw-cfg: DMA support and new vmcoreinfo test
- accel detection via QOM for non-KVM accels
- use virtio modern for vhost-user

# -----BEGIN PGP SIGNATURE-----
#
# iQJEBAABCAAuFiEEqhtIsKIjJqWkw2TPx5jcdBvsMZ0FAmeg8+cQHGZhcm9zYXNA
# c3VzZS5kZQAKCRDHmNx0G+wxnS1jD/9/xx8i9fQgA9znEZmzMvQ0xXrlUz8jQkA8
# yd/iCZT1ue4ff39XA/Z01J/lUaHFV5x4xV4/YL+I0IcMddwIuI3xXexAEyO76rRC
# dRxjKrq20s2W6VPnOT0NHBnvpNnYoQDunIZxY+16QMWajTRbA45G8R7W4dWWOhLQ
# 2sWNuQHsj1lQ4lZMYlaMuFZC31PgFgPiEwIfS2NHST3WfxJVPpsLU5/Pc8UGs6fd
# Sq58jXPS1Akhov7IuC8VG/icjnDpMe3f7OFWQ8u8MC5OhwFNnD7aNnf6V7LmM4f+
# vhwLPewKxS3KQ2j1Vt2iWGebxlJHDbvifaBpIiVIibaHvtzcOdwK/bK0i+ji3oTk
# NgDB80+UKEUGzj0A+BNMcI+ZMonRT2wmBucWdGCosEG1FUlDONdX2a8Zs5Cfxipe
# N2a30OmIfbHo905JLYbTw5SXFSyWdYTSgXOEyNlXjq/B+v3qtpdrHXtMOJaXfk/V
# Ln0pKT/mDKx/haiooJdMheJpvRDYxFUHub1MrqnVWWeoiTS2wRwu9QAbFusNwyrk
# cEYQRPwuX0AnGk6swRUVLdd7HHeeNDZtVBr30Gi1hzQUZRsfW/YmKunoXJ38XAoG
# ZD/7VdTgmpQcoXNBJFnyi9Ie6NSWZwgNmZmZn3yWQtV5ACWIt0cqwF8POh8TOY25
# 5mVQly/UAA==
# =FJP7
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 03 Feb 2025 11:50:47 EST
# gpg:                using RSA key AA1B48B0A22326A5A4C364CFC798DC741BEC319D
# gpg:                issuer "[email protected]"
# gpg: Good signature from "Fabiano Rosas <[email protected]>" [unknown]
# gpg:                 aka "Fabiano Almeida Rosas <[email protected]>" 
[unknown]
# gpg: WARNING: The key's User ID is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: AA1B 48B0 A223 26A5 A4C3  64CF C798 DC74 1BEC 319D

* tag 'qtest-20250203-pull-request' of https://gitlab.com/farosas/qemu:
  tests/qtest/vhost-user-test: Use modern virtio for vhost-user tests
  tests/qtest: Make qtest_has_accel() generic
  tests/qtest: Extract qtest_qom_has_concrete_type() helper
  tests/qtest/vmcoreinfo: add a unit test to exercize basic vmcoreinfo function
  tests/qtest/libqos: add DMA support for writing and reading fw_cfg files
  libqos/fw_cfg: refactor file directory iteraton to make it more reusable

Signed-off-by: Stefan Hajnoczi <[email protected]>


  Commit: d922088eb4ba6bc31a99f17b32cf75e59dd306cd
      
https://github.com/qemu/qemu/commit/d922088eb4ba6bc31a99f17b32cf75e59dd306cd
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-02-03 (Mon, 03 Feb 2025)

  Changed paths:
    M audio/dbusaudio.c
    A chardev/char-hub.c
    M chardev/char-pty.c
    M chardev/char.c
    M chardev/chardev-internal.h
    M chardev/meson.build
    M contrib/plugins/cache.c
    M include/chardev/char.h
    M qapi/audio.json
    M qapi/char.json
    M qemu-options.hx
    M tests/unit/test-char.c
    M ui/dbus-console.c
    M ui/dbus-display1.xml
    M ui/dbus.c

  Log Message:
  -----------
  Merge tag 'ui-pull-request' of https://gitlab.com/marcandre.lureau/qemu into 
staging

UI/chardev-related patch queue

# -----BEGIN PGP SIGNATURE-----
#
# iQJQBAABCAA6FiEEh6m9kz+HxgbSdvYt2ujhCXWWnOUFAmeg+mwcHG1hcmNhbmRy
# ZS5sdXJlYXVAcmVkaGF0LmNvbQAKCRDa6OEJdZac5X9JD/4ie4unhYkWEaJLR5ks
# eVRE2ZrwrO1HF2HkFHgs9UN/G6Pl4o/YaPzICQkManJOhbJvOcp8hReOrSETrOLg
# iiYHr3DH+H1nRzPgH+Nuvj3IRnl2EdypfgHbWVmvMQQ7u0vwpUiraTHEqy2PvTqO
# ougTl0lf4v4NB1CHWDTbs6IT4/hMwXM4/pP1ztXvdWeJxKUUTKb9SSOlmjkdT/Ou
# kZqDr/aonWxvQs6t3HeauNkiIIq21pVAIDUoDr338hTK4/EPhxOwaTpZ0b2RATA6
# ldpcS7VNfsMe8aJI3nsRaRz5NkWNDnQgejGkIxxXo3xj8c/rhZMyqrrqYaqFleVW
# 0ahh6eY0qxc+Z7HJ+SxU8oDUzNjOw+14NeUlHTd+qRnZVasWXZlB7wYTxlbLKCHP
# KtbAm8KsdWrKokMkupRCHiI0je3QXlhX3TGEUS5HHcknjhvmkEzCcEYy0gYuyLRq
# +e79xdC/IyylZvzM/SXQXWEtb3GmBhi5pQmcRftTgISNxryXFfYXeOOQhgvJQS2L
# 8/Ul/rIEvhecj1me/wzOK1bDGzFae8xYSM2z7v/EAm4I59N8N8aomnN3sHeaeLlG
# UwWGpq9Z3igoWaM88/h8EktA0Kk8s9YBXZoKvGwVQPglEqEeWEwvrGKEM2Le7kYF
# eHM+osrJFf2iD42v6AnYVARhIA==
# =1pl1
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 03 Feb 2025 12:18:36 EST
# gpg:                using RSA key 87A9BD933F87C606D276F62DDAE8E10975969CE5
# gpg:                issuer "[email protected]"
# gpg: Good signature from "Marc-André Lureau <[email protected]>" 
[full]
# gpg:                 aka "Marc-André Lureau <[email protected]>" 
[full]
# Primary key fingerprint: 87A9 BD93 3F87 C606 D276  F62D DAE8 E109 7596 9CE5

* tag 'ui-pull-request' of https://gitlab.com/marcandre.lureau/qemu:
  dbus: add -audio dbus nsamples option
  plugins: fix -Werror=maybe-uninitialized false-positive
  ui/dbus: clarify the kind of win32 handle that is shared
  ui/dbus: on win32, allow ANONYMOUS with p2p
  qemu-options.hx: describe hub chardev and aggregation of several backends
  tests/unit/test-char: add unit tests for hub chardev backend
  chardev/char-hub: implement backend chardev aggregator
  chardev/char-pty: send CHR_EVENT_CLOSED on disconnect

Signed-off-by: Stefan Hajnoczi <[email protected]>


Compare: https://github.com/qemu/qemu/compare/6fccaa2fba39...d922088eb4ba

To unsubscribe from these emails, change your notification settings at 
https://github.com/qemu/qemu/settings/notifications

Reply via email to