[V6,00/20] intel_pmc: Add telemetry API to read counters

Message ID 20231129222132.2331261-1-david.e.box@linux.intel.com
Headers
Series intel_pmc: Add telemetry API to read counters |

Message

David E. Box Nov. 29, 2023, 10:21 p.m. UTC
  On newer Intel silicon, more IP counters are being added in Intel Platform
Monitoring Technology (PMT) telemetry spaces hosted in MMIO.  There is a
need for the intel_pmc_core driver and other drivers to access PMT hosted
telemetry in the kernel using an API. This patchset adds driver APIs to
allow registering and reading telemetry entries. It makes changes to the
intel_pmc_core driver to use these interfaces to access the low power mode
counters that are now exclusively available from PMT.

David E. Box (15):
  platform/x86/intel/vsec: Fix xa_alloc memory leak
  platform/x86/intel/vsec: Remove unnecessary return
  platform/x86/intel/vsec: Move structures to header
  platform/x86/intel/vsec: remove platform_info from vsec device
    structure
  platform/x86/intel/vsec: Use cleanup.h
  platform/x86/intel/vsec: Assign auxdev parent by argument
  platform/x86/intel/vsec: Add base address field
  platform/x86/intel/pmt: Add header to struct intel_pmt_entry
  platform/x86/intel/pmt: telemetry: Export API to read telemetry
  platform/x86/intel/pmc: Allow pmc_core_ssram_init to fail
  platform/x86/intel/pmc: Cleanup SSRAM discovery
  platform/x86/intel/pmc/mtl: Use return value from
    pmc_core_ssram_init()
  platform/x86/intel/pmc: Find and register PMC telemetry entries
  platform/x86/intel/pmc: Add debug attribute for Die C6 counter
  platform/x86/intel/pmc: Show Die C6 counter on Meteor Lake

Gayatri Kammela (1):
  platform/x86/intel/vsec: Add intel_vsec_register

Rajvi Jingar (1):
  platform/x86/intel/pmc: Display LPM requirements for multiple PMCs

Xi Pardee (3):
  platform/x86:intel/pmc: Call pmc_get_low_power_modes from platform
    init
  platform/x86/intel/pmc: Retrieve LPM information using Intel PMT
  platform/x86/intel/pmc: Read low power mode requirements for MTL-M and
    MTL-P

 drivers/platform/x86/intel/pmc/Kconfig      |   1 +
 drivers/platform/x86/intel/pmc/adl.c        |   2 +
 drivers/platform/x86/intel/pmc/cnp.c        |   2 +
 drivers/platform/x86/intel/pmc/core.c       | 185 +++++++++-----
 drivers/platform/x86/intel/pmc/core.h       |  10 +-
 drivers/platform/x86/intel/pmc/core_ssram.c | 265 +++++++++++++++++---
 drivers/platform/x86/intel/pmc/icl.c        |  10 +-
 drivers/platform/x86/intel/pmc/mtl.c        |  87 ++++++-
 drivers/platform/x86/intel/pmc/spt.c        |  10 +-
 drivers/platform/x86/intel/pmc/tgl.c        |   1 +
 drivers/platform/x86/intel/pmt/class.c      |  43 +++-
 drivers/platform/x86/intel/pmt/class.h      |  30 ++-
 drivers/platform/x86/intel/pmt/crashlog.c   |   2 +-
 drivers/platform/x86/intel/pmt/telemetry.c  | 193 +++++++++++++-
 drivers/platform/x86/intel/pmt/telemetry.h  | 126 ++++++++++
 drivers/platform/x86/intel/vsec.c           | 131 +++++-----
 drivers/platform/x86/intel/vsec.h           |  45 +++-
 17 files changed, 939 insertions(+), 204 deletions(-)
 create mode 100644 drivers/platform/x86/intel/pmt/telemetry.h


base-commit: b85ea95d086471afb4ad062012a4d73cd328fa86
  

Comments

