On 30/10/15 17:49, Jan Beulich wrote:
> I was quite surprised to find "cpufreq=off" not doing what one would
> expect it to do. Fix this.
>
> Signed-off-by: Jan Beulich <jbeul...@suse.com>
>
> --- a/docs/misc/xen-command-line.markdown
> +++ b/docs/misc/xen-command-line.markdown
> @@ -391,11 +391,12 @@ If set, force use of the performance cou
>  available support.
>  
>  ### cpufreq
> -> `= dom0-kernel | none | 
> xen[,[powersave|performance|ondemand|userspace][,<maxfreq>][,[<minfreq>][,[verbose]]]]`
> +> `= none | {{ <boolean> | xen } 
> [:[powersave|performance|ondemand|userspace][,<maxfreq>][,[<minfreq>][,[verbose]]]]}
>  | dom0-kernel`

If I am reading the parsing correctly below, the insertion if ':' is to
match the previous behaviour? (or have I missed something?)

~Andrew

>  
>  > Default: `xen`
>  
> -Indicate where the responsibility for driving power states lies.
> +Indicate where the responsibility for driving power states lies.  Note that 
> the
> +choice of `dom0-kernel` is deprecated and not supported by all Dom0 kernels.
>  
>  * Default governor policy is ondemand.
>  * `<maxfreq>` and `<minfreq>` are integers which represent max and min 
> processor frequencies
> --- a/xen/drivers/cpufreq/cpufreq.c
> +++ b/xen/drivers/cpufreq/cpufreq.c
> @@ -64,9 +64,14 @@ enum cpufreq_controller cpufreq_controll
>  
>  static void __init setup_cpufreq_option(char *str)
>  {
> -    char *arg;
> +    char *arg = strpbrk(str, ",:");
> +    int choice;
>  
> -    if ( !strcmp(str, "dom0-kernel") )
> +    if ( arg )
> +        *arg++ = '\0';
> +    choice = parse_bool(str);
> +
> +    if ( choice < 0 && !strcmp(str, "dom0-kernel") )
>      {
>          xen_processor_pmbits &= ~XEN_PROCESSOR_PM_PX;
>          cpufreq_controller = FREQCTL_dom0_kernel;
> @@ -74,19 +79,20 @@ static void __init setup_cpufreq_option(
>          return;
>      }
>  
> -    if ( !strcmp(str, "none") )
> +    if ( choice == 0 || !strcmp(str, "none") )
>      {
>          xen_processor_pmbits &= ~XEN_PROCESSOR_PM_PX;
>          cpufreq_controller = FREQCTL_none;
>          return;
>      }
>  
> -    if ( (arg = strpbrk(str, ",:")) != NULL )
> -        *arg++ = '\0';
> -
> -    if ( !strcmp(str, "xen") )
> +    if ( choice > 0 || !strcmp(str, "xen") )
> +    {
> +        xen_processor_pmbits |= XEN_PROCESSOR_PM_PX;
> +        cpufreq_controller = FREQCTL_xen;
>          if ( arg && *arg )
>              cpufreq_cmdline_parse(arg);
> +    }
>  }
>  custom_param("cpufreq", setup_cpufreq_option);
>  
>
>
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to