50 lines
1.8 KiB
Diff
50 lines
1.8 KiB
Diff
From 03b3f8f230e30399e952c2c5eafde3efa7c015b3 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:52 +0100
|
|
Subject: [PATCH 15/31] hw/char/sclpconsole-lm: 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: [14/30] fca3dbfc00277d1c35ecdb65a56d26c95c8cb6bb
|
|
|
|
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é <berrange@redhat.com>
|
|
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
Message-id: 20250610123709.835102-15-berrange@redhat.com
|
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
(cherry picked from commit 8b1dac1ad57082611419b0e2f347acd96115d25f)
|
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
---
|
|
hw/char/sclpconsole-lm.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/hw/char/sclpconsole-lm.c b/hw/char/sclpconsole-lm.c
|
|
index 7719f438f6..19e64b92f6 100644
|
|
--- a/hw/char/sclpconsole-lm.c
|
|
+++ b/hw/char/sclpconsole-lm.c
|
|
@@ -214,7 +214,7 @@ static int process_mdb(SCLPEvent *event, MDBO *mdbo)
|
|
{
|
|
int rc;
|
|
int len;
|
|
- uint8_t buffer[SIZE_BUFFER];
|
|
+ QEMU_UNINITIALIZED uint8_t buffer[SIZE_BUFFER];
|
|
|
|
len = be16_to_cpu(mdbo->length);
|
|
len -= sizeof(mdbo->length) + sizeof(mdbo->type)
|
|
--
|
|
2.39.3
|
|
|