On Tue Jun 3, 2025 at 1:04 AM CEST, Alan Adamson wrote: > This patch set is a follow on to commit ebd1568fc732 ("hw/nvme: add atomic > write support"). These patches introduces two updates to the NVMe subsystem > in QEMU, > both aimed at enhancing atomic write support for namespaces. > > hw/nvme: enable ns atomic writes > -------------------------------- > This patch introduces support for namespace-specific atomic write parameters: > NAWUN > and NAWUPF, as defined by the NVMe specification. The atomic parameters are > utilized to guarantee that writes conforming to these boundaries will be > atomic, > improving data integrity for namespaces that require atomic operations. > > The patch introduces new NVMe QEMU parameters: > atomic.nawun (default: 0) > atomic.nawupf (default: 0) > atomic.nsfeat (default: off) > > The addition of atomic.nsfeat sets the Namespace Supported Atomic Boundary & > Power (NSABP) bit in the Identify Namespace Data Structure, enabling > namespace-specific > atomic write features. The patch also ensures that atomic write behavior > adheres to the > NACWU and NAWUPF parameters. > > hw/nvme: add atomic boundary support > ------------------------------------ > The second patch expands on the atomic write capabilities by adding support > for atomic > boundary parameters: NABO, NABSN, and NABSPF. These parameters define the > atomic > boundary size for writes and ensure that any writes crossing these boundaries > are > treated atomically, based on the AWUN and AWUPF values. > > The following parameters are added: > atomic.nabo (default: 0) > atomic.nabsn (default: 0) > atomic.nabspf (default: 0) > > If the atomic boundary is crossed, the writes are guaranteed to be atomic > only if their > size does not exceed the values defined by AWUN and AWUPF. This ensures that > larger > writes crossing atomic boundaries are not subject to partial updates, thereby > improving > the robustness of atomic operations across boundaries. > > See the NVMe Specification for more information. > > Alan Adamson (2): > hw/nvme: enable ns atomic writes > hw/nvme: add atomic boundary support > > hw/nvme/ctrl.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++ > hw/nvme/ns.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++ > hw/nvme/nvme.h | 14 ++++++++++ > 3 files changed, 164 insertions(+)
Follows the spec far as I can see. Read the code, seems good Reviewed-by: Jesper Wendel Devantier <f...@defmacro.it>