Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 6f0273d6ae21bb2e4222789af0e6d480aa9430b1
      
https://github.com/qemu/qemu/commit/6f0273d6ae21bb2e4222789af0e6d480aa9430b1
  Author: Konstantin Kostiuk <kkost...@redhat.com>
  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é <berra...@redhat.com>
Tested-by: Dehan Meng <dem...@redhat.com>
Reviewed-by: Yan Vugenfirer <yvuge...@redhat.com>
Signed-off-by: Konstantin Kostiuk <kkost...@redhat.com>


  Commit: 1ebbc8b774d8b44697740b108ad060612828b58f
      
https://github.com/qemu/qemu/commit/1ebbc8b774d8b44697740b108ad060612828b58f
  Author: Konstantin Kostiuk <kkost...@redhat.com>
  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 <dem...@redhat.com>
Reviewed-by: Yan Vugenfirer <yvuge...@redhat.com>
Signed-off-by: Konstantin Kostiuk <kkost...@redhat.com>


  Commit: d2f0d2dc6c3f504fa1fb87b5fb5534430fa9b28a
      
https://github.com/qemu/qemu/commit/d2f0d2dc6c3f504fa1fb87b5fb5534430fa9b28a
  Author: Stefan Hajnoczi <stefa...@redhat.com>
  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) 
<kkost...@redhat.com>" [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 <stefa...@redhat.com>


  Commit: c653b67d1863b7ebfa67f7c9f4aec209d7b5ced5
      
https://github.com/qemu/qemu/commit/c653b67d1863b7ebfa67f7c9f4aec209d7b5ced5
  Author: Stefan Hajnoczi <stefa...@redhat.com>
  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 <stefa...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Daniel P. Berrangé <berra...@redhat.com>
Message-id: 20250610123709.835102-2-berra...@redhat.com
[DB: split off patch & rewrite guidance on when to use the annotation]
Signed-off-by: Daniel P. Berrangé <berra...@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: ba2868ce091cd4abe4be6de4b7e44b3be303b352
      
https://github.com/qemu/qemu/commit/ba2868ce091cd4abe4be6de4b7e44b3be303b352
  Author: Stefan Hajnoczi <stefa...@redhat.com>
  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é <berra...@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-3-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 83750c1da807c973b0b11d977d61df7e41122d03
      
https://github.com/qemu/qemu/commit/83750c1da807c973b0b11d977d61df7e41122d03
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-4-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: a503bdc22b91869e3bf45522e36b122889465306
      
https://github.com/qemu/qemu/commit/a503bdc22b91869e3bf45522e36b122889465306
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-5-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 45bb7fb21c8d18294a9f92da99d01ab3c67c7df2
      
https://github.com/qemu/qemu/commit/45bb7fb21c8d18294a9f92da99d01ab3c67c7df2
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-6-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 9a23075cef1ac6e73a95a489ac72f41c573ceb9b
      
https://github.com/qemu/qemu/commit/9a23075cef1ac6e73a95a489ac72f41c573ceb9b
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-7-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 2553d2d26a9d0f46386bf8c37d184567e5cede6c
      
https://github.com/qemu/qemu/commit/2553d2d26a9d0f46386bf8c37d184567e5cede6c
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-8-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: ca2cc0385d97cea66cd54ee42553f385c403d4a6
      
https://github.com/qemu/qemu/commit/ca2cc0385d97cea66cd54ee42553f385c403d4a6
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-9-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 8236e206084b832d1d7ec947a4798b818f4cdf1f
      
https://github.com/qemu/qemu/commit/8236e206084b832d1d7ec947a4798b818f4cdf1f
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-10-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 2e438da4929018c62609381e1156aac0b2fe3de3
      
https://github.com/qemu/qemu/commit/2e438da4929018c62609381e1156aac0b2fe3de3
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-11-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 5b6cd5c5df4229972d8a0fd9dd9a089a1644d6ba
      
https://github.com/qemu/qemu/commit/5b6cd5c5df4229972d8a0fd9dd9a089a1644d6ba
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-12-berra...@redhat.com
[Fixed hw/audio/gus in commit message --Stefan]
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 30c82f6657c1ee9fbb5473924b4d3273f214bd6f
      
https://github.com/qemu/qemu/commit/30c82f6657c1ee9fbb5473924b4d3273f214bd6f
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-13-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: bb71d9fe1419f44529c91d1b09464718d157e647
      
https://github.com/qemu/qemu/commit/bb71d9fe1419f44529c91d1b09464718d157e647
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-14-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 8b1dac1ad57082611419b0e2f347acd96115d25f
      
https://github.com/qemu/qemu/commit/8b1dac1ad57082611419b0e2f347acd96115d25f
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-15-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: ce14f24611aa0469b464a9512e192b4fd51dca2b
      
https://github.com/qemu/qemu/commit/ce14f24611aa0469b464a9512e192b4fd51dca2b
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-16-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 7048e70f391df76d009eecca25f8027858f9f304
      
https://github.com/qemu/qemu/commit/7048e70f391df76d009eecca25f8027858f9f304
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-17-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 5a1f614d0cd0bcc8e84e0b7ab6af63d56bd348a2
      
