From: Vipin Varghese <vipin.varghese@amd.com>
To: <dev@dpdk.org>, <sivaprasad.tummala@amd.com>
Cc: <konstantin.ananyev@huawei.com>, <wathsala.vithanage@arm.com>,
<bruce.richardson@intel.com>, <viktorin@cesnet.cz>,
<mb@smartsharesystems.com>
Subject: [PATCH v5 0/3] eal/topology: introduce topology-aware lcore grouping
Date: Wed, 15 Apr 2026 01:08:18 +0530 [thread overview]
Message-ID: <20260414193850.1696-1-vipin.varghese@amd.com> (raw)
In-Reply-To: <20241105102849.1947-1-vipin.varghese@amd.com>
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="y", Size: 3525 bytes --]
This series introduces a topology library that groups DPDK lcores based on
CPU cache hierarchy and NUMA topology. The goal is to provide a stable and
explicit API that allows applications to select lcores with better locality
and cache sharing characteristics.
The series includes:
- EAL support for topology discovery using hwloc and domain-based lcore
grouping (L1/L2/L3/L4/NUMA)
- Topology-aware test cases validating API behavior and edge conditions
- Programmer’s guide describing the topology library and APIs
The API is marked experimental and does not change existing lcore behavior
unless explicitly used by the application.
Changes in v5:
- Addressed review comments from v4
- Fixed ARM cross-compilation issues
- Cleaned up domain iteration and error handling
- Updated tests to cover domain edge cases
- Documentation refinements and API usage clarification
Changes in v4:
- Corrected domain selection semantics
- Updated example usage
- Fixed naming and typo issues
Changes in v3:
- Fixed macro naming (USE_NO_TOPOLOGY)
- Minor cleanups based on early feedback
Tested on:
- AMD EPYC (Milan, Genoa, Siena, Turin, Turin-Dense, Sorano)
- Intel Xeon (SPR-SP, GNR-SP)
- ARM Ampere
- NVIDIA Grace Superchip
Dependencies:
- hwloc-dev (tested with 2.10.0)
Patch breakdown:
1/3 eal/topology: add topology grouping for lcores
2/3 app: add topology-aware test cases
3/3 doc: add topology library documentation
Future Work:
- integrate into examples
-- hellowrld: ready
-- pkt-distributor: in-progress
-- l2fwd: ready
-- l3fwd: to start
-- eventdevpipeline: PoC ready
- integrate topology test
-- crypto: yet to start
-- compression: yet to start
-- dma: PoC ready
- add new features for
-- PQoS: yet to start
-- Data Injection: PoC with BRDCM Thor-2 ready
Tested OS: Linux only, need help with BSD and Windows
Tested with and without hwloc-dev library for
- Ampere, aarch64, Neoverse-N1, NUMA-2, 256 CPU threads
- Grace superchip, aarch64, Neoverse-V2, NUMA-2, 144 CPU threads
- Intel GNR-SP, 6767P, NUMA-2, 256 Threads
- AMD EPYC Siena, 8534P, NUMA-1, 128 Threads
- AMD EPYC Sorano, 8635P, NUMA-1, 168 Threads
Signed-off-by: Vipin Varghese <vipin.varghese@amd.com>
``
Vipin Varghese (3):
eal/topology: add Topology grouping for lcores
app: add topology aware test case
doc: add new section topology
app/test/meson.build | 1 +
app/test/test_ring_perf.c | 416 +++++++++++++-
app/test/test_stack_perf.c | 409 ++++++++++++++
app/test/test_topology.c | 676 ++++++++++++++++++++++
config/meson.build | 18 +
doc/api/doxy-api-index.md | 1 +
doc/guides/prog_guide/index.rst | 3 +-
doc/guides/prog_guide/topology_lib.rst | 155 +++++
lib/eal/common/eal_private.h | 74 +++
lib/eal/common/eal_topology.c | 747 +++++++++++++++++++++++++
lib/eal/common/meson.build | 1 +
lib/eal/freebsd/eal.c | 10 +-
lib/eal/include/meson.build | 1 +
lib/eal/include/rte_topology.h | 255 +++++++++
lib/eal/linux/eal.c | 7 +
lib/eal/meson.build | 4 +
16 files changed, 2773 insertions(+), 5 deletions(-)
create mode 100644 app/test/test_topology.c
create mode 100644 doc/guides/prog_guide/topology_lib.rst
create mode 100644 lib/eal/common/eal_topology.c
create mode 100644 lib/eal/include/rte_topology.h
--
2.43.0
next prev parent reply other threads:[~2026-04-14 19:39 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-05 10:28 [PATCH v4 0/4] Introduce Topology NUMA grouping for lcores Vipin Varghese
2024-11-05 10:28 ` [PATCH v4 1/4] eal/lcore: add topology based functions Vipin Varghese
2024-11-05 10:28 ` [PATCH v4 2/4] test/lcore: enable tests for topology Vipin Varghese
2024-11-05 10:28 ` [PATCH v4 3/4] doc: add topology grouping details Vipin Varghese
2024-11-05 10:28 ` [PATCH v4 4/4] examples: update with lcore topology API Vipin Varghese
2025-02-13 3:09 ` [PATCH v4 0/4] Introduce Topology NUMA grouping for lcores Varghese, Vipin
2025-02-13 8:34 ` Thomas Monjalon
2025-02-13 9:18 ` Morten Brørup
2025-03-03 9:06 ` Varghese, Vipin
2025-03-04 10:08 ` Morten Brørup
2025-03-05 7:43 ` Mattias Rönnblom
2025-03-03 8:59 ` Varghese, Vipin
2025-03-17 13:46 ` Jan Viktorin
2025-04-09 10:08 ` Varghese, Vipin
2025-06-03 6:03 ` Varghese, Vipin
2026-01-17 18:57 ` Stephen Hemminger
2026-01-19 14:55 ` [PATCH v4 0/4] Introduce Topology NUMA grouping for cores Varghese, Vipin
2026-04-14 19:38 ` Vipin Varghese [this message]
2026-04-14 19:38 ` [PATCH v5 v5 1/3] eal/topology: add Topology grouping for lcores Vipin Varghese
2026-04-15 14:06 ` Morten Brørup
2026-04-15 17:52 ` Varghese, Vipin
2026-04-14 19:38 ` [PATCH v5 v5 2/3] app: add topology aware test case Vipin Varghese
2026-04-15 5:21 ` Sudheendra Sampath
2026-04-16 7:22 ` Varghese, Vipin
2026-04-16 13:19 ` Varghese, Vipin
2026-04-17 1:21 ` Varghese, Vipin
2026-04-17 5:19 ` Sudheendra Sampath
2026-04-17 9:55 ` Varghese, Vipin
2026-04-14 19:38 ` [PATCH v5 v5 3/3] doc: add new section topology Vipin Varghese
2026-04-14 20:22 ` [PATCH v5 0/3] eal/topology: introduce topology-aware lcore grouping Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260414193850.1696-1-vipin.varghese@amd.com \
--to=vipin.varghese@amd.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=konstantin.ananyev@huawei.com \
--cc=mb@smartsharesystems.com \
--cc=sivaprasad.tummala@amd.com \
--cc=viktorin@cesnet.cz \
--cc=wathsala.vithanage@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox