[PATCH v7 0/4] Add lcore poll busyness telemetry
Kevin Laatz
kevin.laatz at intel.com
Wed Oct 5 15:44:40 CEST 2022
On 14/09/2022 10:29, Kevin Laatz wrote:
> Currently, there is no way to measure lcore polling busyness in a passive
> way, without any modifications to the application. This patchset adds a new
> EAL API that will be able to passively track core polling busyness. As part
> of the set, new telemetry endpoints are added to read the generate metrics.
>
> ---
> v7:
> * Rename funcs, vars, files to include "poll" where missing.
>
> v6:
> * Add API and perf unit tests
>
> v5:
> * Fix Windows build
> * Make lcore_telemetry_free() an internal interface
> * Minor cleanup
>
> v4:
> * Fix doc build
> * Rename timestamp macro to RTE_LCORE_POLL_BUSYNESS_TIMESTAMP
> * Make enable/disable read and write atomic
> * Change rte_lcore_poll_busyness_enabled_set() param to bool
> * Move mem alloc from enable/disable to init/cleanup
> * Other minor fixes
>
> v3:
> * Fix missing renaming to poll busyness
> * Fix clang compilation
> * Fix arm compilation
>
> v2:
> * Use rte_get_tsc_hz() to adjust the telemetry period
> * Rename to reflect polling busyness vs general busyness
> * Fix segfault when calling telemetry timestamp from an unregistered
> non-EAL thread.
> * Minor cleanup
>
> Anatoly Burakov (2):
> eal: add lcore poll busyness telemetry
> eal: add cpuset lcore telemetry entries
>
> Kevin Laatz (2):
> app/test: add unit tests for lcore poll busyness
> doc: add howto guide for lcore poll busyness
>
> app/test/meson.build | 4 +
> app/test/test_lcore_poll_busyness_api.c | 134 +++++++
> app/test/test_lcore_poll_busyness_perf.c | 72 ++++
> config/meson.build | 1 +
> config/rte_config.h | 1 +
> doc/guides/howto/index.rst | 1 +
> doc/guides/howto/lcore_poll_busyness.rst | 93 +++++
> lib/bbdev/rte_bbdev.h | 17 +-
> lib/compressdev/rte_compressdev.c | 2 +
> lib/cryptodev/rte_cryptodev.h | 2 +
> lib/distributor/rte_distributor.c | 21 +-
> lib/distributor/rte_distributor_single.c | 14 +-
> lib/dmadev/rte_dmadev.h | 15 +-
> .../common/eal_common_lcore_poll_telemetry.c | 350 ++++++++++++++++++
> lib/eal/common/meson.build | 1 +
> lib/eal/freebsd/eal.c | 1 +
> lib/eal/include/rte_lcore.h | 85 ++++-
> lib/eal/linux/eal.c | 1 +
> lib/eal/meson.build | 3 +
> lib/eal/version.map | 7 +
> lib/ethdev/rte_ethdev.h | 2 +
> lib/eventdev/rte_eventdev.h | 10 +-
> lib/rawdev/rte_rawdev.c | 6 +-
> lib/regexdev/rte_regexdev.h | 5 +-
> lib/ring/rte_ring_elem_pvt.h | 1 +
> meson_options.txt | 2 +
> 26 files changed, 826 insertions(+), 25 deletions(-)
> create mode 100644 app/test/test_lcore_poll_busyness_api.c
> create mode 100644 app/test/test_lcore_poll_busyness_perf.c
> create mode 100644 doc/guides/howto/lcore_poll_busyness.rst
> create mode 100644 lib/eal/common/eal_common_lcore_poll_telemetry.c
Based on the feedback in the discussions on this patchset, we have
decided to revoke the submission of this patchset for the 22.11 release.
We will re-evaluate the design with the aim to provide a more acceptable
solution in a future release.
---
Kevin
More information about the dev
mailing list