Re: [PATCH v1] cpufreq: intel_pstate: Make it possible to avoid enabling CAS

From: srinivas pandruvada
Date: Sun Feb 09 2025 - 22:14:23 EST


On Fri, 2025-02-07 at 13:55 +0100, Rafael J. Wysocki wrote:
> On Mon, Jan 27, 2025 at 3:07 PM Rafael J. Wysocki <rjw@xxxxxxxxxxxxx>
> wrote:
> >
> > From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> >
> > Capacity-aware scheduling (CAS) is enabled by default by
> > intel_pstate on
> > hybrid systems without SMT, but in some usage scenarios it may be
> > more
> > attractive to place tasks for maximum CPU performance regardless of
> > the
> > extra cost in terms of energy, which is the case on such systems
> > when
> > CAS is not enabled, so introduce a command line option to forbid
> > intel_pstate to enable CAS.
> >
> > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
>
> Srinivas,
>
> Any concerns or comments?
>

No.

Acked-by:Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx>

> > ---
> >  Documentation/admin-guide/kernel-parameters.txt |    3 +++
> >  Documentation/admin-guide/pm/intel_pstate.rst   |    3 +++
> >  drivers/cpufreq/intel_pstate.c                  |    9 +++++++++
> >  3 files changed, 15 insertions(+)
> >
> > --- a/Documentation/admin-guide/kernel-parameters.txt
> > +++ b/Documentation/admin-guide/kernel-parameters.txt
> > @@ -2295,6 +2295,9 @@
> >                         per_cpu_perf_limits
> >                           Allow per-logical-CPU P-State performance
> > control limits using
> >                           cpufreq sysfs interface
> > +                       no_cas
> > +                         Do not enable capacity-aware scheduling
> > (CAS) on
> > +                         hybrid systems
> >
> >         intremap=       [X86-64,Intel-IOMMU,EARLY]
> >                         on      enable Interrupt Remapping
> > (default)
> > --- a/Documentation/admin-guide/pm/intel_pstate.rst
> > +++ b/Documentation/admin-guide/pm/intel_pstate.rst
> > @@ -696,6 +696,9 @@
> >         Use per-logical-CPU P-State limits (see `Coordination of P-
> > state
> >         Limits`_ for details).
> >
> > +``no_cas``
> > +       Do not enable capacity-aware scheduling (CAS) which is
> > enabled by
> > +       default on hybrid systems.
> >
> >  Diagnostics and Tuning
> >  ======================
> > --- a/drivers/cpufreq/intel_pstate.c
> > +++ b/drivers/cpufreq/intel_pstate.c
> > @@ -936,6 +936,8 @@
> >         NULL,
> >  };
> >
> > +static bool no_cas __ro_after_init;
> > +
> >  static struct cpudata *hybrid_max_perf_cpu __read_mostly;
> >  /*
> >   * Protects hybrid_max_perf_cpu, the capacity_perf fields in
> > struct cpudata,
> > @@ -1041,6 +1043,10 @@
> >
> >  static void hybrid_init_cpu_capacity_scaling(bool refresh)
> >  {
> > +       /* Bail out if enabling capacity-aware scheduling is
> > prohibited. */
> > +       if (no_cas)
> > +               return;
> > +
> >         /*
> >          * If hybrid_max_perf_cpu is set at this point, the hybrid
> > CPU capacity
> >          * scaling has been enabled already and the driver is just
> > changing the
> > @@ -3835,6 +3841,9 @@
> >         if (!strcmp(str, "no_hwp"))
> >                 no_hwp = 1;
> >
> > +       if (!strcmp(str, "no_cas"))
> > +               no_cas = true;
> > +
> >         if (!strcmp(str, "force"))
> >                 force_load = 1;
> >         if (!strcmp(str, "hwp_only"))
> >
> >
> >
> >
>