qemu/hw/nvme
Daniel P. Berrangé 7eeb1d3acc hw/nvme/ctrl: skip automatic zero-init of large arrays
The 'nvme_map_sgl' method has a 256 element array used for copying
data from the device. Skip the automatic zero-init of this array
to eliminate the performance overhead in the I/O hot path.

The 'segment' array will be fully initialized when reading data from
the device.

The 'nme_changed_nslist' method has a 4k byte array that is manually
initialized with memset(). The compiler ought to be intelligent
enough to turn the memset() into a static initialization operation,
and thus not duplicate the automatic zero-init. Replacing memset()
with '{}' makes it unambiguous that the array is statically initialized.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Message-id: 20250610123709.835102-24-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2025-06-12 13:40:16 -04:00
..
ctrl.c hw/nvme/ctrl: skip automatic zero-init of large arrays 2025-06-12 13:40:16 -04:00
dif.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
dif.h hw/nvme: 64-bit pi support 2022-03-03 09:30:21 +01:00
Kconfig kconfig: Add NVME to s390x machines 2023-09-12 12:07:16 +02:00
meson.build hw/nvme: Add NVMe NGUID property 2024-03-12 15:48:56 +01:00
nguid.c qdev: Rename PropertyInfo member @name to @type 2025-03-06 10:30:58 +01:00
ns.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
nvme.h hw/nvme: fix attachment of private namespaces 2025-04-08 20:46:10 +02:00
subsys.c hw/nvme: fix nvme hotplugging 2025-05-15 12:18:06 +02:00
trace-events hw/nvme: i/o cmd set independent namespace data structure 2024-11-04 19:09:45 +01:00
trace.h hw/nvme: move nvme emulation out of hw/block 2021-05-17 09:19:00 +02:00