Re: [PATCHv2 0/3] Update cpupower and make it more accurate

From: Natarajan, Janakarajan
Date: Tue Oct 22 2019 - 12:39:16 EST


On 10/11/2019 2:37 PM, Natarajan, Janakarajan wrote:
> 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.


Any concerns regarding this patchset?


-Janak


>
> 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(-)
>