]> git.ipfire.org Git - thirdparty/qemu.git/commit
hw/nvme/ctrl: skip automatic zero-init of large arrays
authorDaniel P. Berrangé <berrange@redhat.com>
Tue, 10 Jun 2025 12:37:01 +0000 (13:37 +0100)
committerStefan Hajnoczi <stefanha@redhat.com>
Thu, 12 Jun 2025 17:40:16 +0000 (13:40 -0400)
commit7eeb1d3acc175813ad3d5e824f26123e0992093a
treebc6520979fcbd5902d2fa3a9a868ea8a2c78fd37
parent8b723287b84a62bb5d1a7799ef0959ca8e6c293a
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>
hw/nvme/ctrl.c