* [PATCHv2] xenpm: Add option to report average CPU frequency
@ 2016-01-19 11:27 Malcolm Crossley
2016-01-19 16:48 ` Ian Campbell
0 siblings, 1 reply; 2+ messages in thread
From: Malcolm Crossley @ 2016-01-19 11:27 UTC (permalink / raw)
To: ian.jackson, stefano.stabellini, ian.campbell, wei.liu2
Cc: Malcolm Crossley, xen-devel
The average is calculated over the period of time from the last
xenpm report of the average CPU frequency.
Reporting the average CPU frequency helps confirm the level of turbo
boost being achieved per CPU.
Signed-off-by: Malcolm Crossley <malcolm.crossley@citrix.com>
---
tools/misc/xenpm.c | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index 08f2242..a2edee5 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -45,6 +45,8 @@ void show_help(void)
"xenpm command list:\n\n"
" get-cpuidle-states [cpuid] list cpu idle info of CPU <cpuid> or all\n"
" get-cpufreq-states [cpuid] list cpu freq info of CPU <cpuid> or all\n"
+ " get-cpufreq-average [cpuid] average cpu frequency since last invocation\n"
+ " for CPU <cpuid> or all\n"
" get-cpufreq-para [cpuid] list cpu freq parameter of CPU <cpuid> or all\n"
" set-scaling-maxfreq [cpuid] <HZ> set max cpu frequency <HZ> on CPU <cpuid>\n"
" or all CPUs\n"
@@ -343,6 +345,40 @@ void pxstat_func(int argc, char *argv[])
show_pxstat_by_cpuid(xc_handle, cpuid);
}
+static int show_cpufreq_by_cpuid(xc_interface *xc_handle, int cpuid)
+{
+ int ret = 0;
+ int average_cpufreq;
+
+ ret = get_avgfreq_by_cpuid(xc_handle, cpuid, &average_cpufreq);
+ if ( ret )
+ return ret;
+
+ printf("cpu id : %d\n", cpuid);
+ printf("average cpu frequency: %d\n", average_cpufreq);
+ printf("\n");
+ return 0;
+}
+
+void cpufreq_func(int argc, char *argv[])
+{
+ int cpuid = -1;
+
+ if ( argc > 0 )
+ parse_cpuid(argv[0], &cpuid);
+
+ if ( cpuid < 0 )
+ {
+ /* show average frequency on all cpus */
+ int i;
+ for ( i = 0; i < max_cpu_nr; i++ )
+ if ( show_cpufreq_by_cpuid(xc_handle, i) == -ENODEV )
+ break;
+ }
+ else
+ show_cpufreq_by_cpuid(xc_handle, cpuid);
+}
+
static uint64_t usec_start, usec_end;
static struct xc_cx_stat *cxstat, *cxstat_start, *cxstat_end;
static struct xc_px_stat *pxstat, *pxstat_start, *pxstat_end;
@@ -1129,6 +1165,7 @@ struct {
{ "help", help_func },
{ "get-cpuidle-states", cxstat_func },
{ "get-cpufreq-states", pxstat_func },
+ { "get-cpufreq-average", cpufreq_func },
{ "start", start_gather_func },
{ "get-cpufreq-para", cpufreq_para_func },
{ "set-scaling-maxfreq", scaling_max_freq_func },
--
1.7.12.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCHv2] xenpm: Add option to report average CPU frequency
2016-01-19 11:27 [PATCHv2] xenpm: Add option to report average CPU frequency Malcolm Crossley
@ 2016-01-19 16:48 ` Ian Campbell
0 siblings, 0 replies; 2+ messages in thread
From: Ian Campbell @ 2016-01-19 16:48 UTC (permalink / raw)
To: Malcolm Crossley, ian.jackson, stefano.stabellini, wei.liu2; +Cc: xen-devel
On Tue, 2016-01-19 at 11:27 +0000, Malcolm Crossley wrote:
> The average is calculated over the period of time from the last
> xenpm report of the average CPU frequency.
>
> Reporting the average CPU frequency helps confirm the level of turbo
> boost being achieved per CPU.
>
> Signed-off-by: Malcolm Crossley <malcolm.crossley@citrix.com>
Acked + applied, thanks.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-01-19 16:48 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-19 11:27 [PATCHv2] xenpm: Add option to report average CPU frequency Malcolm Crossley
2016-01-19 16:48 ` Ian Campbell
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).