[SPDK] Inquiry about spdk_nvme_ns_cmd_dataset_management interface
Weifeng Su <[email protected]> Tue, 12 Sep 2023 20:19:02 +0800
| Newsgroups | dev.linux.lists.spdk |
|---|---|
| Message-ID | <[email protected]> |
Dear SPDK community members, I am a developer who has been using SPDK and I have been greatly interested in its functionality and performance. Recently, while studying the `spdk_nvme_ns_cmd_dataset_management` interface, I came across a question I would like to discuss with you and seek your insights. From my understanding, the `spdk_nvme_ns_cmd_dataset_management` interface is used for dataset management commands. I noticed that when executing this interface, it requires a repeated memory copy of the data to a buffer before performing the operation. However, deallocation (dealloc) is a frequent operation. I am curious to know why a zero-copy approach was not chosen in the implementation and whether it is possible to optimize it by utilizing large page memory. I believe that a zero-copy mechanism could potentially reduce the overhead of memory copies, especially for operations that involve frequent deallocation. By constraining the usage of large page memory, it could further enhance the efficiency of the interface. I would appreciate it if you could provide some insights into the design considerations behind the current memory copy-based approach and any potential plans for optimizing this particular interface. Additionally, if there are any best practices or guidelines for utilizing large page memory with SPDK, please kindly share them. Thank you for your time and attention. I look forward to hearing from you and learning more about the thoughts and future improvements regarding spdk_nvme_ns_cmd_dataset_management. Sincerely, Weifeng Su