[PATCHv2 0/3] Update cpupower and make it more accurate
From: Natarajan, Janakarajan
Date: Fri Oct 11 2019 - 15:37:58 EST
This patchset updates cpupower to make it more accurate by removing
the userspace to kernel transitions and read_msr initiated IPI delays.
The first patch does a little re-arrangement of variables in the
cpuidle_monitor struct to prepare for a new flag.
The second patch introduces a per_cpu_schedule flag which, when set,
will allow cpupower to move to each of the cpus in the system. The
advantage of this is that the IPI latency is removed when reading
the APERF/MPERF registers, since an IPI is not generated for rdmsrs
when the source and destination cpus are the same for the IPI.
The third patch introduces the RDPRU instruction, which will allow
cpupower to not use the msr module for APERF/MPERF register reads.
This will remove the userspace to kernel transition delays when
reading the APERF/MPERF registers.
v1->v2:
* Added cover letter.
* Used bind_cpu instead of rewriting the same code.
* Moved needs_root to flag sub-struct.
* Introduced per_cpu_schedule flag.
Janakarajan Natarajan (3):
cpupower: Move needs_root variable into a sub-struct
cpupower: mperf_monitor: Introduce per_cpu_schedule flag
cpupower: mperf_monitor: Update cpupower to use the RDPRU instruction
tools/power/cpupower/utils/helpers/cpuid.c | 4 ++
tools/power/cpupower/utils/helpers/helpers.h | 1 +
.../utils/idle_monitor/amd_fam14h_idle.c | 2 +-
.../utils/idle_monitor/cpuidle_sysfs.c | 2 +-
.../utils/idle_monitor/cpupower-monitor.c | 2 +-
.../utils/idle_monitor/cpupower-monitor.h | 5 +-
.../utils/idle_monitor/hsw_ext_idle.c | 2 +-
.../utils/idle_monitor/mperf_monitor.c | 64 +++++++++++++++----
.../cpupower/utils/idle_monitor/nhm_idle.c | 2 +-
.../cpupower/utils/idle_monitor/snb_idle.c | 2 +-
10 files changed, 68 insertions(+), 18 deletions(-)
--
2.17.1