Hans de Goede Dec. 4, 2023, 1:55 p.m. UTC | #1
Hi,

On 11/29/23 23:21, David E. Box wrote:
> On newer Intel silicon, more IP counters are being added in Intel Platform
> Monitoring Technology (PMT) telemetry spaces hosted in MMIO.  There is a
> need for the intel_pmc_core driver and other drivers to access PMT hosted
> telemetry in the kernel using an API. This patchset adds driver APIs to
> allow registering and reading telemetry entries. It makes changes to the
> intel_pmc_core driver to use these interfaces to access the low power mode
> counters that are now exclusively available from PMT.
> 
> David E. Box (15):
>   platform/x86/intel/vsec: Fix xa_alloc memory leak
>   platform/x86/intel/vsec: Remove unnecessary return
>   platform/x86/intel/vsec: Move structures to header
>   platform/x86/intel/vsec: remove platform_info from vsec device
>     structure
>   platform/x86/intel/vsec: Use cleanup.h
>   platform/x86/intel/vsec: Assign auxdev parent by argument
>   platform/x86/intel/vsec: Add base address field
>   platform/x86/intel/pmt: Add header to struct intel_pmt_entry
>   platform/x86/intel/pmt: telemetry: Export API to read telemetry
>   platform/x86/intel/pmc: Allow pmc_core_ssram_init to fail
>   platform/x86/intel/pmc: Cleanup SSRAM discovery
>   platform/x86/intel/pmc/mtl: Use return value from
>     pmc_core_ssram_init()
>   platform/x86/intel/pmc: Find and register PMC telemetry entries
>   platform/x86/intel/pmc: Add debug attribute for Die C6 counter
>   platform/x86/intel/pmc: Show Die C6 counter on Meteor Lake
> 
> Gayatri Kammela (1):
>   platform/x86/intel/vsec: Add intel_vsec_register
> 
> Rajvi Jingar (1):
>   platform/x86/intel/pmc: Display LPM requirements for multiple PMCs
> 
> Xi Pardee (3):
>   platform/x86:intel/pmc: Call pmc_get_low_power_modes from platform
>     init
>   platform/x86/intel/pmc: Retrieve LPM information using Intel PMT
>   platform/x86/intel/pmc: Read low power mode requirements for MTL-M and
>     MTL-P

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

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



> 
>  drivers/platform/x86/intel/pmc/Kconfig      |   1 +
>  drivers/platform/x86/intel/pmc/adl.c        |   2 +
>  drivers/platform/x86/intel/pmc/cnp.c        |   2 +
>  drivers/platform/x86/intel/pmc/core.c       | 185 +++++++++-----
>  drivers/platform/x86/intel/pmc/core.h       |  10 +-
>  drivers/platform/x86/intel/pmc/core_ssram.c | 265 +++++++++++++++++---
>  drivers/platform/x86/intel/pmc/icl.c        |  10 +-
>  drivers/platform/x86/intel/pmc/mtl.c        |  87 ++++++-
>  drivers/platform/x86/intel/pmc/spt.c        |  10 +-
>  drivers/platform/x86/intel/pmc/tgl.c        |   1 +
>  drivers/platform/x86/intel/pmt/class.c      |  43 +++-
>  drivers/platform/x86/intel/pmt/class.h      |  30 ++-
>  drivers/platform/x86/intel/pmt/crashlog.c   |   2 +-
>  drivers/platform/x86/intel/pmt/telemetry.c  | 193 +++++++++++++-
>  drivers/platform/x86/intel/pmt/telemetry.h  | 126 ++++++++++
>  drivers/platform/x86/intel/vsec.c           | 131 +++++-----
>  drivers/platform/x86/intel/vsec.h           |  45 +++-
>  17 files changed, 939 insertions(+), 204 deletions(-)
>  create mode 100644 drivers/platform/x86/intel/pmt/telemetry.h
> 
> 
> base-commit: b85ea95d086471afb4ad062012a4d73cd328fa86