[dpdk-dev] What is the status of mempool manager?

Olivier MATZ olivier.matz at 6wind.com
Tue May 17 15:56:32 CEST 2016


Hi Jan,

On 05/17/2016 02:34 PM, Jan Viktorin wrote:
> Hello,
>
> I was trying to find out the status of the mempool rework and found
> this 36-pieces long patch set:
>
> http://dpdk.org/ml/archives/dev/2016-April/037464.html
>
> (I failed to apply it to 16.04, 2.1.0, current HEAD.)

It should be integrated soon, as there was no comment during
some time. I'll send a new version that applies on head
+ minor cosmetic changes.

> and some bits around:
>
> http://dpdk.org/ml/archives/dev/2016-May/038390.html

I need to review this one, it's on my todo list.

> http://dpdk.org/ml/archives/dev/2016-April/037509.html

I think the code is ready to be integrated, but I was expecting
some reactions on the v4, especially some precisions about the
use cases and the needs. See in the link "Things that should
still be discussed".

> http://dpdk.org/ml/archives/dev/2016-April/037457.html

It is integrated since today ;)

> http://dpdk.org/ml/archives/dev/2016-April/036979.html

Some comments have been done by Konstantin and myself, I
think a new version will be submitted. It will be integrated
in 16.07.

> ...but I am confused.
>
> I am trying to find out how to write a custom memory pool based on
> the uio_dmem_genirq driver. It provides DMA memory via the UIO API
> (maps).
>
> If I have a PMD running of top of this UIO, I need to implement a
> custom allocator that gets memory from the dev->mem_resource (with
> the mappings preloaded from the UIO by EAL).
>
> This is related to the SoC infra as given here:
>
> http://dpdk.org/ml/archives/dev/2016-May/038486.html
>
> Any idea how to start with this?

I think your feedback would be very valuable.

The "external mempool manager" series allows to register new
handler that replaces the internal ring storing the objects. It
does not change the way the memory is allocated.

The big patchset introduce new way of allocating memory used by
memory pool (no need to be virtually contiguous anymore). You
could throw an eye on rte_mempool_populate*() functions that
populate a mempool with memory for storing the objects.

I'm not sure I'm getting your exact needs.
Do you need to populate a ring-based mempool with specific memory,
retrieved from UIO API?
Do you need to replace the default internal ring by something else?
Do you need to access the mempool from the hardware?

Regards,
Olivier


More information about the dev mailing list