[PATCH 0/2] cnxk: Add HALO support for CN20K mempool

Nawal Kishor
2025-12-04T06:52:19Z

This patch series introduces HALO support for the CN20K platform.
On earlier platforms (CN9K/CN10K), the NPA mempool required separate
aura and pool contexts even for a 1:1 aura-to-pool mapping. This led to
unnecessary context usage for the most common use case.

With CN20K, HALOs allow replacing this 1:1 aura/pool model with a single
combined context, reducing context consumption and simplifying mempool
management.

Patch 1 adds HALO creation support in the ROC common layer.
Patch 2 integrates HALO usage into the CN20K mempool driver and adds a
new "halo_ena" devarg to enable or disable this feature.

Nawal Kishor (2):
common/cnxk: add support for halos
mempool/cnxk: add halo support in mempool

drivers/common/cnxk/hw/npa.h | 81 ++++++
drivers/common/cnxk/roc_idev.c | 25 ++
drivers/common/cnxk/roc_idev.h | 3 +
drivers/common/cnxk/roc_idev_priv.h | 1 +
drivers/common/cnxk/roc_mbox.h | 6 +
drivers/common/cnxk/roc_nix.h | 1 +
drivers/common/cnxk/roc_nix_queue.c | 46 ++-
drivers/common/cnxk/roc_npa.c | 268 ++++++++++++++++--
drivers/common/cnxk/roc_npa.h | 20 +-
drivers/common/cnxk/roc_npa_debug.c | 201 ++++++++++++-
drivers/common/cnxk/roc_npa_priv.h | 3 +
.../common/cnxk/roc_platform_base_symbols.c | 2 +
drivers/common/cnxk/roc_sso.c | 35 ++-
drivers/common/cnxk/roc_sso.h | 1 +
drivers/mempool/cnxk/cn10k_mempool_ops.c | 19 +-
drivers/mempool/cnxk/cn20k_mempool_ops.c | 60 ++++
drivers/mempool/cnxk/cn9k_mempool_ops.c | 2 +-
drivers/mempool/cnxk/cnxk_mempool.c | 40 ++-
drivers/mempool/cnxk/cnxk_mempool.h | 16 +-
drivers/mempool/cnxk/cnxk_mempool_ops.c | 11 +-
drivers/mempool/cnxk/meson.build | 1 +
21 files changed, 750 insertions(+), 92 deletions(-)
create mode 100644 drivers/mempool/cnxk/cn20k_mempool_ops.c

--
2.48.1