Branch: refs/heads/staging
Home: https://github.com/qemu/qemu
Commit: 6f0273d6ae21bb2e4222789af0e6d480aa9430b1
https://github.com/qemu/qemu/commit/6f0273d6ae21bb2e4222789af0e6d480aa9430b1
Author: Konstantin Kostiuk <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M qga/commands-win32.c
M qga/guest-agent-core.h
M qga/main.c
M qga/meson.build
M qga/qapi-schema.json
Log Message:
-----------
qga-win: implement a 'guest-get-load' command
Windows has no native equivalent API, but it would be possible to
simulate it as illustrated here (BSD-3-Clause):
https://github.com/giampaolo/psutil/pull/1485
Reviewed-by: Daniel P. Berrangé <[email protected]>
Tested-by: Dehan Meng <[email protected]>
Reviewed-by: Yan Vugenfirer <[email protected]>
Signed-off-by: Konstantin Kostiuk <[email protected]>
Commit: 1ebbc8b774d8b44697740b108ad060612828b58f
https://github.com/qemu/qemu/commit/1ebbc8b774d8b44697740b108ad060612828b58f
Author: Konstantin Kostiuk <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M tests/unit/test-qga.c
Log Message:
-----------
qga: Add tests for guest-get-load command
Tested-by: Dehan Meng <[email protected]>
Reviewed-by: Yan Vugenfirer <[email protected]>
Signed-off-by: Konstantin Kostiuk <[email protected]>
Commit: d2f0d2dc6c3f504fa1fb87b5fb5534430fa9b28a
https://github.com/qemu/qemu/commit/d2f0d2dc6c3f504fa1fb87b5fb5534430fa9b28a
Author: Stefan Hajnoczi <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M qga/commands-win32.c
M qga/guest-agent-core.h
M qga/main.c
M qga/meson.build
M qga/qapi-schema.json
M tests/unit/test-qga.c
Log Message:
-----------
Merge tag 'qga-pull-2025-06-12' of https://github.com/kostyanf14/qemu into
staging
qga-pull-2025-06-12
# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEwsLBCepDxjwUI+uE711egWG6hOcFAmhK3hkACgkQ711egWG6
# hOdZ9g//aObON4+a2fSuTWToJwj5i2fcplXDD4OUnxH+pc3qt4bc50cpD4mbH3VZ
# 2W854DWfrvPOv1beVYlmOLKztCTFk445BwtV5im4TBBcRmPt9GXyGqqax+3msziF
# gA0r3KrJ4mv6OUvx61Jmgz4pFkHhWda6BbnTZbFPgPSz/poLN78Ib9TpAvOWBIEg
# 6bdux8Ivh4gWO22OtY7O8XDU/NwkVwQNJQ1iv3Y4EUJ+Qv4prePrDiyNVn0jf1S0
# KxIx4tPYf6B4mYbcc3/lURuI+R8H2KxCt7GmGxBl1esqjGOEUj/fjp54+OqOf/2n
# a/ZIWFu0cN1SK279eluBOm4Y7IGRouaFALaBJQLdEhYQgJmrCaEnSzHQCTR4cZQr
# V2KkmGFXV7IdLvlLl38safp/G8cxvq21ijEx/RkoZ7Iklx8wWx5A/Cy0D52IViXD
# +gsBpqGsMia+7Rus9o4P2QjWA5hCvaN7XH2rVGtELyoQwwhBfxCmhtn8qi5Vjybz
# 7f3tr0BwdRm70KL//OhSL6DZHOGyRdqyiV27IP/2K5TVqKjkZNP0eIL97Y6xoGe6
# vXLbx6y+wUW0LXJGXe2+OtR/nFTu+VJ8IapfwQfd9JIR8Z25cNsFLhvfmWlPQiMc
# EkNUEbEez21PSKuKz9cVHlfLl/L4VSgzychKF9uQWm7rhbK+Roc=
# =6AwB
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 12 Jun 2025 10:03:05 EDT
# gpg: using RSA key C2C2C109EA43C63C1423EB84EF5D5E8161BA84E7
# gpg: Good signature from "Kostiantyn Kostiuk (Upstream PR sign)
<[email protected]>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: C2C2 C109 EA43 C63C 1423 EB84 EF5D 5E81 61BA 84E7
* tag 'qga-pull-2025-06-12' of https://github.com/kostyanf14/qemu:
qga: Add tests for guest-get-load command
qga-win: implement a 'guest-get-load' command
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: c653b67d1863b7ebfa67f7c9f4aec209d7b5ced5
https://github.com/qemu/qemu/commit/c653b67d1863b7ebfa67f7c9f4aec209d7b5ced5
Author: Stefan Hajnoczi <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M include/qemu/compiler.h
Log Message:
-----------
include/qemu/compiler: add QEMU_UNINITIALIZED attribute macro
The QEMU_UNINITIALIZED macro is to be used to skip the default compiler
variable initialization done by -ftrivial-auto-var-init=zero.
Use this in cases where there a method in the device I/O path (or other
important hot paths), that has large variables on the stack. A rule of
thumb is that "large" means a method with 4kb data in the local stack
frame. Any variables which are KB in size, should be annotated with this
attribute, to pre-emptively eliminate any potential overhead from the
compiler zero'ing memory.
Given that this turns off a security hardening feature, when using this
to flag variables, it is important that the code is double-checked to
ensure there is no possible use of uninitialized data in the method.
Signed-off-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Daniel P. Berrangé <[email protected]>
Message-id: [email protected]
[DB: split off patch & rewrite guidance on when to use the annotation]
Signed-off-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: ba2868ce091cd4abe4be6de4b7e44b3be303b352
https://github.com/qemu/qemu/commit/ba2868ce091cd4abe4be6de4b7e44b3be303b352
Author: Stefan Hajnoczi <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/virtio/virtio.c
Log Message:
-----------
hw/virtio/virtio: avoid cost of -ftrivial-auto-var-init in hot path
Since commit 7ff9ff039380 ("meson: mitigate against use of uninitialize
stack for exploits") the -ftrivial-auto-var-init=zero compiler option is
used to zero local variables. While this reduces security risks
associated with uninitialized stack data, it introduced a measurable
bottleneck in the virtqueue_split_pop() and virtqueue_packed_pop()
functions.
These virtqueue functions are in the hot path. They are called for each
element (request) that is popped from a VIRTIO device's virtqueue. Using
__attribute__((uninitialized)) on large stack variables in these
functions improves fio randread bs=4k iodepth=64 performance from 304k
to 332k IOPS (+9%).
This issue was found using perf-top(1). virtqueue_split_pop() was one of
the top CPU consumers and the "annotate" feature showed that the memory
zeroing instructions at the beginning of the functions were hot.
Fixes: 7ff9ff039380 ("meson: mitigate against use of uninitialize stack for
exploits")
Cc: Daniel P. Berrangé <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 83750c1da807c973b0b11d977d61df7e41122d03
https://github.com/qemu/qemu/commit/83750c1da807c973b0b11d977d61df7e41122d03
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M block/linux-aio.c
Log Message:
-----------
block: skip automatic zero-init of large array in ioq_submit
The 'ioq_submit' method has a struct array that is 8k in size.
Skip the automatic zero-init of this array to eliminate the
performance overhead in the I/O hot path.
The 'iocbs' array will selectively initialized when processing
the I/O data.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: a503bdc22b91869e3bf45522e36b122889465306
https://github.com/qemu/qemu/commit/a503bdc22b91869e3bf45522e36b122889465306
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M chardev/char-fd.c
Log Message:
-----------
chardev/char-fd: skip automatic zero-init of large array
The 'fd_chr_read' method has a 4k byte array used for copying
data between the socket and device. Skip the automatic zero-init
of this array to eliminate the performance overhead in the I/O
hot path.
The 'buf' array will be fully initialized when reading data off
the network socket.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 45bb7fb21c8d18294a9f92da99d01ab3c67c7df2
https://github.com/qemu/qemu/commit/45bb7fb21c8d18294a9f92da99d01ab3c67c7df2
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M chardev/char-pty.c
Log Message:
-----------
chardev/char-pty: skip automatic zero-init of large array
The 'pty_chr_read' method has a 4k byte array used for copying
data between the PTY and device. Skip the automatic zero-init
of this array to eliminate the performance overhead in the I/O
hot path.
The 'buf' array will be fully initialized when reading data off
the PTY.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 9a23075cef1ac6e73a95a489ac72f41c573ceb9b
https://github.com/qemu/qemu/commit/9a23075cef1ac6e73a95a489ac72f41c573ceb9b
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M chardev/char-socket.c
Log Message:
-----------
chardev/char-socket: skip automatic zero-init of large array
The 'tcp_chr_read' method has a 4k byte array used for copying
data between the socket and device. Skip the automatic zero-init
of this array to eliminate the performance overhead in the I/O
hot path.
The 'buf' array will be fully initialized when reading data off
the network socket.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 2553d2d26a9d0f46386bf8c37d184567e5cede6c
https://github.com/qemu/qemu/commit/2553d2d26a9d0f46386bf8c37d184567e5cede6c
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/audio/ac97.c
Log Message:
-----------
hw/audio/ac97: skip automatic zero-init of large arrays
The 'read_audio' & 'write_audio' methods have a 4k byte array used
for copying data between the audio backend and device. Skip the
automatic zero-init of these arrays to eliminate the performance
overhead in the I/O hot path.
The 'tmpbuf' array will be fully initialized when reading data from
the audio backend and/or device memory.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: ca2cc0385d97cea66cd54ee42553f385c403d4a6
https://github.com/qemu/qemu/commit/ca2cc0385d97cea66cd54ee42553f385c403d4a6
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/audio/cs4231a.c
Log Message:
-----------
hw/audio/cs4231a: skip automatic zero-init of large arrays
The 'cs_write_audio' method has a pair of byte arrays, one 4k in size
and one 8k, which are used in converting audio samples. Skip the
automatic zero-init of these arrays to eliminate the performance
overhead in the I/O hot path.
The 'tmpbuf' array will be fully initialized when reading a block of
data from the guest. The 'linbuf' array will be fully initialized
when converting the audio samples.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 8236e206084b832d1d7ec947a4798b818f4cdf1f
https://github.com/qemu/qemu/commit/8236e206084b832d1d7ec947a4798b818f4cdf1f
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/audio/es1370.c
Log Message:
-----------
hw/audio/es1370: skip automatic zero-init of large array
The 'es1370_transfer_audio' method has a 4k byte array used for
copying data between the audio backend and device. Skip the automatic
zero-init of this array to eliminate the performance overhead in
the I/O hot path.
The 'tmpbuf' array will be fully initialized when reading data from
the audio backend and/or device memory.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 2e438da4929018c62609381e1156aac0b2fe3de3
https://github.com/qemu/qemu/commit/2e438da4929018c62609381e1156aac0b2fe3de3
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/audio/gus.c
Log Message:
-----------
hw/audio/gus: skip automatic zero-init of large array
The 'GUS_read_DMA' method has a 4k byte array used for copying
data between the audio backend and device. Skip the automatic
zero-init of this array to eliminate the performance overhead in
the I/O hot path.
The 'tmpbuf' array will be fully initialized when reading data
from device memory.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 5b6cd5c5df4229972d8a0fd9dd9a089a1644d6ba
https://github.com/qemu/qemu/commit/5b6cd5c5df4229972d8a0fd9dd9a089a1644d6ba
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/audio/marvell_88w8618.c
Log Message:
-----------
hw/audio/marvell_88w8618: skip automatic zero-init of large array
The 'mv88w8618_audio_callback' method has a 4k byte array used for
copying data between the audio backend and device. Skip the automatic
zero-init of this array to eliminate the performance overhead in
the I/O hot path.
The 'buf' array will be fully initialized when reading data from
device memory.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
[Fixed hw/audio/gus in commit message --Stefan]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 30c82f6657c1ee9fbb5473924b4d3273f214bd6f
https://github.com/qemu/qemu/commit/30c82f6657c1ee9fbb5473924b4d3273f214bd6f
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/audio/sb16.c
Log Message:
-----------
hw/audio/sb16: skip automatic zero-init of large array
The 'write_audio' method has a 4k byte array used for copying data
between the audio backend and device. Skip the automatic zero-init
of this array to eliminate the performance overhead in the I/O hot
path.
The 'tmpbuf' array will be fully initialized when reading data from
device memory.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: bb71d9fe1419f44529c91d1b09464718d157e647
https://github.com/qemu/qemu/commit/bb71d9fe1419f44529c91d1b09464718d157e647
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/audio/via-ac97.c
Log Message:
-----------
hw/audio/via-ac97: skip automatic zero-init of large array
The 'out_cb' method has a 4k byte array used for copying data
between the audio backend and device. Skip the automatic zero-init
of this array to eliminate the performance overhead in the I/O hot
path.
The 'tmpbuf' array will be fully initialized when reading data from
device memory.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 8b1dac1ad57082611419b0e2f347acd96115d25f
https://github.com/qemu/qemu/commit/8b1dac1ad57082611419b0e2f347acd96115d25f
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/char/sclpconsole-lm.c
Log Message:
-----------
hw/char/sclpconsole-lm: skip automatic zero-init of large array
The 'process_mdb' method has a 4k byte array used for copying data
between the guest and the chardev backend. Skip the automatic zero-init
of this array to eliminate the performance overhead in the I/O hot
path.
The 'buffer' array will be selectively initialized when data is converted
between EBCDIC and ASCII.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: ce14f24611aa0469b464a9512e192b4fd51dca2b
https://github.com/qemu/qemu/commit/ce14f24611aa0469b464a9512e192b4fd51dca2b
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/dma/xlnx_csu_dma.c
Log Message:
-----------
hw/dma/xlnx_csu_dma: skip automatic zero-init of large array
The 'xlnx_csu_dma_src_notify' method has a 4k byte array used for
copying DMA data. Skip the automatic zero-init of this array to
eliminate the performance overhead in the I/O hot path.
The 'buf' array will be fully initialized when data is copied.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 7048e70f391df76d009eecca25f8027858f9f304
https://github.com/qemu/qemu/commit/7048e70f391df76d009eecca25f8027858f9f304
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/display/vmware_vga.c
Log Message:
-----------
hw/display/vmware_vga: skip automatic zero-init of large struct
The 'vmsvga_fifo_run' method has a struct which is a little over 20k
in size, used for holding image data for cursor changes. Skip the
automatic zero-init of this struct to eliminate the performance
overhead in the I/O hot path.
The cursor variable will be fully initialized only when processing
a cursor definition message from the guest.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 5a1f614d0cd0bcc8e84e0b7ab6af63d56bd348a2
https://github.com/qemu/qemu/commit/5a1f614d0cd0bcc8e84e0b7ab6af63d56bd348a2
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/hyperv/syndbg.c
Log Message:
-----------
hw/hyperv/syndbg: skip automatic zero-init of large array
The 'handle_recv_msg' method has a 4k byte array used for copying
data between the network socket and guest memory. Skip the automatic
zero-init of this array to eliminate the performance overhead in the
I/O hot path.
The 'data_buf' array will be fully initialized when data is read
off the network socket.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 6992c886838282f36b20deee44b666bbfc573a8f
https://github.com/qemu/qemu/commit/6992c886838282f36b20deee44b666bbfc573a8f
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/misc/aspeed_hace.c
Log Message:
-----------
hw/misc/aspeed_hace: skip automatic zero-init of large array
The 'do_hash_operation' method has a 256 element iovec array used for
holding pointers to data that is to be hashed. Skip the automatic
zero-init of this array to eliminate the performance overhead in the
I/O hot path.
The 'iovec' array will be selectively initialized based on data that
needs to be hashed.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 3ccc6489dd4925ddd1f3066bd3751389169cd7aa
https://github.com/qemu/qemu/commit/3ccc6489dd4925ddd1f3066bd3751389169cd7aa
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/net/rtl8139.c
Log Message:
-----------
hw/net/rtl8139: skip automatic zero-init of large array
The 'rtl8139_transmit_one' method has a 8k byte array used for
copying data between guest and host. Skip the automatic zero-init
of this array to eliminate the performance overhead in the I/O
hot path.
The 'txbuffer' will be fully initialized when reading PCI DMA
buffers.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: e1afd5ee6eb2954f4baf3c97820e4aaf7de97d2a
https://github.com/qemu/qemu/commit/e1afd5ee6eb2954f4baf3c97820e4aaf7de97d2a
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/net/tulip.c
Log Message:
-----------
hw/net/tulip: skip automatic zero-init of large array
The 'tulip_setup_frame' method has a 4k byte array used for copynig
DMA data from the device. Skip the automatic zero-init of this array
to eliminate the performance overhead in the I/O hot path.
The 'buf' array will be fully initialized when reading data from the
device.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 21cf31c51a7aeff4270c9b30b37e019c536d54b2
https://github.com/qemu/qemu/commit/21cf31c51a7aeff4270c9b30b37e019c536d54b2
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/net/virtio-net.c
Log Message:
-----------
hw/net/virtio-net: skip automatic zero-init of large arrays
The 'virtio_net_receive_rcu' method has three arrays with
VIRTQUEUE_MAX_SIZE elements, which are apprixmately 32k in
size used for copying data between guest and host. Skip the
automatic zero-init of these arrays to eliminate the
performance overhead in the I/O hot path.
The three arrays will be selectively initialized as required
when processing network buffers.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 8b723287b84a62bb5d1a7799ef0959ca8e6c293a
https://github.com/qemu/qemu/commit/8b723287b84a62bb5d1a7799ef0959ca8e6c293a
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/net/xgmac.c
Log Message:
-----------
hw/net/xgamc: skip automatic zero-init of large array
The 'xgmac_enet_send' method has a 8k byte array used for copying
data between guest and host. Skip the automatic zero-init of this
array to eliminate the performance overhead in the I/O hot path.
The 'frame' buffer will be fully initialized when reading guest
memory to fetch the data to send.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 7eeb1d3acc175813ad3d5e824f26123e0992093a
https://github.com/qemu/qemu/commit/7eeb1d3acc175813ad3d5e824f26123e0992093a
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/nvme/ctrl.c
Log Message:
-----------
hw/nvme/ctrl: skip automatic zero-init of large arrays
The 'nvme_map_sgl' method has a 256 element array used for copying
data from the device. Skip the automatic zero-init of this array
to eliminate the performance overhead in the I/O hot path.
The 'segment' array will be fully initialized when reading data from
the device.
The 'nme_changed_nslist' method has a 4k byte array that is manually
initialized with memset(). The compiler ought to be intelligent
enough to turn the memset() into a static initialization operation,
and thus not duplicate the automatic zero-init. Replacing memset()
with '{}' makes it unambiguous that the array is statically initialized.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Klaus Jensen <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 3438eabaf4f8ae58b6c47f1727938d1d7dac4823
https://github.com/qemu/qemu/commit/3438eabaf4f8ae58b6c47f1727938d1d7dac4823
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/ppc/pnv_occ.c
Log Message:
-----------
hw/ppc/pnv_occ: skip automatic zero-init of large struct
The 'occ_model_tick' method has a 12k struct used for copying
data between guest and host. Skip the automatic zero-init of this
struct to eliminate the performance overhead in the I/O hot path.
The 'dynamic_data' buffer will be fully initialized when reading
data from the guest.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Klaus Jensen <[email protected]>
Reviewed-by: Harsh Prateek Bora <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 5dd9087fff74b5672526cad254e76f790fb35c7a
https://github.com/qemu/qemu/commit/5dd9087fff74b5672526cad254e76f790fb35c7a
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/ppc/spapr_tpm_proxy.c
Log Message:
-----------
hw/ppc/spapr_tpm_proxy: skip automatic zero-init of large arrays
The 'tpm_execute' method has a pair of 4k arrays used for copying
data between guest and host. Skip the automatic zero-init of these
arrays to eliminate the performance overhead in the I/O hot path.
The two arrays will be fully initialized when reading data from
guest memory or reading data from the proxy FD.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Klaus Jensen <[email protected]>
Reviewed-by: Harsh Prateek Bora <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 14997d521d1cd0bb36c902ef1032f0d3f2a3c912
https://github.com/qemu/qemu/commit/14997d521d1cd0bb36c902ef1032f0d3f2a3c912
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/usb/hcd-ohci.c
Log Message:
-----------
hw/usb/hcd-ohci: skip automatic zero-init of large array
The 'ohci_service_iso_td' method has a 8k byte array used for copying
data between guest and host. Skip the automatic zero-init of this
array to eliminate the performance overhead in the I/O hot path.
The 'buf' array will be fully initialized when reading data from guest
memory.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Klaus Jensen <[email protected]>
Reviewed-by: Harsh Prateek Bora <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 55243edf42ee87bce9f36ca251f3ab9cda1563e4
https://github.com/qemu/qemu/commit/55243edf42ee87bce9f36ca251f3ab9cda1563e4
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/scsi/lsi53c895a.c
Log Message:
-----------
hw/scsi/lsi53c895a: skip automatic zero-init of large array
The 'lsi_memcpy' method has a 4k byte array used for copying data
to/from the device. Skip the automatic zero-init of this array to
eliminate the performance overhead in the I/O hot path.
The 'buf' array will be fully initialized when data is copied.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Klaus Jensen <[email protected]>
Reviewed-by: Harsh Prateek Bora <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: ca0559e2350c618048f7caf80cb79c1259e7cfd2
https://github.com/qemu/qemu/commit/ca0559e2350c618048f7caf80cb79c1259e7cfd2
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/scsi/megasas.c
Log Message:
-----------
hw/scsi/megasas: skip automatic zero-init of large arrays
The 'megasas_dcmd_pd_get_list' and 'megasas_dcmd_get_properties'
methods have 4k structs used for copying data from the device.
Skip the automatic zero-init of this array to eliminate the
performance overhead in the I/O hot path.
The 'info' structs are manually initialized with memset(). The
compiler ought to be intelligent enough to turn the memset()
into a static initialization operation, and thus not duplicate
the automatic zero-init. Replacing memset() with '{}' makes it
unambiguous that the arrays are statically initialized.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Klaus Jensen <[email protected]>
Reviewed-by: Harsh Prateek Bora <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 7708e298180550eac262c1fd742e6e80c711a5d8
https://github.com/qemu/qemu/commit/7708e298180550eac262c1fd742e6e80c711a5d8
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M hw/ufs/lu.c
Log Message:
-----------
hw/ufs/lu: skip automatic zero-init of large array
The 'ufs_emulate_scsi_cmd' method has a 4k byte array used for
copying data from the device. Skip the automatic zero-init of
this array to eliminate the performance overhead in the I/O hot
path.
The 'outbuf' array will be fully initialized when data is copied
from the guest.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Klaus Jensen <[email protected]>
Reviewed-by: Harsh Prateek Bora <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 751b0e79f1e0e7f88fad2fe2f22595ad03d78859
https://github.com/qemu/qemu/commit/751b0e79f1e0e7f88fad2fe2f22595ad03d78859
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M net/socket.c
Log Message:
-----------
net/socket: skip automatic zero-init of large array
The 'net_socket_send' method has a 68k byte array used for copying
data between guest and host. Skip the automatic zero-init of this
array to eliminate the performance overhead in the I/O hot path.
The 'buf1' array will be fully initialized when reading data off
the network socket.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Klaus Jensen <[email protected]>
Reviewed-by: Harsh Prateek Bora <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 837b87c4c5ba9ac7a255133c6642b8d578272a70
https://github.com/qemu/qemu/commit/837b87c4c5ba9ac7a255133c6642b8d578272a70
Author: Daniel P. Berrangé <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M net/stream.c
Log Message:
-----------
net/stream: skip automatic zero-init of large array
The 'net_stream_send' method has a 68k byte array used for copying
data between guest and host. Skip the automatic zero-init of this
array to eliminate the performance overhead in the I/O hot path.
The 'buf1' array will be fully initialized when reading data off
the network socket.
Signed-off-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Klaus Jensen <[email protected]>
Reviewed-by: Harsh Prateek Bora <[email protected]>
Message-id: [email protected]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 41456529ccc60430eff3dfe41a22bc7ae91a5a38
https://github.com/qemu/qemu/commit/41456529ccc60430eff3dfe41a22bc7ae91a5a38
Author: oltolm <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M contrib/plugins/meson.build
M plugins/meson.build
M scripts/tracetool/__init__.py
M scripts/tracetool/backend/ftrace.py
M scripts/tracetool/backend/log.py
M scripts/tracetool/backend/syslog.py
M tests/functional/meson.build
M tests/include/meson.build
M tests/tcg/plugins/meson.build
M trace/meson.build
Log Message:
-----------
meson: fix Windows build
The build fails on Windows. Replace calls to Unix programs like ´cat´,
´sed´ and ´true´ with calls to ´python´ and wrap calls to
´os.path.relpath´ in try-except because it can fail when the two paths
are on different drives. Make sure to convert the Windows paths to Unix
paths to prevent warnings in generated files.
Signed-off-by: oltolm <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Acked-by: Alex Bennée <[email protected]>
Message-id: [email protected]
[Edit commit description based on suggestions from BALATON Zoltan
<[email protected]> and Peter Maydell <[email protected]>
--Stefan]
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: a6f02277595136832c9e9bcaf447ab574f7b1128
https://github.com/qemu/qemu/commit/a6f02277595136832c9e9bcaf447ab574f7b1128
Author: Stefan Hajnoczi <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M block/linux-aio.c
M chardev/char-fd.c
M chardev/char-pty.c
M chardev/char-socket.c
M hw/audio/ac97.c
M hw/audio/cs4231a.c
M hw/audio/es1370.c
M hw/audio/gus.c
M hw/audio/marvell_88w8618.c
M hw/audio/sb16.c
M hw/audio/via-ac97.c
M hw/char/sclpconsole-lm.c
M hw/display/vmware_vga.c
M hw/dma/xlnx_csu_dma.c
M hw/hyperv/syndbg.c
M hw/misc/aspeed_hace.c
M hw/net/rtl8139.c
M hw/net/tulip.c
M hw/net/virtio-net.c
M hw/net/xgmac.c
M hw/nvme/ctrl.c
M hw/ppc/pnv_occ.c
M hw/ppc/spapr_tpm_proxy.c
M hw/scsi/lsi53c895a.c
M hw/scsi/megasas.c
M hw/ufs/lu.c
M hw/usb/hcd-ohci.c
M hw/virtio/virtio.c
M include/qemu/compiler.h
M net/socket.c
M net/stream.c
Log Message:
-----------
Merge tag 'block-pull-request' of https://gitlab.com/stefanha/qemu into
staging
Pull request
v2:
- Fix incorrect hw/audio/gus commit message
# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCgAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmhLETkACgkQnKSrs4Gr
# c8hvmQf/Rtc605hI3loERIv62n3m16oI3bwMdB3RvqIlQMc1Nk539Y4UCgd1jx7k
# S4WEFCdu3EJG0Y21kcyBjyN+CHYfjtfNQYdPwkJC+kGwU1GlX5iRSdoiSK8RWMUg
# +1Cnq4K3gc0LNZjYoxgQCddhuo5wP4oonw+glCoGqa3crF7aOmje28GLTyxUn4IB
# 3tE+fO6CNlXeX+AMeHZEAJCz5p0rQ/o+LbkmQ/INnqaF75pw/5QDUEYnluyB2zEe
# IS7ZQuYtytLWSGD0bmCQDWIHf7/2rBDI4c/kZHuQBV+KbbP+DG39Xe/0IWdUwfl/
# BTlffUzhQipZU07o+YnKm+Al7w2TIA==
# =LTAj
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 12 Jun 2025 13:41:13 EDT
# gpg: using RSA key 8695A8BFD3F97CDAAC35775A9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <[email protected]>" [ultimate]
# gpg: aka "Stefan Hajnoczi <[email protected]>" [ultimate]
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8
* tag 'block-pull-request' of https://gitlab.com/stefanha/qemu: (31 commits)
net/stream: skip automatic zero-init of large array
net/socket: skip automatic zero-init of large array
hw/ufs/lu: skip automatic zero-init of large array
hw/scsi/megasas: skip automatic zero-init of large arrays
hw/scsi/lsi53c895a: skip automatic zero-init of large array
hw/usb/hcd-ohci: skip automatic zero-init of large array
hw/ppc/spapr_tpm_proxy: skip automatic zero-init of large arrays
hw/ppc/pnv_occ: skip automatic zero-init of large struct
hw/nvme/ctrl: skip automatic zero-init of large arrays
hw/net/xgamc: skip automatic zero-init of large array
hw/net/virtio-net: skip automatic zero-init of large arrays
hw/net/tulip: skip automatic zero-init of large array
hw/net/rtl8139: skip automatic zero-init of large array
hw/misc/aspeed_hace: skip automatic zero-init of large array
hw/hyperv/syndbg: skip automatic zero-init of large array
hw/display/vmware_vga: skip automatic zero-init of large struct
hw/dma/xlnx_csu_dma: skip automatic zero-init of large array
hw/char/sclpconsole-lm: skip automatic zero-init of large array
hw/audio/via-ac97: skip automatic zero-init of large array
hw/audio/sb16: skip automatic zero-init of large array
...
Signed-off-by: Stefan Hajnoczi <[email protected]>
Commit: 4dcd81dca3693044db8b6ca4904b1ac0f954179a
https://github.com/qemu/qemu/commit/4dcd81dca3693044db8b6ca4904b1ac0f954179a
Author: Stefan Hajnoczi <[email protected]>
Date: 2025-06-12 (Thu, 12 Jun 2025)
Changed paths:
M contrib/plugins/meson.build
M plugins/meson.build
M scripts/tracetool/__init__.py
M scripts/tracetool/backend/ftrace.py
M scripts/tracetool/backend/log.py
M scripts/tracetool/backend/syslog.py
M tests/functional/meson.build
M tests/include/meson.build
M tests/tcg/plugins/meson.build
M trace/meson.build
Log Message:
-----------
Merge tag 'tracing-pull-request' of https://gitlab.com/stefanha/qemu into
staging
Pull request
v2:
- Edit commit description [Zoltan & Peter]
# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCgAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmhLE+YACgkQnKSrs4Gr
# c8hERQgAuxKM/NflzQ9W7p6KC00/NJE7alfffqzngbQvTSy57OK3Yqo3zicM4BnQ
# eb+rhuYMNkHUASqHXc/opdwOH3SAPAlJu9wRxSIgqzaSK2a7C0bEEvfECIsqSVpG
# rYTV7k579veJ0S7DLJLDJhHAVrg8Nbq9UMTwCZ4ZUWquyX2oixnv6kHzLlmgHESl
# WVIuxVcq9Yk11mRhiUkeiGLGJ/lQeKYUCsqkne2r5n2iFwDa8W4Q5zZ0Gzf7yLEv
# tXzQtY9dV1GYn4QSL42cK5vj81qLMVThcppBcENQtlg2FRvt1gWw6pw2lBML93j2
# s30PneW6oHDROgWyQAJImr+XTQYbRw==
# =VzN5
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 12 Jun 2025 13:52:38 EDT
# gpg: using RSA key 8695A8BFD3F97CDAAC35775A9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <[email protected]>" [ultimate]
# gpg: aka "Stefan Hajnoczi <[email protected]>" [ultimate]
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8
* tag 'tracing-pull-request' of https://gitlab.com/stefanha/qemu:
meson: fix Windows build
Signed-off-by: Stefan Hajnoczi <[email protected]>
Compare: https://github.com/qemu/qemu/compare/8055b6a9a116...4dcd81dca369
To unsubscribe from these emails, change your notification settings at
https://github.com/qemu/qemu/settings/notifications