[dpdk-dev] [PATCH v2 0/6] Infrastructure to support octeontx HW mempool manager

Santosh Shukla santosh.shukla at caviumnetworks.com
Thu Jul 13 11:32:49 CEST 2017


v2:
(Note: v2 work is based on deprecation notice [1], It's for 17.11)

In order to support octeontx HW mempool manager, the common mempool layer must
meet below condition.
- Object start address should be block size (total elem size) aligned.
- Object must have the physically contiguous address within the pool.

And right now mempool doesn't support both.

Patchset adds infrastrucure to support both condition in a _generic_ way.
Proposed solution won't effect existing mempool drivers or its functionality.

Summary:
Introducing capability flag. Now mempool drivers can advertise their
capabilities to common mempool layer(at the pool creation time).
Handlers are introduced in order to support capability flag.

Flags:
* MEMPOOL_F_CAPA_PHYS_CONTIG - If flag is set then Detect whether the object
has the physically contiguous address with in a hugepage.

* MEMPOOL_F_POOL_BLK_SZ_ALIGNED - If flag is set then make sure that object
addresses are block size aligned.

API:
Two handles are introduced:
* rte_mempool_ops_get_capability - advertise mempool manager capability.
* rte_mempool_ops_update_range - Update start and end address range to
HW mempool manager.

v2 --> v1 :
* [01/06] Per deprecation notice [1], Changed rte_mempool 'flag'
  data type from int to unsigned int and removed flag param
  from _xmem_size/usage api.
* [02/06] Incorporated review feedback from v1 [2] (Suggested by Olivier)
* [03/06] Renamed flag to MEMPOOL_F_CAPA_PHYS_CONTIG
  and comment reworded. (Suggested by Olivier per v1 [3])
* [04/06] added new mempool arg in xmem_size/usage. (Suggested by Olivier)
* [05/06] patch description changed.
        - Removed elseif brakcet mix
        - removed sanity check for alignment
        - removed extra var delta
        - Removed __rte_unused from xmem_usage/size and added _BLK_SZ_ALIGN check.
        (Suggeted by Olivier per v1[4])
* [06/06] Added RTE_FUNC_PTR_OR_RET in rte_mempool_ops_update_ops.

Checkpatch status:
* WARNING: line over 80 characters
Noticed for debug messages.

Work history:
Refer [5].

Thanks.

[1] deprecation notice: http://dpdk.org/dev/patchwork/patch/26872/
[2] v1: http://dpdk.org/dev/patchwork/patch/25603/
[3] v1: http://dpdk.org/dev/patchwork/patch/25604/
[4] v1: http://dpdk.org/dev/patchwork/patch/25605/
[5] v1: http://dev.dpdk.narkive.com/Qcu55Lgz/dpdk-dev-patch-0-4-infrastructure-to-support-octeontx-hw-mempool-manager


Santosh Shukla (6):
  mempool: fix flags data type
  mempool: get the mempool capability
  mempool: detect physical contiguous object in pool
  mempool: add mempool arg in xmem size and usage
  mempool: introduce block size align flag
  mempool: update range info to pool

 drivers/net/xenvirt/rte_mempool_gntalloc.c |  5 +-
 lib/librte_mempool/rte_mempool.c           | 42 ++++++++++++++---
 lib/librte_mempool/rte_mempool.h           | 75 ++++++++++++++++++++++--------
 lib/librte_mempool/rte_mempool_ops.c       | 26 +++++++++++
 lib/librte_mempool/rte_mempool_version.map |  8 ++++
 test/test/test_mempool.c                   | 22 ++++-----
 test/test/test_mempool_perf.c              |  4 +-
 7 files changed, 140 insertions(+), 42 deletions(-)

-- 
2.13.0



More information about the dev mailing list