Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1226062 > unrolled thread
| Started by | Lukasz Anaczkowski <lukasz.anaczkowski@intel.com> |
|---|---|
| First post | 2015-09-16 15:00 +0200 |
| Last post | 2015-09-18 23:50 +0200 |
| Articles | 4 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH] Added multiplier for APERF and MPERF counters Lukasz Anaczkowski <lukasz.anaczkowski@intel.com> - 2015-09-16 15:00 +0200
Re: [PATCH] Added multiplier for APERF and MPERF counters "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2015-09-17 18:40 +0200
RE: [PATCH] Added multiplier for APERF and MPERF counters "Anaczkowski, Lukasz" <lukasz.anaczkowski@intel.com> - 2015-09-18 09:10 +0200
Re: [PATCH] Added multiplier for APERF and MPERF counters "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2015-09-18 23:50 +0200
| From | Lukasz Anaczkowski <lukasz.anaczkowski@intel.com> |
|---|---|
| Date | 2015-09-16 15:00 +0200 |
| Subject | [PATCH] Added multiplier for APERF and MPERF counters |
| Message-ID | <q9ktA-4U2-23@gated-at.bofh.it> |
From: Hubert Chrzaniuk <hubert.chrzaniuk@intel.com>
Intel(R) Xeon Phi x200 (KNL) increments APERF/MPERF every
1024 clocks, which is different than other Intel architectures
(incremented every single clock).
It results in understated values for %Busy and Avg_MHz values,
thus multiplier for APERF/MPERF counters.
Signed-off-by: Hubert Chrzaniuk <hubert.chrzaniuk@intel.com>
Signed-off-by: Lukasz Anaczkowski <lukasz.anaczkowski@intel.com>
---
tools/power/x86/turbostat/turbostat.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
index 9655cb4..1dda607 100644
--- a/tools/power/x86/turbostat/turbostat.c
+++ b/tools/power/x86/turbostat/turbostat.c
@@ -71,6 +71,7 @@ unsigned int extra_msr_offset32;
unsigned int extra_msr_offset64;
unsigned int extra_delta_offset32;
unsigned int extra_delta_offset64;
+unsigned int aperf_mperf_multiplier = 1;
int do_smi;
double bclk;
unsigned int show_pkg;
@@ -984,6 +985,8 @@ int get_counters(struct thread_data *t, struct core_data *c, struct pkg_data *p)
return -3;
if (get_msr(cpu, MSR_IA32_MPERF, &t->mperf))
return -4;
+ t->aperf = t->aperf * aperf_mperf_multiplier;
+ t->mperf = t->mperf * aperf_mperf_multiplier;
}
if (do_smi) {
@@ -2543,6 +2546,13 @@ int is_knl(unsigned int family, unsigned int model)
return 0;
}
+unsigned int get_aperf_mperf_multiplier(unsigned int family, unsigned int model)
+{
+ if (is_knl(family, model))
+ return 1024;
+ return 1;
+}
+
#define SLM_BCLK_FREQS 5
double slm_freq_table[SLM_BCLK_FREQS] = { 83.3, 100.0, 133.3, 116.7, 80.0};
@@ -2744,6 +2754,9 @@ void process_cpuid()
}
}
+ if (has_aperf)
+ aperf_mperf_multiplier = get_aperf_mperf_multiplier(family, model);
+
do_nhm_platform_info = do_nhm_cstates = do_smi = probe_nhm_msrs(family, model);
do_snb_cstates = has_snb_msrs(family, model);
do_pc2 = do_snb_cstates && (pkg_cstate_limit >= PCL__2);
--
1.8.3.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | "Rafael J. Wysocki" <rjw@rjwysocki.net> |
|---|---|
| Date | 2015-09-17 18:40 +0200 |
| Message-ID | <q9Ko1-Kl-3@gated-at.bofh.it> |
| In reply to | #1226062 |
On Wednesday, September 16, 2015 02:52:18 PM Lukasz Anaczkowski wrote:
> From: Hubert Chrzaniuk <hubert.chrzaniuk@intel.com>
>
> Intel(R) Xeon Phi x200 (KNL) increments APERF/MPERF every
> 1024 clocks, which is different than other Intel architectures
> (incremented every single clock).
> It results in understated values for %Busy and Avg_MHz values,
> thus multiplier for APERF/MPERF counters.
>
> Signed-off-by: Hubert Chrzaniuk <hubert.chrzaniuk@intel.com>
> Signed-off-by: Lukasz Anaczkowski <lukasz.anaczkowski@intel.com>
Please *always* send PM-related patches to linux-pm@vger.kernel.org (CCed now).
> ---
> tools/power/x86/turbostat/turbostat.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
> index 9655cb4..1dda607 100644
> --- a/tools/power/x86/turbostat/turbostat.c
> +++ b/tools/power/x86/turbostat/turbostat.c
> @@ -71,6 +71,7 @@ unsigned int extra_msr_offset32;
> unsigned int extra_msr_offset64;
> unsigned int extra_delta_offset32;
> unsigned int extra_delta_offset64;
> +unsigned int aperf_mperf_multiplier = 1;
> int do_smi;
> double bclk;
> unsigned int show_pkg;
> @@ -984,6 +985,8 @@ int get_counters(struct thread_data *t, struct core_data *c, struct pkg_data *p)
> return -3;
> if (get_msr(cpu, MSR_IA32_MPERF, &t->mperf))
> return -4;
> + t->aperf = t->aperf * aperf_mperf_multiplier;
> + t->mperf = t->mperf * aperf_mperf_multiplier;
> }
>
> if (do_smi) {
> @@ -2543,6 +2546,13 @@ int is_knl(unsigned int family, unsigned int model)
> return 0;
> }
>
> +unsigned int get_aperf_mperf_multiplier(unsigned int family, unsigned int model)
> +{
> + if (is_knl(family, model))
> + return 1024;
> + return 1;
> +}
> +
> #define SLM_BCLK_FREQS 5
> double slm_freq_table[SLM_BCLK_FREQS] = { 83.3, 100.0, 133.3, 116.7, 80.0};
>
> @@ -2744,6 +2754,9 @@ void process_cpuid()
> }
> }
>
> + if (has_aperf)
> + aperf_mperf_multiplier = get_aperf_mperf_multiplier(family, model);
> +
> do_nhm_platform_info = do_nhm_cstates = do_smi = probe_nhm_msrs(family, model);
> do_snb_cstates = has_snb_msrs(family, model);
> do_pc2 = do_snb_cstates && (pkg_cstate_limit >= PCL__2);
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | "Anaczkowski, Lukasz" <lukasz.anaczkowski@intel.com> |
|---|---|
| Date | 2015-09-18 09:10 +0200 |
| Message-ID | <q9XXX-3Se-13@gated-at.bofh.it> |
| In reply to | #1227195 |
RnJvbTogUmFmYWVsIEouIFd5c29ja2kgW21haWx0bzpyandAcmp3eXNvY2tpLm5ldF0gDQpTZW50 OiBUaHVyc2RheSwgU2VwdGVtYmVyIDE3LCAyMDE1IDc6MDUgUE0NCg0KPiBQbGVhc2UgKmFsd2F5 cyogc2VuZCBQTS1yZWxhdGVkIHBhdGNoZXMgdG8gbGludXgtcG1Admdlci5rZXJuZWwub3JnIChD Q2VkIG5vdykuDQoNCk9rLCB0aGFua3MgZm9yIG5vdGljaW5nLg0KSSd2ZSBhZGRyZXNzZWQgbXkg cGF0Y2ggYmFzZWQgb24gb3V0cHV0IG9mIC4vc2NyaXB0cy9nZXRfbWFpbnRhaW5lci5wbA0KYW5k IGdhdmUgbWUgb3V0cHV0IGxpa2UgdGhpczoNCg0KTGVuIEJyb3duIDxsZW4uYnJvd25AeHh4Pg0K RGFzYXJhdGhhcmFtYW4gQ2hhbmRyYW1vdWxpIDxkYXNhcmF0aGFyYW1hbi5jaGFuZHJhbW91bGlA eHh4Pg0KbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZw0KDQpTaG91bGQgaXQgYmUgZml4ZWQg c29tZWhvdz8NCg0KQ2hlZXJzLA0KTHVrYXN6DQo= -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | "Rafael J. Wysocki" <rjw@rjwysocki.net> |
|---|---|
| Date | 2015-09-18 23:50 +0200 |
| Message-ID | <qabHz-6x4-3@gated-at.bofh.it> |
| In reply to | #1227608 |
On Friday, September 18, 2015 07:08:47 AM Anaczkowski, Lukasz wrote: > From: Rafael J. Wysocki [mailto:rjw@rjwysocki.net] > Sent: Thursday, September 17, 2015 7:05 PM > > > Please *always* send PM-related patches to linux-pm@vger.kernel.org (CCed now). > > Ok, thanks for noticing. > I've addressed my patch based on output of ./scripts/get_maintainer.pl > and gave me output like this: > > Len Brown <len.brown@xxx> > Dasaratharaman Chandramouli <dasaratharaman.chandramouli@xxx> > linux-kernel@vger.kernel.org > > Should it be fixed somehow? Well, so to speak, the script is not an intelligent entity and while it can give you hints, it by no means is an ultimate source of information. If you did "grep -r -I -l APERF *" in the kernel source tree, you'll immediately see that PM uses it. And while at it, we really should only be using the APERF/MPERF ratio so I'm not sure why this patch actually matters? Thanks, Rafael -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web