https://github.com/qemu/qemu/commit/5a1f614d0cd0bcc8e84e0b7ab6af63d56bd348a2
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-18-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 6992c886838282f36b20deee44b666bbfc573a8f
      
https://github.com/qemu/qemu/commit/6992c886838282f36b20deee44b666bbfc573a8f
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-19-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 3ccc6489dd4925ddd1f3066bd3751389169cd7aa
      
https://github.com/qemu/qemu/commit/3ccc6489dd4925ddd1f3066bd3751389169cd7aa
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-20-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: e1afd5ee6eb2954f4baf3c97820e4aaf7de97d2a
      
https://github.com/qemu/qemu/commit/e1afd5ee6eb2954f4baf3c97820e4aaf7de97d2a
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-21-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 21cf31c51a7aeff4270c9b30b37e019c536d54b2
      
https://github.com/qemu/qemu/commit/21cf31c51a7aeff4270c9b30b37e019c536d54b2
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-22-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 8b723287b84a62bb5d1a7799ef0959ca8e6c293a
      
https://github.com/qemu/qemu/commit/8b723287b84a62bb5d1a7799ef0959ca8e6c293a
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 20250610123709.835102-23-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 7eeb1d3acc175813ad3d5e824f26123e0992093a
      
https://github.com/qemu/qemu/commit/7eeb1d3acc175813ad3d5e824f26123e0992093a
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Klaus Jensen <k.jen...@samsung.com>
Message-id: 20250610123709.835102-24-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 3438eabaf4f8ae58b6c47f1727938d1d7dac4823
      
https://github.com/qemu/qemu/commit/3438eabaf4f8ae58b6c47f1727938d1d7dac4823
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Klaus Jensen <k.jen...@samsung.com>
Reviewed-by: Harsh Prateek Bora <hars...@linux.ibm.com>
Message-id: 20250610123709.835102-25-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 5dd9087fff74b5672526cad254e76f790fb35c7a
      
https://github.com/qemu/qemu/commit/5dd9087fff74b5672526cad254e76f790fb35c7a
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Klaus Jensen <k.jen...@samsung.com>
Reviewed-by: Harsh Prateek Bora <hars...@linux.ibm.com>
Message-id: 20250610123709.835102-26-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 14997d521d1cd0bb36c902ef1032f0d3f2a3c912
      
https://github.com/qemu/qemu/commit/14997d521d1cd0bb36c902ef1032f0d3f2a3c912
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Klaus Jensen <k.jen...@samsung.com>
Reviewed-by: Harsh Prateek Bora <hars...@linux.ibm.com>
Message-id: 20250610123709.835102-27-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 55243edf42ee87bce9f36ca251f3ab9cda1563e4
      
https://github.com/qemu/qemu/commit/55243edf42ee87bce9f36ca251f3ab9cda1563e4
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Klaus Jensen <k.jen...@samsung.com>
Reviewed-by: Harsh Prateek Bora <hars...@linux.ibm.com>
Message-id: 20250610123709.835102-28-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: ca0559e2350c618048f7caf80cb79c1259e7cfd2
      
https://github.com/qemu/qemu/commit/ca0559e2350c618048f7caf80cb79c1259e7cfd2
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Klaus Jensen <k.jen...@samsung.com>
Reviewed-by: Harsh Prateek Bora <hars...@linux.ibm.com>
Message-id: 20250610123709.835102-29-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 7708e298180550eac262c1fd742e6e80c711a5d8
      
https://github.com/qemu/qemu/commit/7708e298180550eac262c1fd742e6e80c711a5d8
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Klaus Jensen <k.jen...@samsung.com>
Reviewed-by: Harsh Prateek Bora <hars...@linux.ibm.com>
Message-id: 20250610123709.835102-30-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 751b0e79f1e0e7f88fad2fe2f22595ad03d78859
      
https://github.com/qemu/qemu/commit/751b0e79f1e0e7f88fad2fe2f22595ad03d78859
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Klaus Jensen <k.jen...@samsung.com>
Reviewed-by: Harsh Prateek Bora <hars...@linux.ibm.com>
Message-id: 20250610123709.835102-31-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: 837b87c4c5ba9ac7a255133c6642b8d578272a70
      
https://github.com/qemu/qemu/commit/837b87c4c5ba9ac7a255133c6642b8d578272a70
  Author: Daniel P. Berrangé <berra...@redhat.com>
  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é <berra...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Klaus Jensen <k.jen...@samsung.com>
Reviewed-by: Harsh Prateek Bora <hars...@linux.ibm.com>
Message-id: 20250610123709.835102-32-berra...@redhat.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>


  Commit: a6f02277595136832c9e9bcaf447ab574f7b1128
      
https://github.com/qemu/qemu/commit/a6f02277595136832c9e9bcaf447ab574f7b1128
  Author: Stefan Hajnoczi <stefa...@redhat.com>
  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 <stefa...@redhat.com>" [ultimate]
# gpg:                 aka "Stefan Hajnoczi <stefa...@gmail.com>" [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 <stefa...@redhat.com>


Compare: https://github.com/qemu/qemu/compare/d9ce74873a6a...a6f022775951

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


Reply via email to