mempool: add event callbacks
authorDmitry Kozlyuk <dkozlyuk@nvidia.com>
Mon, 18 Oct 2021 22:43:50 +0000 (01:43 +0300)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 19 Oct 2021 14:35:16 +0000 (16:35 +0200)
commitda2b9cb25e5fccee6bb76cc31cc593955e4a54bf
tree20b9752b02c17a8db70372c4ba3da18163abc2b9
parentd0db11a82609c0d2827ea8fd8ec8163e8655ba13
mempool: add event callbacks

Data path performance can benefit if the PMD knows which memory it will
need to handle in advance, before the first mbuf is sent to the PMD.
It is impractical, however, to consider all allocated memory for this
purpose. Most often mbuf memory comes from mempools that can come and
go. PMD can enumerate existing mempools on device start, but it also
needs to track creation and destruction of mempools after the forwarding
starts but before an mbuf from the new mempool is sent to the device.

Add an API to register callback for mempool life cycle events:
* rte_mempool_event_callback_register()
* rte_mempool_event_callback_unregister()
Currently tracked events are:
* RTE_MEMPOOL_EVENT_READY (after populating a mempool)
* RTE_MEMPOOL_EVENT_DESTROY (before freeing a mempool)
Provide a unit test for the new API.
The new API is internal, because it is primarily demanded by PMDs that
may need to deal with any mempools and do not control their creation,
while an application, on the other hand, knows which mempools it creates
and doesn't care about internal mempools PMDs might create.

Signed-off-by: Dmitry Kozlyuk <dkozlyuk@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
app/test/test_mempool.c
lib/mempool/rte_mempool.c
lib/mempool/rte_mempool.h
lib/mempool/version.map