|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 08/13] xenpm: Print HWP parameters
On 03.05.2021 21:28, Jason Andryuk wrote:
> --- a/tools/misc/xenpm.c
> +++ b/tools/misc/xenpm.c
> @@ -708,6 +708,43 @@ void start_gather_func(int argc, char *argv[])
> pause();
> }
>
> +static void calculate_hwp_activity_window(const xc_hwp_para_t *hwp,
> + unsigned int *activity_window,
> + const char **units)
> +{
> + unsigned int mantissa = hwp->activity_window & 0x7f;
> + unsigned int exponent = ( hwp->activity_window >> 7 ) & 0x7;
Excess blanks inside the parentheses.
> + unsigned int multiplier = 1;
> +
> + if ( hwp->activity_window == 0 )
> + {
> + *units = "hardware selected";
> + *activity_window = 0;
> +
> + return;
> + }
> +
> + if ( exponent >= 6 )
> + {
> + *units = "s";
> + exponent -= 6;
> + }
> + else if ( exponent >= 3 )
> + {
> + *units = "ms";
> + exponent -= 3;
> + }
> + else
> + {
> + *units = "us";
> + }
> +
> + for ( unsigned int i = 0; i < exponent; i++ )
This requires the compiler to default to C99 mode, which I don't
think we enforce just yet.
> + multiplier *= 10;
> +
> + *activity_window = mantissa * multiplier;
> +}
> +
> /* print out parameters about cpu frequency */
> static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para
> *p_cpufreq)
> {
> @@ -777,6 +814,40 @@ static void print_cpufreq_para(int cpuid, struct
> xc_get_cpufreq_para *p_cpufreq)
> p_cpufreq->scaling_cur_freq);
> }
>
> + if ( strcmp(p_cpufreq->scaling_governor, "hwp-internal") == 0 )
> + {
> + const xc_hwp_para_t *hwp = &p_cpufreq->u.hwp_para;
> +
> + printf("hwp variables :\n");
> + printf(" hardware limits : lowest [%u] most_efficient [%u]\n",
> + hwp->hw_lowest, hwp->hw_most_efficient);
> + printf(" hardware limits : guaranteed [%u] highest [%u]\n",
> + hwp->hw_guaranteed, hwp->hw_highest);
> + printf(" configured limits : min [%u] max [%u] energy_perf [%u]\n",
> + hwp->minimum, hwp->maximum, hwp->energy_perf);
> +
> + if ( hwp->hw_feature & XEN_SYSCTL_HWP_FEAT_ENERGY_PERF )
> + {
> + printf(" configured limits : energy_perf [%u%s]\n",
> + hwp->energy_perf,
> + hwp->energy_perf ? "" : " hw autonomous");
> + }
> +
> + if ( hwp->hw_feature & XEN_SYSCTL_HWP_FEAT_ACT_WINDOW )
> + {
> + unsigned int activity_window;
> + const char *units;
> +
> + calculate_hwp_activity_window(hwp, &activity_window, &units);
> + printf(" configured limits : activity_window [%u %s]\n",
> + activity_window, units);
> + }
> +
> + printf(" configured limits : desired [%u%s]\n",
> + hwp->desired,
> + hwp->desired ? "" : " hw autonomous");
> + }
I suppose output readability would improve if you didn't repeat
"hardware limits :" and "configured limits :" on continuation-like
lines, but rather simply indented by enough spaces.
Also again please again omit an unnecessary pair of braces.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |