[dpdk-dev] [PATCH 3/5] common/dpaax: add library for PA VA translation table
Burakov, Anatoly
anatoly.burakov at intel.com
Tue Sep 25 15:51:31 CEST 2018
On 25-Sep-18 2:39 PM, Shreyansh Jain wrote:
> Hello Anatoly,
>
> On Tuesday 25 September 2018 06:58 PM, Burakov, Anatoly wrote:
>> On 25-Sep-18 1:54 PM, Shreyansh Jain wrote:
>>> A common library, valid for dpaaX drivers, which is used to maintain
>>> a local copy of PA->VA translations.
>>>
>>> In case of physical addressing mode (one of the option for FSLMC, and
>>> only option for DPAA bus), the addresses of descriptors Rx'd are
>>> physical. These need to be converted into equivalent VA for rte_mbuf
>>> and other similar calls.
>>>
>>> Using the rte_mem_virt2iova or rte_mem_virt2phy is expensive. This
>>> library is an attempt to reduce the overall cost associated with
>>> this translation.
>>>
>>> A small table is maintained, containing continuous entries
>>> representing a continguous physical range. Each of these entries
>>> stores the equivalent VA, which is fed during mempool creation, or
>>> memory allocation/deallocation callbacks.
>>>
>>> Signed-off-by: Shreyansh Jain <shreyansh.jain at nxp.com>
>>> ---
>>
>> Hi Shreyansh,
>>
>> So, basically, you're reimplementing old DPDK's memory view (storing
>> VA's in a PA-centric way). Makes sense :)
>
> Yes, and frankly, I couldn't come up with any other way.
>
>>
>> I should caution you that right now, external memory allocator
>> implementation does *not* trigger any callbacks for newly added
>> memory. So, anything coming from external memory will not be reflected
>> in your table, unless it happens to be already there before
>> dpaax_iova_table_populate() gets called. This patchset makes a good
>> argument for why perhaps it should trigger callbacks. Thoughts?
>
> Oh. Then I must be finishing reading through your patches for external
> memory sooner. I didn't realize this.
To be clear, the current implementation of external memory allocators is
not necessarily final - it's not too late to add callbacks to enable
your use case better, if that's required (and it should be pretty easy
to implement as well).
--
Thanks,
Anatoly
More information about the dev
mailing list