49 lines
1.7 KiB
Diff
49 lines
1.7 KiB
Diff
From 9f8ff1d0ef010b9c0339869f655ee9af6b10dcd5 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:41 +0100
|
|
Subject: [PATCH 04/31] block: skip automatic zero-init of large array in
|
|
ioq_submit
|
|
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: [3/30] 0a24695ab7f3a11ab61b12ae2b95bd45a7babc05
|
|
|
|
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é <berrange@redhat.com>
|
|
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
Message-id: 20250610123709.835102-4-berrange@redhat.com
|
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
(cherry picked from commit 83750c1da807c973b0b11d977d61df7e41122d03)
|
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
---
|
|
block/linux-aio.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/block/linux-aio.c b/block/linux-aio.c
|
|
index e3b5ec9aba..26d9f086d2 100644
|
|
--- a/block/linux-aio.c
|
|
+++ b/block/linux-aio.c
|
|
@@ -291,7 +291,7 @@ static void ioq_submit(LinuxAioState *s)
|
|
{
|
|
int ret, len;
|
|
struct qemu_laiocb *aiocb;
|
|
- struct iocb *iocbs[MAX_EVENTS];
|
|
+ QEMU_UNINITIALIZED struct iocb *iocbs[MAX_EVENTS];
|
|
QSIMPLEQ_HEAD(, qemu_laiocb) completed;
|
|
|
|
do {
|
|
--
|
|
2.39.3
|
|
|