summary refs log tree commit diff stats
path: root/hw/ppc
diff options
context:
space:
mode:
authorDaniel P. Berrangé <berrange@redhat.com>2025-06-10 13:37:02 +0100
committerStefan Hajnoczi <stefanha@redhat.com>2025-06-12 13:40:16 -0400
commit3438eabaf4f8ae58b6c47f1727938d1d7dac4823 (patch)
tree3cd54d6ea9f0f653d37c111195381b92a8c0f48b /hw/ppc
parent7eeb1d3acc175813ad3d5e824f26123e0992093a (diff)
downloadfocaccia-qemu-3438eabaf4f8ae58b6c47f1727938d1d7dac4823.tar.gz
focaccia-qemu-3438eabaf4f8ae58b6c47f1727938d1d7dac4823.zip
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é <berrange@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
Message-id: 20250610123709.835102-25-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'hw/ppc')
-rw-r--r--hw/ppc/pnv_occ.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/ppc/pnv_occ.c b/hw/ppc/pnv_occ.c
index fa6f31cb8d..24b789c191 100644
--- a/hw/ppc/pnv_occ.c
+++ b/hw/ppc/pnv_occ.c
@@ -789,7 +789,7 @@ static bool occ_opal_process_command(PnvOCC *occ,
 
 static bool occ_model_tick(PnvOCC *occ)
 {
-    struct occ_dynamic_data dynamic_data;
+    QEMU_UNINITIALIZED struct occ_dynamic_data dynamic_data;
 
     if (!occ_read_dynamic_data(occ, &dynamic_data, NULL)) {
         /* Can't move OCC state field to safe because we can't map it! */