From: Harish Chegondi <harish.chegondi@intel.com>
To: <intel-xe@lists.freedesktop.org>
Cc: <ashutosh.dixit@intel.com>, <james.ausmus@intel.com>,
<felix.j.degrood@intel.com>, <matias.a.cabral@intel.com>,
<joshua.santosh.ranjan@intel.com>, <shubham.kumar@intel.com>,
<matthew.d.roper@intel.com>, <matthew.olson@intel.com>
Subject: Re: [PATCH v7 0/7] Add support for EU stall sampling
Date: Tue, 31 Dec 2024 10:00:48 -0800 [thread overview]
Message-ID: <Z3QxULWm-4col5VW@intel.com> (raw)
In-Reply-To: <cover.1734693129.git.harish.chegondi@intel.com>
On Fri, Dec 20, 2024 at 03:22:49AM -0800, Harish Chegondi wrote:
> The following patch series add support for EU stall sampling,
> a new hardware feature first added in PVC and is being supported
> in XE2 and later architecture GPUs. This feature would enable
> capturing of EU stall data which include the IP address of the
> instruction stalled and various stall reason counts.
>
> Support for this feature is being added into Mesa.
> https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30142
>
> A new test in the IGT repo:
> https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
> is also under development to test this feature in the driver. This
> patch has undergone basic testing with the new IGT test that is under
> development.
IGT patch that adds tests for EU stall sampling is:
https://patchwork.freedesktop.org/series/143030/
> Thank You.
-Harish.
>
> v7: a. Renamed input property DRM_XE_EU_STALL_PROP_EVENT_REPORT_COUNT
> to DRM_XE_EU_STALL_PROP_WAIT_NUM_REPORTS to be consistent with
> OA. Renamed the corresponding internal variables.
> b. Fixed some commit messages based on review feedback.
> c. Changed sampling_rates from a pointer to flexible array.
>
> v6: a. Changed the uAPI input to accept sampling rate in GPU cycles
> instead of sampling rate multiplier.
> b. Fix buffer wrap around over write bug (Matt Olson).
> c. Include EU stall sampling rates information and per XeCore buffer size in the query information.
>
> v5: Addressed review feedback from v4 including
> a. Removed DRM_XE_EU_STALL_PROP_POLL_PERIOD from the uAPI (Ashutosh)
> b. Separated the patches for Xe_HPC and Xe2 (Matt R)
> c. Moved read() returning -EIO into a separate patch
> d. Removed spinlocks around set_bit() and clear_bit() (Matt R)
> e. Renamed several variables, structures and enums (Ashutosh and
> Matt R)
> f. Addressed other review feedback.
> v4: Addressed review feedback from v3 including
> a. Split the patch into multiple patches (Matt R)
> b. Added a new device query to get EU stall info (Ashutosh)
> c. Renamed all Dss to xecore (Matt R)
> d. Removed buffer size and disable at open input properties. (Matt R)
> e. Removed the "_SHIFT" macros (Matt R)
> f. Allocate the EU stall buffer only on system memory.
> g. Changed the work arounds to OOB (Matt R)
> h. Other review feedback.
> v3: a. Removed data header and changed read() to return -EIO when data is dropped by the HW.
> b. Added a new DRM_XE_OBSERVATION_IOCTL_INFO to query EU stall data record info
> c. Added struct drm_xe_eu_stall_data_pvc and struct drm_xe_eu_stall_data_xe2
> to xe_drm.h. These declarations would help user space to parse the
> EU stall data
> d. Addressed other review comments from v2
> v2: Rename xe perf layer as xe observation layer (Ashutosh)
>
> Cc: Felix Degrood <felix.j.degrood@intel.com>
> Signed-off-by: Harish Chegondi <harish.chegondi@intel.com>
> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
>
> Harish Chegondi (7):
> drm/xe/topology: Add a function to find the index of the last enabled
> DSS in a mask
> drm/xe/uapi: Introduce API for EU stall sampling
> drm/xe/eustall: Implement EU stall sampling APIs for Xe_HPC
> drm/xe/eustall: Return -EIO error from read() if HW drops data
> drm/xe/eustall: Add EU stall sampling support for Xe2
> drm/xe/uapi: Add a device query to get EU stall sampling information
> drm/xe/eustall: Add workaround 22016596838 which applies to PVC.
>
> drivers/gpu/drm/xe/Makefile | 1 +
> drivers/gpu/drm/xe/regs/xe_eu_stall_regs.h | 29 +
> drivers/gpu/drm/xe/xe_eu_stall.c | 1103 ++++++++++++++++++++
> drivers/gpu/drm/xe/xe_eu_stall.h | 61 ++
> drivers/gpu/drm/xe/xe_gt.c | 6 +
> drivers/gpu/drm/xe/xe_gt_topology.h | 13 +
> drivers/gpu/drm/xe/xe_gt_types.h | 3 +
> drivers/gpu/drm/xe/xe_observation.c | 14 +
> drivers/gpu/drm/xe/xe_query.c | 38 +
> drivers/gpu/drm/xe/xe_trace.h | 33 +
> drivers/gpu/drm/xe/xe_wa_oob.rules | 1 +
> include/uapi/drm/xe_drm.h | 74 ++
> 12 files changed, 1376 insertions(+)
> create mode 100644 drivers/gpu/drm/xe/regs/xe_eu_stall_regs.h
> create mode 100644 drivers/gpu/drm/xe/xe_eu_stall.c
> create mode 100644 drivers/gpu/drm/xe/xe_eu_stall.h
>
> --
> 2.47.1
>
prev parent reply other threads:[~2024-12-31 18:01 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-20 11:22 [PATCH v7 0/7] Add support for EU stall sampling Harish Chegondi
2024-12-20 11:22 ` [PATCH v7 1/7] drm/xe/topology: Add a function to find the index of the last enabled DSS in a mask Harish Chegondi
2024-12-20 11:22 ` [PATCH v7 2/7] drm/xe/uapi: Introduce API for EU stall sampling Harish Chegondi
2024-12-20 11:22 ` [PATCH v7 3/7] drm/xe/eustall: Implement EU stall sampling APIs for Xe_HPC Harish Chegondi
2024-12-20 11:22 ` [PATCH v7 4/7] drm/xe/eustall: Return -EIO error from read() if HW drops data Harish Chegondi
2024-12-20 11:22 ` [PATCH v7 5/7] drm/xe/eustall: Add EU stall sampling support for Xe2 Harish Chegondi
2024-12-20 11:22 ` [PATCH v7 6/7] drm/xe/uapi: Add a device query to get EU stall sampling information Harish Chegondi
2024-12-20 11:22 ` [PATCH v7 7/7] drm/xe/eustall: Add workaround 22016596838 which applies to PVC Harish Chegondi
2024-12-20 11:44 ` ✓ CI.Patch_applied: success for Add support for EU stall sampling Patchwork
2024-12-20 11:45 ` ✗ CI.checkpatch: warning " Patchwork
2024-12-20 11:46 ` ✓ CI.KUnit: success " Patchwork
2024-12-20 12:05 ` ✓ CI.Build: " Patchwork
2024-12-20 12:08 ` ✗ CI.Hooks: failure " Patchwork
2024-12-20 12:10 ` ✓ CI.checksparse: success " Patchwork
2024-12-21 15:23 ` ✗ Xe.CI.Full: failure " Patchwork
2024-12-23 6:40 ` ✓ Xe.CI.BAT: success " Patchwork
2024-12-31 18:00 ` Harish Chegondi [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z3QxULWm-4col5VW@intel.com \
--to=harish.chegondi@intel.com \
--cc=ashutosh.dixit@intel.com \
--cc=felix.j.degrood@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=james.ausmus@intel.com \
--cc=joshua.santosh.ranjan@intel.com \
--cc=matias.a.cabral@intel.com \
--cc=matthew.d.roper@intel.com \
--cc=matthew.olson@intel.com \
--cc=shubham.kumar@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).