[PATCH 0/9] thermal: intel: hfi: Prework for the virtualization of HFI

From: Ricardo Neri
Date: Fri Feb 02 2024 - 23:04:18 EST


Zhao Liu will soon post a patchset to virtualize the Hardware Feedback
Interface (HFI) and Intel Thread Director (ITD) for the benefit of virtual
machines that make use of ITD for scheduling. His experiments show up to
14% improvement in performance in some workloads and configurations. This
series lays the foundation for his patchset. I will share Zhao's patchset
when available.

Patches 1-3 reorganize portions of the HFI driver to facilitate the
implementation of virtual HFI tables. In my opinion, this reorganization is
valuable on its own.

Patches 4-6 introduce the concept of ITD classes and enable ITD.

Patches 7-9 add support to reset the ITD classification history of the
current task to be used during context switch.

Several patches of the series were cherry-picked from my last submission
to support IPC classes of tasks for scheduling [1], but this series does
not touch the scheduler. I have kept the Reviewed-by and Acked-by tags of
the cherry-picked patches.

In this iteration, the virtualization of HFI requires that HFI and ITD are
unconditionally enabled in the bare-metal system. This conflicts with a
recent patchset from Stanislaw [2] that only enables HFI if there are
user space entities listening to thermal netlink events. I am not sure
how to resolve this conflict. Please see patch 6 for a discussion.

Patches apply cleanly on Rafael's master and testing branches at the time
of posting.

Thanks and BR,
Ricardo

[1] https://lore.kernel.org/all/20230613042422.5344-1-ricardo.neri-calderon@xxxxxxxxxxxxxxx/
[2] https://lore.kernel.org/all/20240131120535.933424-1-stanislaw.gruszka@xxxxxxxxxxxxxxx/


Ricardo Neri (6):
thermal: intel: hfi: Introduce Intel Thread Director classes
x86/cpufeatures: Add the Intel Thread Director feature definitions
thermal: intel: hfi: Enable Intel Thread Director
x86/cpufeatures: Add feature bit for HRESET
x86/hreset: Configure history reset
x86/cpu: Introduce interface to reset hardware history

Zhao Liu (2):
thermal: intel: hfi: Relocate bit definitions of HFI registers
thermal: intel: hfi: Introduce the hfi_table structure

Zhuocheng Ding (1):
thermal: intel: hfi: Move selected data structures to a header file

MAINTAINERS | 1 +
arch/x86/include/asm/cpufeatures.h | 2 +
arch/x86/include/asm/hfi.h | 85 +++++++++++++++
arch/x86/include/asm/hreset.h | 30 ++++++
arch/x86/include/asm/msr-index.h | 13 +++
arch/x86/kernel/cpu/common.c | 31 +++++-
arch/x86/kernel/cpu/cpuid-deps.c | 1 +
drivers/thermal/intel/intel_hfi.c | 165 +++++++++++++++--------------
8 files changed, 245 insertions(+), 83 deletions(-)
create mode 100644 arch/x86/include/asm/hfi.h
create mode 100644 arch/x86/include/asm/hreset.h

--
2.25.1