|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v5 14/18] xen/cpufreq: introduce GET_CPUFREQ_CPPC sub-cmd
On 27.05.2025 10:48, Penny Zheng wrote:
> --- a/tools/misc/xenpm.c
> +++ b/tools/misc/xenpm.c
> @@ -69,6 +69,7 @@ void show_help(void)
> " set-max-cstate <num>|'unlimited' [<num2>|'unlimited']\n"
> " set the C-State limitation
> (<num> >= 0) and\n"
> " optionally the C-sub-state
> limitation (<num2> >= 0)\n"
> + " get-cpufreq-cppc [cpuid] list cpu cppc parameter of
> CPU <cpuid> or all\n"
> " set-cpufreq-cppc [cpuid] [balance|performance|powersave]
> <param:val>*\n"
> " set Hardware P-State (HWP)
> parameters\n"
> " on CPU <cpuid> or all if
> omitted.\n"
> @@ -812,33 +813,7 @@ static void print_cpufreq_para(int cpuid, struct
> xc_get_cpufreq_para *p_cpufreq)
>
> printf("scaling_driver : %s\n", p_cpufreq->scaling_driver);
>
> - if ( hwp )
> - {
> - const xc_cppc_para_t *cppc = &p_cpufreq->u.cppc_para;
> -
> - printf("cppc variables :\n");
> - printf(" hardware limits : lowest [%"PRIu32"] lowest nonlinear
> [%"PRIu32"]\n",
> - cppc->lowest, cppc->lowest_nonlinear);
> - printf(" : nominal [%"PRIu32"] highest
> [%"PRIu32"]\n",
> - cppc->nominal, cppc->highest);
> - printf(" configured limits : min [%"PRIu32"] max [%"PRIu32"]
> energy perf [%"PRIu32"]\n",
> - cppc->minimum, cppc->maximum, cppc->energy_perf);
> -
> - if ( cppc->features & XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW )
> - {
> - unsigned int activity_window;
> - const char *units;
> -
> - activity_window = calculate_activity_window(cppc, &units);
> - printf(" : activity_window [%"PRIu32" %s]\n",
> - activity_window, units);
> - }
> -
> - printf(" : desired [%"PRIu32"%s]\n",
> - cppc->desired,
> - cppc->desired ? "" : " hw autonomous");
> - }
> - else
> + if ( !hwp )
> {
> if ( p_cpufreq->gov_num )
> printf("scaling_avail_gov : %s\n",
I'm not sure it is a good idea to alter what is being output for
get-cpufreq-para. People may simply miss that output then, without having
any indication where it went.
> --- a/xen/include/public/sysctl.h
> +++ b/xen/include/public/sysctl.h
> @@ -462,7 +462,6 @@ struct xen_get_cpufreq_para {
> struct xen_ondemand ondemand;
> } u;
> } s;
> - struct xen_cppc_para cppc_para;
> } u;
>
> int32_t turbo_enabled;
> @@ -493,6 +492,7 @@ struct xen_sysctl_pm_op {
> #define SET_CPUFREQ_PARA (CPUFREQ_PARA | 0x03)
> #define GET_CPUFREQ_AVGFREQ (CPUFREQ_PARA | 0x04)
> #define SET_CPUFREQ_CPPC (CPUFREQ_PARA | 0x05)
> + #define GET_CPUFREQ_CPPC (CPUFREQ_PARA | 0x06)
>
> /* set/reset scheduler power saving option */
> #define XEN_SYSCTL_pm_op_set_sched_opt_smt 0x21
> @@ -517,6 +517,7 @@ struct xen_sysctl_pm_op {
> uint32_t cpuid;
> union {
> struct xen_get_cpufreq_para get_para;
> + struct xen_cppc_para cppc_para;
> struct xen_set_cpufreq_gov set_gov;
> struct xen_set_cpufreq_para set_para;
> struct xen_set_cppc_para set_cppc;
This (tools-only) public interface change, otoh, may be okay to do.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |