You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
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>
2 weeks ago
..
Kconfig kconfig: Add NVME to s390x machines 2 years ago
ctrl.c hw/nvme/ctrl: skip automatic zero-init of large arrays 2 weeks ago
dif.c include: Rename sysemu/ -> system/ 6 months ago
dif.h hw/nvme: 64-bit pi support 3 years ago
meson.build hw/nvme: Add NVMe NGUID property 1 year ago
nguid.c qdev: Rename PropertyInfo member @name to @type 4 months ago
ns.c qom: Have class_init() take a const data argument 2 months ago
nvme.h hw/nvme: fix attachment of private namespaces 3 months ago
subsys.c hw/nvme: fix nvme hotplugging 1 month ago
trace-events hw/nvme: i/o cmd set independent namespace data structure 8 months ago
trace.h