diff --git a/CHANGELOG.md b/CHANGELOG.md index 43d36ac21..67b98b9ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,8 @@ Added `spdk_nvme_qpair_get_optimal_poll_group` function and `qpair_get_optimal_p function pointer in spdk_nvmf_transport_ops structure in order to add the qpair to the most suitable polling group. +Add OPTPERF and namespace optimal performance fields to nvme_spec.h. + Added spdk_nvme_set_hotplug_filter API to allow applications to choose which hot-inserted SSDs should be probed. This is useful for use cases where multiple independent SPDK processes are running on one node. The filter function can diff --git a/include/spdk/nvme_spec.h b/include/spdk/nvme_spec.h index 362b98677..860b9eecb 100644 --- a/include/spdk/nvme_spec.h +++ b/include/spdk/nvme_spec.h @@ -2295,7 +2295,10 @@ struct spdk_nvme_ns_data { /** Non-zero NGUID and EUI64 for namespace are never reused */ uint8_t guid_never_reused : 1; - uint8_t reserved1 : 4; + /** Optimal Performance field */ + uint8_t optperf : 1; + + uint8_t reserved1 : 3; } nsfeat; /** number of lba formats */ @@ -2444,7 +2447,22 @@ struct spdk_nvme_ns_data { /** NVM capacity */ uint64_t nvmcap[2]; - uint8_t reserved64[28]; + /** Namespace Preferred Write Granularity */ + uint16_t npwg; + + /** Namespace Preferred Write Alignment */ + uint16_t npwa; + + /** Namespace Preferred Deallocate Granularity */ + uint16_t npdg; + + /** Namespace Preferred Deallocate Alignment */ + uint16_t npda; + + /** Namespace Optimal Write Size */ + uint16_t nows; + + uint8_t reserved64[18]; /** ANA group identifier */ uint32_t anagrpid;