[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 16/31] hw/display/vmware_vga: skip automatic zero-init of large st
From: |
Stefan Hajnoczi |
Subject: |
[PULL 16/31] hw/display/vmware_vga: skip automatic zero-init of large struct |
Date: |
Wed, 11 Jun 2025 14:25:18 -0400 |
From: Daniel P. Berrangé <berrange@redhat.com>
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é <berrange@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20250610123709.835102-17-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
hw/display/vmware_vga.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c
index 544bb65320..bc1a8ed466 100644
--- a/hw/display/vmware_vga.c
+++ b/hw/display/vmware_vga.c
@@ -618,7 +618,7 @@ static void vmsvga_fifo_run(struct vmsvga_state_s *s)
uint32_t cmd, colour;
int args, len, maxloop = 1024;
int x, y, dx, dy, width, height;
- struct vmsvga_cursor_definition_s cursor;
+ QEMU_UNINITIALIZED struct vmsvga_cursor_definition_s cursor;
uint32_t cmd_start;
len = vmsvga_fifo_length(s);
--
2.49.0
- [PULL 06/31] chardev/char-socket: skip automatic zero-init of large array, (continued)
- [PULL 06/31] chardev/char-socket: skip automatic zero-init of large array, Stefan Hajnoczi, 2025/06/11
- [PULL 08/31] hw/audio/cs4231a: skip automatic zero-init of large arrays, Stefan Hajnoczi, 2025/06/11
- [PULL 02/31] hw/virtio/virtio: avoid cost of -ftrivial-auto-var-init in hot path, Stefan Hajnoczi, 2025/06/11
- [PULL 09/31] hw/audio/es1370: skip automatic zero-init of large array, Stefan Hajnoczi, 2025/06/11
- [PULL 10/31] hw/audio/gus: skip automatic zero-init of large array, Stefan Hajnoczi, 2025/06/11
- [PULL 11/31] hw/audio/gus: skip automatic zero-init of large array, Stefan Hajnoczi, 2025/06/11
- [PULL 12/31] hw/audio/sb16: skip automatic zero-init of large array, Stefan Hajnoczi, 2025/06/11
- [PULL 15/31] hw/dma/xlnx_csu_dma: skip automatic zero-init of large array, Stefan Hajnoczi, 2025/06/11
- [PULL 13/31] hw/audio/via-ac97: skip automatic zero-init of large array, Stefan Hajnoczi, 2025/06/11
- [PULL 14/31] hw/char/sclpconsole-lm: skip automatic zero-init of large array, Stefan Hajnoczi, 2025/06/11
- [PULL 16/31] hw/display/vmware_vga: skip automatic zero-init of large struct,
Stefan Hajnoczi <=
- [PULL 17/31] hw/hyperv/syndbg: skip automatic zero-init of large array, Stefan Hajnoczi, 2025/06/11
- [PULL 18/31] hw/misc/aspeed_hace: skip automatic zero-init of large array, Stefan Hajnoczi, 2025/06/11
- [PULL 21/31] hw/net/virtio-net: skip automatic zero-init of large arrays, Stefan Hajnoczi, 2025/06/11
- [PULL 19/31] hw/net/rtl8139: skip automatic zero-init of large array, Stefan Hajnoczi, 2025/06/11
- [PULL 24/31] hw/ppc/pnv_occ: skip automatic zero-init of large struct, Stefan Hajnoczi, 2025/06/11
- [PULL 23/31] hw/nvme/ctrl: skip automatic zero-init of large arrays, Stefan Hajnoczi, 2025/06/11
- [PULL 31/31] net/stream: skip automatic zero-init of large array, Stefan Hajnoczi, 2025/06/11
- [PULL 22/31] hw/net/xgamc: skip automatic zero-init of large array, Stefan Hajnoczi, 2025/06/11
- [PULL 20/31] hw/net/tulip: skip automatic zero-init of large array, Stefan Hajnoczi, 2025/06/11
- [PULL 25/31] hw/ppc/spapr_tpm_proxy: skip automatic zero-init of large arrays, Stefan Hajnoczi, 2025/06/11