mbox series

[v9,0/6] Support PMT features in Xe

Message ID 20240725122346.4063913-1-michael.j.ruhl@intel.com (mailing list archive)
Headers show
Series Support PMT features in Xe | expand

Message

Michael J. Ruhl July 25, 2024, 12:23 p.m. UTC
DG2 and Battlemage have the Intel Platform Monitoring Technology (PMT)
feature available, but not in the "standard" (pci endpoint) way.

Add support to the vsec and Xe drivers to allow access to the PMT space
for the DG2 and BMG devices.

The intel_vsec_register() function allows drivers to provide telemetry
header information (usually found at probe time), to allow the PMT
driver to probe the telemetry features.

Battlemage has a shared memory area (selected by index), so a callback
function is required to access the appropriate PMT data.

V2:
  Re-worked DG2 support patches using a base_adjust rather than a
  quirk.
  Updated GUID decode, for correct decode.
v3:
  Fixed a documentation issue for the pmt struct.
v4:
  Fixed a documentation issue in the xe_vsec.c module
v5:
  Addressed review comments for patch 4 (Xe driver)
  Add r/b for the first three patches
v6:
  Added kernel doc to moved data structure
  Added required include files
  Correct usage for FIELD_PREP()/FIELD_GET()
  Whitespace clean up
  Removed unnecessary type cast
v7:
  Commit message updates
v8:
  Added some r/b (patch 2 and 3).
  Updated kernel doc patch 2 (priv_data) patch 5 (base_adjust)
v9:
  Add r/b for the Xe driver patches

David E. Box (3):
  platform/x86/intel/vsec.h: Move to include/linux
  platform/x86/intel/vsec: Add PMT read callbacks
  platform/x86/intel/pmt: Use PMT callbacks

Michael J. Ruhl (3):
  drm/xe/vsec: Support BMG devices
  platform/x86/intel/pmt: Add support for PMT base adjust
  drm/xe/vsec: Add support for DG2

 MAINTAINERS                                   |   3 +-
 drivers/gpu/drm/xe/Makefile                   |   1 +
 drivers/gpu/drm/xe/xe_device.c                |   5 +
 drivers/gpu/drm/xe/xe_device_types.h          |   6 +
 drivers/gpu/drm/xe/xe_vsec.c                  | 300 ++++++++++++++++++
 drivers/gpu/drm/xe/xe_vsec.h                  |  13 +
 drivers/platform/x86/intel/pmc/core_ssram.c   |   2 +-
 drivers/platform/x86/intel/pmt/class.c        |  28 +-
 drivers/platform/x86/intel/pmt/class.h        |  11 +-
 drivers/platform/x86/intel/pmt/crashlog.c     |   2 +-
 drivers/platform/x86/intel/pmt/telemetry.c    |  21 +-
 drivers/platform/x86/intel/sdsi.c             |   3 +-
 drivers/platform/x86/intel/tpmi.c             |   3 +-
 drivers/platform/x86/intel/vsec.c             |   9 +-
 .../vsec.h => include/linux/intel_vsec.h      |  50 ++-
 15 files changed, 428 insertions(+), 29 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/xe_vsec.c
 create mode 100644 drivers/gpu/drm/xe/xe_vsec.h
 rename drivers/platform/x86/intel/vsec.h => include/linux/intel_vsec.h (61%)

Comments

Hans de Goede Aug. 12, 2024, 2:23 p.m. UTC | #1
Hi,

On 7/25/24 2:23 PM, Michael J. Ruhl wrote:
> DG2 and Battlemage have the Intel Platform Monitoring Technology (PMT)
> feature available, but not in the "standard" (pci endpoint) way.
> 
> Add support to the vsec and Xe drivers to allow access to the PMT space
> for the DG2 and BMG devices.
> 
> The intel_vsec_register() function allows drivers to provide telemetry
> header information (usually found at probe time), to allow the PMT
> driver to probe the telemetry features.
> 
> Battlemage has a shared memory area (selected by index), so a callback
> function is required to access the appropriate PMT data.

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

