[dpdk-dev] [PATCH v3 0/7] Add interrupt-only mode to l3fwd-power

Anatoly Burakov anatoly.burakov at intel.com
Fri Jun 19 12:53:48 CEST 2020


Since 20.05, l3fwd-power has become much more stringent about
whether it allows initialization without initializing the
librte_power library with it. This means that while previously
the app could have been used to test RX interrupts functionality
even if the app itself was in a half-working state, it is now
no longer possible to do so.

To address this use case, we're adding an interrupt-only mode
that does not rely on librte_power or telemetry. This enables
using l3fwd-power in environments where librte_power is not
expected to work (such as inside a VM or on non-IA
architectures). The RX/TX path is basically copy paste from
legacy RX/TX path but with librte_power bits taken out.

There seem to be two opposing schools of thought on whether we
should have more or less examples. This patchset goes in the
"less" direction where we add a new mode to an existing app,
rather than creating a new one like it could be argued it
deserves.

v3:
- Added log messages for autodetect
- Fixed wrong comment in patch 7

v2:
- Add API to probe support for a specific power env
- Add autodetection for the default mode
- Add ability to request legacy mode specifically
- Fix some code style issues

Anatoly Burakov (7):
  l3fwd-power: disable interrupts by default
  l3fwd-power: only allow supported power library envs
  l3fwd-power: code style and flow fixes
  l3fwd-power: add support for requesting legacy mode
  l3fwd-power: add interrupt-only mode
  power: add API to probe support for a specific env
  l3fwd-power: add auto-selection of default mode

 examples/l3fwd-power/main.c             | 292 ++++++++++++++++++++++--
 lib/librte_power/Makefile               |   1 +
 lib/librte_power/guest_channel.c        |  26 +++
 lib/librte_power/guest_channel.h        |  12 +
 lib/librte_power/meson.build            |   3 +-
 lib/librte_power/power_acpi_cpufreq.c   |   7 +
 lib/librte_power/power_acpi_cpufreq.h   |  10 +
 lib/librte_power/power_common.c         |  52 +++++
 lib/librte_power/power_common.h         |   3 +
 lib/librte_power/power_kvm_vm.c         |   5 +
 lib/librte_power/power_kvm_vm.h         |  10 +
 lib/librte_power/power_pstate_cpufreq.c |   7 +
 lib/librte_power/power_pstate_cpufreq.h |  10 +
 lib/librte_power/rte_power.c            |  17 ++
 lib/librte_power/rte_power.h            |  18 ++
 lib/librte_power/rte_power_version.map  |   1 +
 16 files changed, 454 insertions(+), 20 deletions(-)
 create mode 100644 lib/librte_power/power_common.c

-- 
2.17.1


More information about the dev mailing list