On 16/09/2022 13:35, Kevin Laatz wrote:
On 14/09/2022 15:33, Stephen Hemminger wrote:
On Wed, 14 Sep 2022 10:29:25 +0100
Kevin Laatz <kevin.laatz@intel.com> 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.
How much does measuring busyness impact performance??

In the past, calling rte_rdsc() would slow down packet rate
because it is stops CPU pipeline. Maybe better on more modern
processors, haven't measured it lately.

Hi Stephen,

I've run some 0.001% loss tests using 2x 100G ports, with 64B packets using testpmd for forwarding. Those tests show a ~2.7% performance impact when the lcore poll busyness feature is enabled vs compile-time disabled.
Applications with more compute intensive workloads should see less performance impact since the proportion of time spent time-stamping will be smaller.

In addition, a performance autotest has been added in this patchset which measures the cycles cost of calling the timestamp macro. Please feel free to test it on your system (lcore_poll_busyness_perf_autotest).

Worth mentioning as well, is that when lcore poll busyness is enabled at compile-time and disabled at run-time, we see zero performance impact.