For patches 4 - 6 please address the review remarks and post
a v10 based on top of my review-hans branch.

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





> 
> V2:
>   Re-worked DG2 support patches using a base_adjust rather than a
>   quirk.
>   Updated GUID decode, for correct decode.
> v3:
>   Fixed a documentation issue for the pmt struct.
> v4:
>   Fixed a documentation issue in the xe_vsec.c module
> v5:
>   Addressed review comments for patch 4 (Xe driver)
>   Add r/b for the first three patches
> v6:
>   Added kernel doc to moved data structure
>   Added required include files
>   Correct usage for FIELD_PREP()/FIELD_GET()
>   Whitespace clean up
>   Removed unnecessary type cast
> v7:
>   Commit message updates
> v8:
>   Added some r/b (patch 2 and 3).
>   Updated kernel doc patch 2 (priv_data) patch 5 (base_adjust)
> v9:
>   Add r/b for the Xe driver patches
> 
> David E. Box (3):
>   platform/x86/intel/vsec.h: Move to include/linux
>   platform/x86/intel/vsec: Add PMT read callbacks
>   platform/x86/intel/pmt: Use PMT callbacks
> 
> Michael J. Ruhl (3):
>   drm/xe/vsec: Support BMG devices
>   platform/x86/intel/pmt: Add support for PMT base adjust
>   drm/xe/vsec: Add support for DG2
> 
>  MAINTAINERS                                   |   3 +-
>  drivers/gpu/drm/xe/Makefile                   |   1 +
>  drivers/gpu/drm/xe/xe_device.c                |   5 +
>  drivers/gpu/drm/xe/xe_device_types.h          |   6 +
>  drivers/gpu/drm/xe/xe_vsec.c                  | 300 ++++++++++++++++++
>  drivers/gpu/drm/xe/xe_vsec.h                  |  13 +
>  drivers/platform/x86/intel/pmc/core_ssram.c   |   2 +-
>  drivers/platform/x86/intel/pmt/class.c        |  28 +-
>  drivers/platform/x86/intel/pmt/class.h        |  11 +-
>  drivers/platform/x86/intel/pmt/crashlog.c     |   2 +-
>  drivers/platform/x86/intel/pmt/telemetry.c    |  21 +-
>  drivers/platform/x86/intel/sdsi.c             |   3 +-
>  drivers/platform/x86/intel/tpmi.c             |   3 +-
>  drivers/platform/x86/intel/vsec.c             |   9 +-
>  .../vsec.h => include/linux/intel_vsec.h      |  50 ++-
>  15 files changed, 428 insertions(+), 29 deletions(-)
>  create mode 100644 drivers/gpu/drm/xe/xe_vsec.c
>  create mode 100644 drivers/gpu/drm/xe/xe_vsec.h
>  rename drivers/platform/x86/intel/vsec.h => include/linux/intel_vsec.h (61%)
>
Michael J. Ruhl Aug. 12, 2024, 6:13 p.m. UTC | #2
> -----Original Message-----
> From: Hans de Goede <hdegoede@redhat.com>
> Sent: Monday, August 12, 2024 10:23 AM
> To: Ruhl, Michael J <michael.j.ruhl@intel.com>; intel-xe@lists.freedesktop.org;
> platform-driver-x86@vger.kernel.org; david.e.box@linux.intel.com;
> ilpo.jarvinen@linux.intel.com; Brost, Matthew <matthew.brost@intel.com>;
> andriy.shevchenko@linux.intel.com
> Subject: Re: [PATCH v9 0/6] Support PMT features in Xe
> 
> Hi,
> 
> On 7/25/24 2:23 PM, Michael J. Ruhl wrote:
> > DG2 and Battlemage have the Intel Platform Monitoring Technology (PMT)
> > feature available, but not in the "standard" (pci endpoint) way.
> >
> > Add support to the vsec and Xe drivers to allow access to the PMT
> > space for the DG2 and BMG devices.
> >
> > The intel_vsec_register() function allows drivers to provide telemetry
> > header information (usually found at probe time), to allow the PMT
> > driver to probe the telemetry features.
> >
> > Battlemage has a shared memory area (selected by index), so a callback
> > function is required to access the appropriate PMT data.
> 
> Thank you for your patch-series, I've applied patches 1-3 to my review-hans
> branch:
> https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-
> x86.git/log/?h=review-hans
> 
> For patches 4 - 6 please address the review remarks and post a v10 based on
> top of my review-hans branch.
> 
> 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.

