Thread (17 messages) 17 messages, 4 authors, 2022-01-03

Re: [PATCH v2 3/7] thermal: intel: hfi: Minimally initialize the Hardware Feedback Interface

From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: 2021-12-30 18:43:38
Also in: linux-pm, lkml

On Mon, Dec 20, 2021 at 4:23 PM Ricardo Neri
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
The Intel Hardware Feedback Interface provides guidance to the operating
system about the performance and energy efficiency capabilities of each
CPU in the system. Capabilities are numbers between 0 and 255 where a
higher number represents a higher capability. For each CPU, energy
efficiency and performance are reported as separate capabilities.

Hardware computes these capabilities based on the operating conditions of
the system such as power and thermal limits. These capabilities are shared
with the operating system in a table resident in memory. Each package in
the system has its own HFI instance. Every logical CPU in the package is
represented in the table. More than one logical CPUs may be represented in
a single table entry. When the hardware updates the table, it generates a
package-level thermal interrupt.

The size and format of the HFI table depend on the supported features and
can only be determined at runtime. To minimally initialize the HFI, parse
its features and allocate one instance per package of a data structure with
the necessary parameters to read and navigate a local copy (i.e., owned by
the driver) of individual HFI tables.

A subsequent changeset will provide per-CPU initialization and interrupt
handling.

Cc: Andi Kleen <redacted>
Cc: Aubrey Li <redacted>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: Tim Chen <redacted>
Cc: "Ravi V. Shankar" <redacted>
Reviewed-by: Len Brown <redacted>
Co-developed by: Aubrey Li [off-list ref]
Signed-off-by: Aubrey Li <redacted>
Signed-off-by: Ricardo Neri <redacted>
---
Changes since v1:
  * Renamed X86_FEATURE_INTEL_HFI as X86_FEATURE_HFI. (Boris)
  * Reworked parsing of HFI features using bitfields instead of bitmasks.
    (PeterZ).
  * Removed hfi_instance::parsed as hfi_parse_features() is called only
    once via intel_hfi_init() via thermal_throttle_init_device().
    (Rafael)
  * Converted pr_err() to pr_debug(). (Srinivas, Rafael)
  * Removed unnecessary dependency on CONFIG_SCHED_MC.
  * Renamed hfi_instance::ts_counter as hfi_instance::timestamp.
  * Renamed hfi_instance::table_base as hfi_instance::local_table and
    relocated its definition to this patch.
  * Wrapped hfi_instance::timestamp and hfi_instance:local_table in an
    anonymous union, since both point at the same location.
---
 drivers/thermal/intel/Kconfig       |  12 ++
 drivers/thermal/intel/Makefile      |   1 +
 drivers/thermal/intel/intel_hfi.c   | 175 ++++++++++++++++++++++++++++
 drivers/thermal/intel/intel_hfi.h   |  11 ++
 drivers/thermal/intel/therm_throt.c |   3 +
 5 files changed, 202 insertions(+)
 create mode 100644 drivers/thermal/intel/intel_hfi.c
 create mode 100644 drivers/thermal/intel/intel_hfi.h
diff --git a/drivers/thermal/intel/Kconfig b/drivers/thermal/intel/Kconfig
index c83ea5d04a1d..1a21ff60fdc7 100644
--- a/drivers/thermal/intel/Kconfig
+++ b/drivers/thermal/intel/Kconfig
@@ -99,3 +99,15 @@ config INTEL_MENLOW
          Intel Menlow platform.

          If unsure, say N.
+
+config INTEL_HFI
This looks like it may be too general, because HFI is not a thermal-only thing.

Maybe cal it INTEL_HFI_THERMAL?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help