50 lines
1.7 KiB
Diff
50 lines
1.7 KiB
Diff
From 180cb8f07e5a7a1c4bfe01709b27cbf8d080f1a8 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
|
Date: Tue, 10 Jun 2025 13:36:51 +0100
|
|
Subject: [PATCH 14/31] hw/audio/via-ac97: skip automatic zero-init of large
|
|
array
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
RH-Author: Stefan Hajnoczi <stefanha@redhat.com>
|
|
RH-MergeRequest: 461: Solve -ftrivial-auto-var-init performance regression with QEMU_UNINITIALIZED
|
|
RH-Jira: RHEL-99887
|
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
RH-Commit: [13/30] d27c1e2fbd89df34bde1248d1b053eca40625838
|
|
|
|
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é <berrange@redhat.com>
|
|
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
Message-id: 20250610123709.835102-14-berrange@redhat.com
|
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
(cherry picked from commit bb71d9fe1419f44529c91d1b09464718d157e647)
|
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
---
|
|
hw/audio/via-ac97.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/hw/audio/via-ac97.c b/hw/audio/via-ac97.c
|
|
index 4c127a1def..e8fcf44e5d 100644
|
|
--- a/hw/audio/via-ac97.c
|
|
+++ b/hw/audio/via-ac97.c
|
|
@@ -175,7 +175,7 @@ static void out_cb(void *opaque, int avail)
|
|
ViaAC97SGDChannel *c = &s->aur;
|
|
int temp, to_copy, copied;
|
|
bool stop = false;
|
|
- uint8_t tmpbuf[4096];
|
|
+ QEMU_UNINITIALIZED uint8_t tmpbuf[4096];
|
|
|
|
if (c->stat & STAT_PAUSED) {
|
|
return;
|
|
--
|
|
2.39.3
|
|
|