Hi Hans,

I just post V10 of patch 4 (from the above branch "review-hans"

5 and 6 need some additional work/testing that I need to defer for now.

The commit message looks different in the posted email, than it does in my tree.
Not sure what happened to the <cr>s...

Please let me know if I missed anything.

Thanks!

M

> Regards,
> 
> Hans
> 
> 
> 
> 
> 
> >
> > V2:
> >   Re-worked DG2 support patches using a base_adjust rather than a
> >   quirk.
> >   Updated GUID decode, for correct decode.
> > v3:
> >   Fixed a documentation issue for the pmt struct.
> > v4:
> >   Fixed a documentation issue in the xe_vsec.c module
> > v5:
> >   Addressed review comments for patch 4 (Xe driver)
> >   Add r/b for the first three patches
> > v6:
> >   Added kernel doc to moved data structure
> >   Added required include files
> >   Correct usage for FIELD_PREP()/FIELD_GET()
> >   Whitespace clean up
> >   Removed unnecessary type cast
> > v7:
> >   Commit message updates
> > v8:
> >   Added some r/b (patch 2 and 3).
> >   Updated kernel doc patch 2 (priv_data) patch 5 (base_adjust)
> > v9:
> >   Add r/b for the Xe driver patches
> >
> > David E. Box (3):
> >   platform/x86/intel/vsec.h: Move to include/linux
> >   platform/x86/intel/vsec: Add PMT read callbacks
> >   platform/x86/intel/pmt: Use PMT callbacks
> >
> > Michael J. Ruhl (3):
> >   drm/xe/vsec: Support BMG devices
> >   platform/x86/intel/pmt: Add support for PMT base adjust
> >   drm/xe/vsec: Add support for DG2
> >
> >  MAINTAINERS                                   |   3 +-
> >  drivers/gpu/drm/xe/Makefile                   |   1 +
> >  drivers/gpu/drm/xe/xe_device.c                |   5 +
> >  drivers/gpu/drm/xe/xe_device_types.h          |   6 +
> >  drivers/gpu/drm/xe/xe_vsec.c                  | 300 ++++++++++++++++++
> >  drivers/gpu/drm/xe/xe_vsec.h                  |  13 +
> >  drivers/platform/x86/intel/pmc/core_ssram.c   |   2 +-
> >  drivers/platform/x86/intel/pmt/class.c        |  28 +-
> >  drivers/platform/x86/intel/pmt/class.h        |  11 +-
> >  drivers/platform/x86/intel/pmt/crashlog.c     |   2 +-
> >  drivers/platform/x86/intel/pmt/telemetry.c    |  21 +-
> >  drivers/platform/x86/intel/sdsi.c             |   3 +-
> >  drivers/platform/x86/intel/tpmi.c             |   3 +-
> >  drivers/platform/x86/intel/vsec.c             |   9 +-
> >  .../vsec.h => include/linux/intel_vsec.h      |  50 ++-
> >  15 files changed, 428 insertions(+), 29 deletions(-)  create mode
> > 100644 drivers/gpu/drm/xe/xe_vsec.c  create mode 100644
> > drivers/gpu/drm/xe/xe_vsec.h  rename drivers/platform/x86/intel/vsec.h
> > => include/linux/intel_vsec.h (61%)
> >