summary refs log tree commit diff stats
path: root/chardev/char-fd.c
diff options
context:
space:
mode:
authorDaniel P. Berrangé <berrange@redhat.com>2025-06-10 13:36:42 +0100
committerStefan Hajnoczi <stefanha@redhat.com>2025-06-12 13:39:08 -0400
commita503bdc22b91869e3bf45522e36b122889465306 (patch)
treed4a07aceaf614c6ce86a2c23ee6f608d9ea993e9 /chardev/char-fd.c
parent83750c1da807c973b0b11d977d61df7e41122d03 (diff)
downloadfocaccia-qemu-a503bdc22b91869e3bf45522e36b122889465306.tar.gz
focaccia-qemu-a503bdc22b91869e3bf45522e36b122889465306.zip
chardev/char-fd: skip automatic zero-init of large array
The 'fd_chr_read' method has a 4k byte array used for copying
data between the socket and device. Skip the automatic zero-init
of this array to eliminate the performance overhead in the I/O
hot path.

The 'buf' array will be fully initialized when reading data off
the network socket.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20250610123709.835102-5-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'chardev/char-fd.c')
-rw-r--r--chardev/char-fd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/chardev/char-fd.c b/chardev/char-fd.c
index 23bfe3c0b1..6f03adf872 100644
--- a/chardev/char-fd.c
+++ b/chardev/char-fd.c
@@ -50,7 +50,7 @@ static gboolean fd_chr_read(QIOChannel *chan, GIOCondition cond, void *opaque)
     Chardev *chr = CHARDEV(opaque);
     FDChardev *s = FD_CHARDEV(opaque);
     int len;
-    uint8_t buf[CHR_READ_BUF_LEN];
+    QEMU_UNINITIALIZED uint8_t buf[CHR_READ_BUF_LEN];
     ssize_t ret;
 
     len = sizeof(buf);