linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL PATCH 0/7] turbostat fixes
@ 2017-04-13  0:08 Len Brown
  2017-04-13  0:08 ` [PATCH 1/7] tools/power turbostat: bugfix: GFXMHz column not changing Len Brown
  2017-04-13  1:25 ` [GIT PULL PATCH 0/7] turbostat fixes Rafael J. Wysocki
  0 siblings, 2 replies; 9+ messages in thread
From: Len Brown @ 2017-04-13  0:08 UTC (permalink / raw)
  To: rjw, linux-pm; +Cc: linux-kernel

Hi Rafael,

Please pull these turbostat patches.

thanks!
Len Brown, Intel Open Source Technology Center

The following changes since commit e3942ed8c66bcff496abee5182422cd542962d9e:

  tools/power turbostat: version 17.02.24 (2017-03-01 00:14:26 -0500)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux.git turbostat

for you to fetch changes up to 5f9bf02a58f0f62d111994805212d0a775499862:

  tools/power turbostat: update version number (2017-04-12 20:03:50 -0400)

----------------------------------------------------------------
Doug Smythies (1):
      tools/power turbostat: turbostat.8 add missing column definitions

Len Brown (6):
      tools/power turbostat: bugfix: GFXMHz column not changing
      tools/power turbostat: show missing Core and GFX power on SKL and KBL
      tools/power turbostat: enable package THERM_INTERRUPT dump
      tools/power turbostat: update HWP dump to decimal from hex
      tools/power turbostat: fix impossibly large CPU%c1 value
      tools/power turbostat: update version number

 tools/power/x86/turbostat/turbostat.8 |  2 ++
 tools/power/x86/turbostat/turbostat.c | 26 +++++++++++++-------------
 2 files changed, 15 insertions(+), 13 deletions(-)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/7] tools/power turbostat: bugfix: GFXMHz column not changing
  2017-04-13  0:08 [GIT PULL PATCH 0/7] turbostat fixes Len Brown
@ 2017-04-13  0:08 ` Len Brown
  2017-04-13  0:08   ` [PATCH 2/7] tools/power turbostat: show missing Core and GFX power on SKL and KBL Len Brown
                     ` (5 more replies)
  2017-04-13  1:25 ` [GIT PULL PATCH 0/7] turbostat fixes Rafael J. Wysocki
  1 sibling, 6 replies; 9+ messages in thread
From: Len Brown @ 2017-04-13  0:08 UTC (permalink / raw)
  To: rjw, linux-pm; +Cc: linux-kernel, Len Brown

From: Len Brown <len.brown@intel.com>

turbostat displays a GFXMHz column, which comes from reading
/sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz

But GFXMHz was not changing, even when a manual
cat /sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz
showed a new value.

It turns out that a rewind() on the open file is not sufficient,
fflush() (or a close/open) is needed to read fresh values.

Reported-by: Yaroslav Isakov <yaroslav.isakov@gmail.com>
Signed-off-by: Len Brown <len.brown@intel.com>
---
 tools/power/x86/turbostat/turbostat.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
index 828dccd3f01e..d7fb6bcb2744 100644
--- a/tools/power/x86/turbostat/turbostat.c
+++ b/tools/power/x86/turbostat/turbostat.c
@@ -2485,8 +2485,10 @@ int snapshot_gfx_mhz(void)
 
 	if (fp == NULL)
 		fp = fopen_or_die("/sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz", "r");
-	else
+	else {
 		rewind(fp);
+		fflush(fp);
+	}
 
 	retval = fscanf(fp, "%d", &gfx_cur_mhz);
 	if (retval != 1)
