|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2 2/2] xenpm: Print message for disabled commands
xenpm get-cpufreq-states currently just prints no output when cpufreq is
disabled or HWP is running. Have it print an appropriate message. The
cpufreq disabled one mirros the cpuidle disabled one.
cpufreq disabled:
$ xenpm get-cpufreq-states
Either Xen cpufreq is disabled or no valid information is registered!
Under HWP:
$ xenpm get-cpufreq-states
P-State information not supported. Try get-cpufreq-average or start.
Also allow xenpm to handle EOPNOTSUPP from the pmstat hypercalls.
EOPNOTSUPP is returned when HWP is active in some cases and allows the
differentiation from cpufreq being disabled.
Signed-off-by: Jason Andryuk <jandryuk@xxxxxxxxx>
---
v2:
New
tools/misc/xenpm.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index d982482a3f..79c618590b 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -362,7 +362,15 @@ static int show_pxstat_by_cpuid(xc_interface *xc_handle,
int cpuid)
ret = get_pxstat_by_cpuid(xc_handle, cpuid, &pxstatinfo);
if ( ret )
+ {
+ if ( ret == -ENODEV )
+ fprintf(stderr,
+ "Either Xen cpufreq is disabled or no valid information is
registered!\n");
+ else if ( ret == -EOPNOTSUPP )
+ fprintf(stderr,
+ "P-State information not supported. Try
get-cpufreq-average or start.\n");
return ret;
+ }
print_pxstat(cpuid, &pxstatinfo);
@@ -382,9 +390,11 @@ void pxstat_func(int argc, char *argv[])
{
/* show pxstates on all cpus */
int i;
- for ( i = 0; i < max_cpu_nr; i++ )
- if ( show_pxstat_by_cpuid(xc_handle, i) == -ENODEV )
+ for ( i = 0; i < max_cpu_nr; i++ ) {
+ int ret = show_pxstat_by_cpuid(xc_handle, i);
+ if ( ret == -ENODEV || ret == -EOPNOTSUPP )
break;
+ }
}
else
show_pxstat_by_cpuid(xc_handle, cpuid);
@@ -432,7 +442,7 @@ static uint64_t *sum, *sum_cx, *sum_px;
static void signal_int_handler(int signo)
{
- int i, j, k;
+ int i, j, k, ret;
struct timeval tv;
int cx_cap = 0, px_cap = 0;
xc_cputopo_t *cputopo = NULL;
@@ -473,7 +483,8 @@ static void signal_int_handler(int signo)
}
}
- if ( get_pxstat_by_cpuid(xc_handle, 0, NULL) != -ENODEV )
+ ret = get_pxstat_by_cpuid(xc_handle, 0, NULL);
+ if ( ret != -ENODEV && ret != -EOPNOTSUPP )
{
px_cap = 1;
for ( i = 0; i < max_cpu_nr; i++ )
--
2.43.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |