On 17-Feb-19 6:18 AM, Shahaf Shuler wrote:
Thursday, February 14, 2019 6:20 PM, Burakov, Anatoly:
Subject: Re: [dpdk-dev] [PATCH 0/6] introduce DMA memory mapping for
external memory

On 14-Feb-19 1:28 PM, Shahaf Shuler wrote:
Thursday, February 14, 2019 12:19 PM, Burakov, Anatoly:
Subject: Re: [dpdk-dev] [PATCH 0/6] introduce DMA memory mapping for
external memory

On 13-Feb-19 7:24 PM, Shahaf Shuler wrote:
Wednesday, February 13, 2019 1:43 PM, Alejandro Lucero:
Subject: Re: [dpdk-dev] [PATCH 0/6] introduce DMA memory mapping
for external memory


[...]


If we are going to force all to use the extmem, then there is no need w/
this API. we can have the PMDs to register when the memory is registered.
We can just drop the vfio_dma_map APIs and that's it.


Well, whether we needed it or not is not really my call, but what i can say is
that using extmem_register is _necessary_ if you're going to use the PMD's.
You're right, we could just map memory for DMA at register time - that
would save one API call to get the memory working. It makes it a bit weird
semantically, but i think we can live with that :)

This was not my suggestion 😊. I don't think the register API should do the 
mapping as well.
My thoughts were on one of the two options:
1. have the series I propose here, and enable the user to work with memory 
managed outside of DPDK. Either force the user to call rte_extmem_register 
before the mapping or devices which needs memory to be also registered in the 
DPDK system can fail the mapping.
2. not providing such option to application, and forcing applications to 
populate a socket w/ external memory.

I vote for #1.

I too think #1 is better - we want this to be a valid use case. Allowing such usage in the first place is already gracious enough - all we ask in return is one extra API call, to politely let DPDK know that this memory exists and is going to be used for DMA :)

Also, having the memory registered will also allow us to refuse mapping if it cannot be found in DPDK maps - if rte_virt2memseg returns NULL, that means extmem_register was not called. I.e. we can _enforce_ usage of extmem_register, which i believe is a good thing for usability.



--
Thanks,
Anatoly


--
Thanks,
Anatoly

Reply via email to