Open nufosmatic opened 3 years ago
[Bug Scrub] This is something that could be added to the SPDK env layer. We need to provide APIs to create an empty mempool and then functions to populate it with application-allocated memory. User then just needs to call spdk_mem_register on the memory used to populate the mempool.
Is there any consideration for making spdk_mempool_create() populate the data buffers from memory other than the mempool structures? Currently the socket_id is used to allocate memory for buffers and for data structures in the mem_pool.
Since the data structures are not touched by hardware, the data structures should be allocated from someplace other than the place the data buffers are allocated.
rte_mempool_create*() includes an "empty" and a "populate" that allow these memory structures to be allocated from other places.
Trying to operation across a NTB, and the data structures for the NTB-translated buffers end up on the other side. Very unhappy.
Suggest spdk_mempool_create_populate() with an additional parameter "socket_id_populate" from which the data buffers are populated.
Unfortunately, DPDK does not provide an exposure this way either, so some intermediate rte_mempool_create_populate() thingie has to be created.
SPDK 21.4 RH7.4 x86_64