[dpdk-dev] [RFC 4/4] mempool: prevent objects from being across pages

Andrew Rybchenko arybchenko at solarflare.com
Tue Oct 29 12:03:28 CET 2019


On 10/28/19 5:07 PM, Olivier Matz wrote:
> On Wed, Aug 07, 2019 at 06:21:58PM +0300, Andrew Rybchenko wrote:
>> On 7/19/19 4:38 PM, Olivier Matz wrote:
>>> When using iova contiguous memory and objets smaller than page size,
>>> ensure that objects are not located across several pages.
>> It looks like as an attempt to make exception a generic rule and
>> I think it is not a good idea.
>>
>> mempool has a notion of IOVA contiguous/non-contiguous objects
>> depending if PA or VA. rte_mempool_op_populate_default() gets
>> a memory chunk which is contiguous in VA and, if iova is not bad,
>> IOVA-contiguous. The patch always enforces page boundaries even
>> if it is not required. For example, if memory chunk is IOVA_PA
>> contiguous, the patch could result in holes and extra memory usage
> Yes, it may increase memory usage, but the amount should be limited.
> On the other hand, the new patchset provides enhancements that will
> reduce the memory consumption.
>
> More importantly, it will fix the KNI + IOVA=VA issue. I also wonder if
> this problem couldn't happen in case IOVA=PA. Are there any guarantees
> that on all architectures a PA-contiguous in always VA-contiguous in the
> kernel?

I have no idea. The question is really interesting.
I hope it is true, otherwise we're in trouble since it is
assumed in the code as far as know.



More information about the dev mailing list