[RFC 0/2] introduce LLC aware functions

Stephen Hemminger stephen at networkplumber.org
Mon Oct 7 23:28:50 CEST 2024


On Tue, 27 Aug 2024 20:40:12 +0530
Vipin Varghese <vipin.varghese at amd.com> wrote:

> As core density continues to increase, chiplet-based
> core packing has become a key trend. In AMD SoC EPYC
> architectures, core complexes within the same chiplet
> share a Last-Level Cache (LLC). By packing logical cores
> within the same LLC, we can enhance pipeline processing
> stages due to reduced latency and improved data locality.
> 
> To leverage these benefits, DPDK libraries and examples
> can utilize localized lcores. This approach ensures more
> consistent latencies by minimizing the dispersion of lcores
> across different chiplet complexes and enhances packet
> processing by ensuring that data for subsequent pipeline
> stages is likely to reside within the LLC.
> 
> < Function: Purpose >
> ---------------------
>  - rte_get_llc_first_lcores: Retrieves all the first lcores in the shared LLC.
>  - rte_get_llc_lcore: Retrieves all lcores that share the LLC.
>  - rte_get_llc_n_lcore: Retrieves the first n or skips the first n lcores in the shared LLC.
> 
> < MACRO: Purpose >
> ------------------
> RTE_LCORE_FOREACH_LLC_FIRST: iterates through all first lcore from each LLC.
> RTE_LCORE_FOREACH_LLC_FIRST_WORKER: iterates through all first worker lcore from each LLC.
> RTE_LCORE_FOREACH_LLC_WORKER: iterates lcores from LLC based on hint (lcore id).
> RTE_LCORE_FOREACH_LLC_SKIP_FIRST_WORKER: iterates lcores from LLC while skipping first worker.
> RTE_LCORE_FOREACH_LLC_FIRST_N_WORKER: iterates through `n` lcores from each LLC.
> RTE_LCORE_FOREACH_LLC_SKIP_N_WORKER: skip first `n` lcores, then iterates through reaming lcores in each LLC.
> 
> Vipin Varghese (2):
>   eal: add llc aware functions
>   eal/lcore: add llc aware for each macro
> 
>  lib/eal/common/eal_common_lcore.c | 279 ++++++++++++++++++++++++++++--
>  lib/eal/include/rte_lcore.h       |  89 ++++++++++

When are you going to send a new version?

Need:
  - new functions need to be marked experimental
  - has to build cleanly on all platforms.
  - need functional tests
  - address all the other review comments


More information about the dev mailing list