[dpdk-dev] [PATCH 5/5] mempool: prevent objects from being across pages

Andrew Rybchenko arybchenko at solarflare.com
Wed Oct 30 08:56:36 CET 2019


On 10/29/19 8:34 PM, Olivier Matz wrote:
> On Tue, Oct 29, 2019 at 01:59:00PM +0300, Andrew Rybchenko wrote:
>> On 10/28/19 5:01 PM, Olivier Matz wrote:
>>> When populating a mempool, ensure that objects are not located across
>>> several pages, except if user did not request iova contiguous objects.
>> I think it breaks distribution across memory channels which could
>> affect performance significantly.
> With 2M hugepages, there are ~900 mbufs per page, and all of them will
> be distributed across memory channels. For larger objects, I don't think
> the distribution is that important.

Yes, that's true. I was thinking about the case when page is smaller.

> With small pages, that may be true. I think the problem was already
> there except in IOVA=VA mode.

I don't know any good real examples. In theory before even
small pages could be merged together and populated as one big
chunk. Right now merging does not make sense since page boundaries
will be respected by default anyway.

> This should be fixable, but I'm not sure a use-case where we can see a
> regression really exists.

Agreed. If total object size allows it, it is possible to spread
offset from page boundary.

I don't know either if it is critical or not.



More information about the dev mailing list