Messages in this thread | | | From | "Rafael J. Wysocki" <> | Date | Mon, 27 Mar 2023 18:51:33 +0200 | Subject | Re: [PATCH v3 16/24] thermal: intel: hfi: Define a default class for unclassified tasks |
| |
On Tue, Feb 7, 2023 at 6:02 AM Ricardo Neri <ricardo.neri-calderon@linux.intel.com> wrote: > > A task may be unclassified if it has been recently created, spend most of > its lifetime sleeping, or hardware has not provided a classification. > > Most tasks will be eventually classified as scheduler's IPC class 1 > (HFI class 0). This class corresponds to the capabilities in the legacy, > classless, HFI table. > > IPC class 1 is a reasonable choice until hardware provides an actual > classification. Meanwhile, the scheduler will place classes of tasks with > higher IPC scores on higher-performance CPUs. > > Cc: Ben Segall <bsegall@google.com> > Cc: Daniel Bristot de Oliveira <bristot@redhat.com> > Cc: Dietmar Eggemann <dietmar.eggemann@arm.com> > Cc: Ionela Voinescu <ionela.voinescu@arm.com> > Cc: Joel Fernandes (Google) <joel@joelfernandes.org> > Cc: Len Brown <len.brown@intel.com> > Cc: Lukasz Luba <lukasz.luba@arm.com> > Cc: Mel Gorman <mgorman@suse.de> > Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> > Cc: Steven Rostedt <rostedt@goodmis.org> > Cc: Tim C. Chen <tim.c.chen@intel.com> > Cc: Valentin Schneider <vschneid@redhat.com> > Cc: x86@kernel.org > Cc: linux-pm@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Fine with me, so
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> --- > Changes since v2: > * None > > Changes since v1: > * Now the default class is 1. > --- > drivers/thermal/intel/intel_hfi.c | 15 ++++++++++++++- > 1 file changed, 14 insertions(+), 1 deletion(-) > > diff --git a/drivers/thermal/intel/intel_hfi.c b/drivers/thermal/intel/intel_hfi.c > index fa9b4a678d92..7ea6acce7107 100644 > --- a/drivers/thermal/intel/intel_hfi.c > +++ b/drivers/thermal/intel/intel_hfi.c > @@ -185,6 +185,19 @@ static struct workqueue_struct *hfi_updates_wq; > #ifdef CONFIG_IPC_CLASSES > static int __percpu *hfi_ipcc_scores; > > +/* > + * A task may be unclassified if it has been recently created, spend most of > + * its lifetime sleeping, or hardware has not provided a classification. > + * > + * Most tasks will be classified as scheduler's IPC class 1 (HFI class 0) > + * eventually. Meanwhile, the scheduler will place classes of tasks with higher > + * IPC scores on higher-performance CPUs. > + * > + * IPC class 1 is a reasonable choice. It matches the performance capability > + * of the legacy, classless, HFI table. > + */ > +#define HFI_UNCLASSIFIED_DEFAULT 1 > + > void intel_hfi_update_ipcc(struct task_struct *curr) > { > union hfi_thread_feedback_char_msr msr; > @@ -215,7 +228,7 @@ unsigned long intel_hfi_get_ipcc_score(unsigned short ipcc, int cpu) > return -EINVAL; > > if (ipcc == IPC_CLASS_UNCLASSIFIED) > - return -EINVAL; > + ipcc = HFI_UNCLASSIFIED_DEFAULT; > > /* > * Scheduler IPC classes start at 1. HFI classes start at 0. > -- > 2.25.1 >
| |