From: Jesper Wendel Devantier <j.devant...@samsung.com> Flexible Data Placement (FDP) is a newly introduced enhancement of the NVM command set introduced by the NVM Express, Inc. organization as TP 4146. FDP aims to extend the NVM command set to enable host-guided data placement. FDP-enabled namespaces can be used as before, but writes may now reference a specific placement id which in turn points to a reclaim unit (RU). RUs are defined as some amount of physical, non-volatile storage which can be erased/reused/repurposed without disturbing any other reclaim units.
For further details on FDP, consult the specification, which is available as "TP4146 Flexible Data Placement 2022.11.30 Ratified.pdf" in the following link: https://nvmexpress.org/wp-content/uploads/NVM-Express-2.0-Ratified-TPs_20230111.zip The FDP work builds on 4 preparatory patches, chiefly to add support for endurance groups and directives. The final patch adds FDP support itself. Changelog: ========== * v2 -> v3: - remove unused trace points (Keith) - style nit - place '||' on preceding line (Keith) * v1 -> v2: - "hw/nvme: add fleible...": check that max 128 placement handles are being created (Keith) - removed unused NVMe directives struct (Keith) Gollu Appalanaidu (1): hw/nvme: basic directives support Jesper Devantier (1): hw/nvme: flexible data placement emulation Joel Granados (1): hw/nvme: move adjustment of data_units{read,written} Klaus Jensen (1): hw/nvme: add basic endurance group support Niklas Cassel (1): hw/nvme: store a pointer to the NvmeSubsystem in the NvmeNamespace hw/nvme/ctrl.c | 798 ++++++++++++++++++++++++++++++++++++++++++- hw/nvme/ns.c | 147 ++++++++ hw/nvme/nvme.h | 92 ++++- hw/nvme/subsys.c | 94 ++++- hw/nvme/trace-events | 1 + include/block/nvme.h | 236 ++++++++++++- 6 files changed, 1341 insertions(+), 27 deletions(-) -- 2.39.2