Re: [PATCH 0/7] Add TPMI support

From: Hans de Goede
Date: Mon Feb 06 2023 - 07:50:22 EST


Hi,

On 2/2/23 02:07, Srinivas Pandruvada wrote:
> The TPMI (Topology Aware Register and PM Capsule Interface) provides a
> flexible, extendable and PCIe enumerable MMIO interface for PM features.
>
> For example Intel Speed Select Technology (Intel SST) can replace all
> mailbox commands with direct MMIO access. This reduces latency for
> SST commands and also defines an architectural interface which will
> persist for several next generations.
>
> Also Intel RAPL (Running Average Power Limit) provides a MMIO
> interface using TPMI. This has advantage over traditional MSR
> (Model Specific Register) interface, where a thread needs to be scheduled
> on the target CPU to read or write. Also the RAPL features vary between
> CPU models, and hence lot of model specific code. Here TPMI provides an
> architectural interface by providing hierarchical tables and fields,
> which will not need any model specific implementation.
>
> Same value is for Intel Uncore frequency where MSR interface can't
> be used because of multiple domains.
>
> The TPMI interface uses a PCI VSEC structure to expose the location of
> MMIO region, which is handled by Intel VSEC driver. Intel VSEC driver is
> already present in upstream kernel.
>
> This series contains the base driver, which parses TPMI MMIO region
> and creates device nodes for supported features. The current set of
> PM feature support includes, Intel Speed Select, RAPL, Uncore frequency
> scaling.
>
> The first there patches updates Intel VSEC driver to add TPMI VSEC ID
> and enhance to reuse the code.
> The next three patches adds TPMI base driver support.
> The last patch adds MAINTAINERS entry.
>
> The TPMI documentation can be downloaded from:
> https://github.com/intel/tpmi_power_management
>
> This series cleanly applies on 6.2-rc1.

Thank you for your patch-series, I've applied the series to my
review-hans branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans

Note it will show up in my review-hans branch once I've pushed my
local branch there, which might take a while.

Once I've run some tests on this branch the patches there will be
added to the platform-drivers-x86/for-next branch and eventually
will be included in the pdx86 pull-request to Linus for the next
merge-window.

Regards,

Hans




> Srinivas Pandruvada (7):
> platform/x86/intel/vsec: Add TPMI ID
> platform/x86/intel/vsec: Enhance and Export intel_vsec_add_aux()
> platform/x86/intel/vsec: Support private data
> platform/x86/intel: Intel TPMI enumeration driver
> platform/x86/intel/tpmi: Process CPU package mapping
> platform/x86/intel/tpmi: ADD tpmi external interface for tpmi feature
> drivers
> MAINTAINERS: Add entry for TPMI driver
>
> MAINTAINERS | 6 +
> drivers/platform/x86/intel/Kconfig | 13 +
> drivers/platform/x86/intel/Makefile | 4 +
> drivers/platform/x86/intel/tpmi.c | 415 ++++++++++++++++++++++++++++
> drivers/platform/x86/intel/vsec.c | 21 +-
> drivers/platform/x86/intel/vsec.h | 6 +
> include/linux/intel_tpmi.h | 30 ++
> 7 files changed, 490 insertions(+), 5 deletions(-)
> create mode 100644 drivers/platform/x86/intel/tpmi.c
> create mode 100644 include/linux/intel_tpmi.h
>