-- 
2.11.0.161.g6610af872

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/7] tools/power turbostat: show missing Core and GFX power on SKL and KBL
  2017-04-13  0:08 ` [PATCH 1/7] tools/power turbostat: bugfix: GFXMHz column not changing Len Brown
@ 2017-04-13  0:08   ` Len Brown
  2017-04-13  0:08   ` [PATCH 3/7] tools/power turbostat: enable package THERM_INTERRUPT dump Len Brown
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Len Brown @ 2017-04-13  0:08 UTC (permalink / raw)
  To: rjw, linux-pm; +Cc: linux-kernel, Len Brown

From: Len Brown <len.brown@intel.com>

While the current SDM is silent on the matter, the Core and GFX
RAPL power meters on SKL and KBL appear to work -- so show them.

Reported-by: Yaroslav Isakov <yaroslav.isakov@gmail.com>
Signed-off-by: Len Brown <len.brown@intel.com>
---
 tools/power/x86/turbostat/turbostat.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
index d7fb6bcb2744..94d7e54b1ec0 100644
--- a/tools/power/x86/turbostat/turbostat.c
+++ b/tools/power/x86/turbostat/turbostat.c
@@ -3355,17 +3355,19 @@ void rapl_probe(unsigned int family, unsigned int model)
 	case INTEL_FAM6_SKYLAKE_DESKTOP:	/* SKL */
 	case INTEL_FAM6_KABYLAKE_MOBILE:	/* KBL */
 	case INTEL_FAM6_KABYLAKE_DESKTOP:	/* KBL */
-		do_rapl = RAPL_PKG | RAPL_DRAM | RAPL_DRAM_PERF_STATUS | RAPL_PKG_PERF_STATUS | RAPL_PKG_POWER_INFO;
+		do_rapl = RAPL_PKG | RAPL_CORES | RAPL_CORE_POLICY | RAPL_DRAM | RAPL_DRAM_PERF_STATUS | RAPL_PKG_PERF_STATUS | RAPL_GFX | RAPL_PKG_POWER_INFO;
 		BIC_PRESENT(BIC_PKG__);
 		BIC_PRESENT(BIC_RAM__);
 		if (rapl_joules) {
 			BIC_PRESENT(BIC_Pkg_J);
 			BIC_PRESENT(BIC_Cor_J);
 			BIC_PRESENT(BIC_RAM_J);
+			BIC_PRESENT(BIC_GFX_J);
 		} else {
 			BIC_PRESENT(BIC_PkgWatt);
 			BIC_PRESENT(BIC_CorWatt);
 			BIC_PRESENT(BIC_RAMWatt);
+			BIC_PRESENT(BIC_GFXWatt);
 		}
 		break;
 	case INTEL_FAM6_HASWELL_X:	/* HSX */
-- 
2.11.0.161.g6610af872

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/7] tools/power turbostat: enable package THERM_INTERRUPT dump
  2017-04-13  0:08 ` [PATCH 1/7] tools/power turbostat: bugfix: GFXMHz column not changing Len Brown
  2017-04-13  0:08   ` [PATCH 2/7] tools/power turbostat: show missing Core and GFX power on SKL and KBL Len Brown
@ 2017-04-13  0:08   ` Len Brown
  2017-04-13  0:08   ` [PATCH 4/7] tools/power turbostat: update HWP dump to decimal from hex Len Brown
                     ` (3 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Len Brown @ 2017-04-13  0:08 UTC (permalink / raw)
  To: rjw, linux-pm; +Cc: linux-kernel, Len Brown

From: Len Brown <len.brown@intel.com>

cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x00641400 (100 C)
cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x884b0800 (25 C)
cpu0: MSR_IA32_PACKAGE_THERM_INTERRUPT: 0x00000003 (100 C, 100 C)

Enable the same per-core output, but hide it behind --debug
because it is too verbose on big systems.

Signed-off-by: Len Brown <len.brown@intel.com>
---
 tools/power/x86/turbostat/turbostat.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
index 94d7e54b1ec0..e95799966560 100644
--- a/tools/power/x86/turbostat/turbostat.c
+++ b/tools/power/x86/turbostat/turbostat.c
@@ -3482,7 +3482,7 @@ void perf_limit_reasons_probe(unsigned int family, unsigned int model)
 int print_thermal(struct thread_data *t, struct core_data *c, struct pkg_data *p)
 {
 	unsigned long long msr;
-	unsigned int dts;
+	unsigned int dts, dts2;
 	int cpu;
 
 	if (!(do_dts || do_ptm))
@@ -3507,7 +3507,6 @@ int print_thermal(struct thread_data *t, struct core_data *c, struct pkg_data *p
 		fprintf(outf, "cpu%d: MSR_IA32_PACKAGE_THERM_STATUS: 0x%08llx (%d C)\n",
 			cpu, msr, tcc_activation_temp - dts);
 
-#ifdef	THERM_DEBUG
 		if (get_msr(cpu, MSR_IA32_PACKAGE_THERM_INTERRUPT, &msr))
 			return 0;
 
@@ -3515,11 +3514,10 @@ int print_thermal(struct thread_data *t, struct core_data *c, struct pkg_data *p
 		dts2 = (msr >> 8) & 0x7F;
 		fprintf(outf, "cpu%d: MSR_IA32_PACKAGE_THERM_INTERRUPT: 0x%08llx (%d C, %d C)\n",
 			cpu, msr, tcc_activation_temp - dts, tcc_activation_temp - dts2);
-#endif
 	}
 
 
-	if (do_dts) {
+	if (do_dts && debug) {
 		unsigned int resolution;
 
 		if (get_msr(cpu, MSR_IA32_THERM_STATUS, &msr))
@@ -3530,7 +3528,6 @@ int print_thermal(struct thread_data *t, struct core_data *c, struct pkg_data *p
 		fprintf(outf, "cpu%d: MSR_IA32_THERM_STATUS: 0x%08llx (%d C +/- %d)\n",
 			cpu, msr, tcc_activation_temp - dts, resolution);
 
-#ifdef THERM_DEBUG
 		if (get_msr(cpu, MSR_IA32_THERM_INTERRUPT, &msr))
 			return 0;
 
@@ -3538,7 +3535,6 @@ int print_thermal(struct thread_data *t, struct core_data *c, struct pkg_data *p
 		dts2 = (msr >> 8) & 0x7F;
 		fprintf(outf, "cpu%d: MSR_IA32_THERM_INTERRUPT: 0x%08llx (%d C, %d C)\n",
 			cpu, msr, tcc_activation_temp - dts, tcc_activation_temp - dts2);
-#endif
 	}
 
 	return 0;
-- 
2.11.0.161.g6610af872

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 4/7] tools/power turbostat: update HWP dump to decimal from hex
  2017-04-13  0:08 ` [PATCH 1/7] tools/power turbostat: bugfix: GFXMHz column not changing Len Brown
  2017-04-13  0:08   ` [PATCH 2/7] tools/power turbostat: show missing Core and GFX power on SKL and KBL Len Brown
  2017-04-13  0:08   ` [PATCH 3/7] tools/power turbostat: enable package THERM_INTERRUPT dump Len Brown
@ 2017-04-13  0:08   ` Len Brown
  2017-04-13  0:08   ` [PATCH 5/7] tools/power turbostat: turbostat.8 add missing column definitions Len Brown
                     ` (2 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Len Brown @ 2017-04-13  0:08 UTC (permalink / raw)
  To: rjw, linux-pm; +Cc: linux-kernel, Len Brown

From: Len Brown <len.brown@intel.com>

Syntax only.

The HWP CAPABILTIES and REQUEST ratios are more easily
viewed in decimal -- just multiply by 100 and you get MHz...

new:
cpu0: MSR_HWP_CAPABILITIES: 0x010c1b23 (high 35 guar 27 eff 12 low 1)
cpu0: MSR_HWP_REQUEST: 0x80002301 (min 1 max 35 des 0 epp 0x80 window 0x0 pkg 0x0)

old:
cpu0: MSR_HWP_CAPABILITIES: 0x010c1b23 (high 0x23 guar 0x1b eff 0xc low 0x1)
cpu0: MSR_HWP_REQUEST: 0x80002301 (min 0x1 max 0x23 des 0x0 epp 0x80 window 0x0 pkg 0x0)

Signed-off-by: Len Brown <len.brown@intel.com>
---
 tools/power/x86/turbostat/turbostat.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
index e95799966560..b0591d0da801 100644
--- a/tools/power/x86/turbostat/turbostat.c
+++ b/tools/power/x86/turbostat/turbostat.c
@@ -3113,7 +3113,7 @@ int print_hwp(struct thread_data *t, struct core_data *c, struct pkg_data *p)
 		return 0;
 
 	fprintf(outf, "cpu%d: MSR_HWP_CAPABILITIES: 0x%08llx "
-			"(high 0x%x guar 0x%x eff 0x%x low 0x%x)\n",
+			"(high %d guar %d eff %d low %d)\n",
 			cpu, msr,
 			(unsigned int)HWP_HIGHEST_PERF(msr),
 			(unsigned int)HWP_GUARANTEED_PERF(msr),
@@ -3124,7 +3124,7 @@ int print_hwp(struct thread_data *t, struct core_data *c, struct pkg_data *p)
 		return 0;
 
 	fprintf(outf, "cpu%d: MSR_HWP_REQUEST: 0x%08llx "
-			"(min 0x%x max 0x%x des 0x%x epp 0x%x window 0x%x pkg 0x%x)\n",
+			"(min %d max %d des %d epp 0x%x window 0x%x pkg 0x%x)\n",
 			cpu, msr,
 			(unsigned int)(((msr) >> 0) & 0xff),
 			(unsigned int)(((msr) >> 8) & 0xff),
@@ -3138,7 +3138,7 @@ int print_hwp(struct thread_data *t, struct core_data *c, struct pkg_data *p)
 			return 0;
 
 		fprintf(outf, "cpu%d: MSR_HWP_REQUEST_PKG: 0x%08llx "
-			"(min 0x%x max 0x%x des 0x%x epp 0x%x window 0x%x)\n",
+			"(min %d max %d des %d epp 0x%x window 0x%x)\n",
 			cpu, msr,
 			(unsigned int)(((msr) >> 0) & 0xff),
 			(unsigned int)(((msr) >> 8) & 0xff),
-- 
2.11.0.161.g6610af872

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 5/7] tools/power turbostat: turbostat.8 add missing column definitions
  2017-04-13  0:08 ` [PATCH 1/7] tools/power turbostat: bugfix: GFXMHz column not changing Len Brown
                     ` (2 preceding siblings ...)
  2017-04-13  0:08   ` [PATCH 4/7] tools/power turbostat: update HWP dump to decimal from hex Len Brown
@ 2017-04-13  0:08   ` Len Brown
  2017-04-13  0:08   ` [PATCH 6/7] tools/power turbostat: fix impossibly large CPU%c1 value Len Brown
  2017-04-13  0:08   ` [PATCH 7/7] tools/power turbostat: update version number Len Brown
  5 siblings, 0 replies; 9+ messages in thread
From: Len Brown @ 2017-04-13  0:08 UTC (permalink / raw)
  To: rjw, linux-pm; +Cc: linux-kernel, Doug Smythies, Doug Smythies, Len Brown

From: Doug Smythies <doug.smythies@gmail.com>

Add GFX%rc6 and GFXMHz to the column descriptions section
of the turbostat man page.

Signed-off-by: Doug Smythies <dsmythies@telus.net>
Signed-off-by: Len Brown <len.brown@intel.com>
---
 tools/power/x86/turbostat/turbostat.8 | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tools/power/x86/turbostat/turbostat.8 b/tools/power/x86/turbostat/turbostat.8
index fedca3285326..ccf2a69365cc 100644
--- a/tools/power/x86/turbostat/turbostat.8
+++ b/tools/power/x86/turbostat/turbostat.8
@@ -100,6 +100,8 @@ The system configuration dump (if --quiet is not used) is followed by statistics
 \fBCPU%c1, CPU%c3, CPU%c6, CPU%c7\fP show the percentage residency in hardware core idle states.  These numbers are from hardware residency counters.
 \fBCoreTmp\fP Degrees Celsius reported by the per-core Digital Thermal Sensor.
 \fBPkgTtmp\fP Degrees Celsius reported by the per-package Package Thermal Monitor.
+\fBGFX%rc6\fP The percentage of time the GPU is in the "render C6" state, rc6, during the measurement interval. From /sys/class/drm/card0/power/rc6_residency_ms.
+\fBGFXMHz\fP Instantaneous snapshot of what sysfs presents at the end of the measurement interval. From /sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz.
 \fBPkg%pc2, Pkg%pc3, Pkg%pc6, Pkg%pc7\fP percentage residency in hardware package idle states.  These numbers are from hardware residency counters.
 \fBPkgWatt\fP Watts consumed by the whole package.
 \fBCorWatt\fP Watts consumed by the core part of the package.
-- 
2.11.0.161.g6610af872

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 6/7] tools/power turbostat: fix impossibly large CPU%c1 value
  2017-04-13  0:08 ` [PATCH 1/7] tools/power turbostat: bugfix: GFXMHz column not changing Len Brown
                     ` (3 preceding siblings ...)
  2017-04-13  0:08   ` [PATCH 5/7] tools/power turbostat: turbostat.8 add missing column definitions Len Brown
@ 2017-04-13  0:08   ` Len Brown
  2017-04-13  0:08   ` [PATCH 7/7] tools/power turbostat: update version number Len Brown
  5 siblings, 0 replies; 9+ messages in thread
From: Len Brown @ 2017-04-13  0:08 UTC (permalink / raw)
  To: rjw, linux-pm; +Cc: linux-kernel, Len Brown

From: Len Brown <len.brown@intel.com>

Most CPUs do not have a hardware c1 counter,
and so turbostat derives c1 residency:

c1 = TSC - MPERF - other_core_cstate_counters

As it is not possible to atomically read these coutners,
measurement jitter can case this calcuation to "go negative"
when very close to 0.  Turbostat detect that case and
simply prints c1 = 0.00%

But that check neglected to account for systems where the TSC
crystal clock domain and the MPERF BCLK domain are differ by
a small amount.  That allowed very small negative c1 numbers
to escape this check and be printed as huge positve numbers.

This code begs for a bit of cleanup, but this patch
is the minimal change to fix the issue.

Signed-off-by: Len Brown <len.brown@intel.com>
---
 tools/power/x86/turbostat/turbostat.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
index b0591d0da801..0ad966114e58 100644
--- a/tools/power/x86/turbostat/turbostat.c
+++ b/tools/power/x86/turbostat/turbostat.c
@@ -1142,7 +1142,7 @@ delta_thread(struct thread_data *new, struct thread_data *old,
 		 * it is possible for mperf's non-halted cycles + idle states
 		 * to exceed TSC's all cycles: show c1 = 0% in that case.
 		 */
-		if ((old->mperf + core_delta->c3 + core_delta->c6 + core_delta->c7) > old->tsc)
+		if ((old->mperf + core_delta->c3 + core_delta->c6 + core_delta->c7) > (old->tsc * tsc_tweak))
 			old->c1 = 0;
 		else {
 			/* normal case, derive c1 */
-- 
2.11.0.161.g6610af872

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 7/7] tools/power turbostat: update version number
  2017-04-13  0:08 ` [PATCH 1/7] tools/power turbostat: bugfix: GFXMHz column not changing Len Brown
                     ` (4 preceding siblings ...)
  2017-04-13  0:08   ` [PATCH 6/7] tools/power turbostat: fix impossibly large CPU%c1 value Len Brown
@ 2017-04-13  0:08   ` Len Brown
  5 siblings, 0 replies; 9+ messages in thread
From: Len Brown @ 2017-04-13  0:08 UTC (permalink / raw)
  To: rjw, linux-pm; +Cc: linux-kernel, Len Brown

From: Len Brown <len.brown@intel.com>

Signed-off-by: Len Brown <len.brown@intel.com>
---
 tools/power/x86/turbostat/turbostat.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
index 0ad966114e58..b11294730771 100644
--- a/tools/power/x86/turbostat/turbostat.c
+++ b/tools/power/x86/turbostat/turbostat.c
@@ -4578,7 +4578,7 @@ int get_and_dump_counters(void)
 }
 
 void print_version() {
-	fprintf(outf, "turbostat version 17.02.24"
+	fprintf(outf, "turbostat version 17.04.12"
 		" - Len Brown <lenb@kernel.org>\n");
 }
 
-- 
2.11.0.161.g6610af872

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [GIT PULL PATCH 0/7] turbostat fixes
  2017-04-13  0:08 [GIT PULL PATCH 0/7] turbostat fixes Len Brown
  2017-04-13  0:08 ` [PATCH 1/7] tools/power turbostat: bugfix: GFXMHz column not changing Len Brown
@ 2017-04-13  1:25 ` Rafael J. Wysocki
  1 sibling, 0 replies; 9+ messages in thread
From: Rafael J. Wysocki @ 2017-04-13  1:25 UTC (permalink / raw)
  To: Len Brown; +Cc: Rafael J. Wysocki, Linux PM, Linux Kernel Mailing List

On Thu, Apr 13, 2017 at 2:08 AM, Len Brown <lenb@kernel.org> wrote:
> Hi Rafael,
>
> Please pull these turbostat patches.
>
> thanks!
> Len Brown, Intel Open Source Technology Center
>
> The following changes since commit e3942ed8c66bcff496abee5182422cd542962d9e:
>
>   tools/power turbostat: version 17.02.24 (2017-03-01 00:14:26 -0500)
>
> are available in the git repository at:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux.git turbostat
>
> for you to fetch changes up to 5f9bf02a58f0f62d111994805212d0a775499862:
>
>   tools/power turbostat: update version number (2017-04-12 20:03:50 -0400)

Pulled, thanks!

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-04-13  1:26 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-13  0:08 [GIT PULL PATCH 0/7] turbostat fixes Len Brown
2017-04-13  0:08 ` [PATCH 1/7] tools/power turbostat: bugfix: GFXMHz column not changing Len Brown
2017-04-13  0:08   ` [PATCH 2/7] tools/power turbostat: show missing Core and GFX power on SKL and KBL Len Brown
2017-04-13  0:08   ` [PATCH 3/7] tools/power turbostat: enable package THERM_INTERRUPT dump Len Brown
2017-04-13  0:08   ` [PATCH 4/7] tools/power turbostat: update HWP dump to decimal from hex Len Brown
2017-04-13  0:08   ` [PATCH 5/7] tools/power turbostat: turbostat.8 add missing column definitions Len Brown
2017-04-13  0:08   ` [PATCH 6/7] tools/power turbostat: fix impossibly large CPU%c1 value Len Brown
2017-04-13  0:08   ` [PATCH 7/7] tools/power turbostat: update version number Len Brown
2017-04-13  1:25 ` [GIT PULL PATCH 0/7] turbostat fixes Rafael J. Wysocki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).