All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dixit, Ashutosh" <ashutosh.dixit@intel.com>
To: Harish Chegondi <harish.chegondi@intel.com>
Cc: <intel-xe@lists.freedesktop.org>, <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>,
	<lucas.demarchi@intel.com>
Subject: Re: [PATCH v8 6/7] drm/xe/uapi: Add a device query to get EU stall sampling information
Date: Tue, 21 Jan 2025 19:00:23 -0800	[thread overview]
Message-ID: <85cygflfi0.wl-ashutosh.dixit@intel.com> (raw)
In-Reply-To: <Z5BclzMGIn_TIXpR@intel.com>

On Tue, 21 Jan 2025 18:48:55 -0800, Harish Chegondi wrote:
>

Hi Harish,

> On Thu, Jan 16, 2025 at 02:34:59PM -0800, Dixit, Ashutosh wrote:
> > On Wed, 15 Jan 2025 12:02:12 -0800, Harish Chegondi wrote:
> > > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > > index d9b20afc57c1..7d518f97ba34 100644
> > > --- a/include/uapi/drm/xe_drm.h
> > > +++ b/include/uapi/drm/xe_drm.h
> > > @@ -700,6 +700,7 @@ struct drm_xe_device_query {
> > >  #define DRM_XE_DEVICE_QUERY_ENGINE_CYCLES	6
> > >  #define DRM_XE_DEVICE_QUERY_UC_FW_VERSION	7
> > >  #define DRM_XE_DEVICE_QUERY_OA_UNITS		8
> > > +#define DRM_XE_DEVICE_QUERY_EU_STALL		9
> > >	/** @query: The type of data to query */
> > >	__u32 query;
> > >
> > > @@ -1754,8 +1755,8 @@ enum drm_xe_eu_stall_property_id {
> > >	DRM_XE_EU_STALL_PROP_GT_ID = 1,
> > >
> > >	/**
> > > -	 * @DRM_XE_EU_STALL_PROP_SAMPLE_RATE: Sampling rate
> > > -	 * in GPU cycles.
> > > +	 * @DRM_XE_EU_STALL_PROP_SAMPLE_RATE: Sampling rate in
> > > +	 * GPU cycles from @sampling_rates in struct @drm_xe_query_eu_stall
> > >	 */
> > >	DRM_XE_EU_STALL_PROP_SAMPLE_RATE,
> > >
> > > @@ -1767,6 +1768,41 @@ enum drm_xe_eu_stall_property_id {
> > >	DRM_XE_EU_STALL_PROP_WAIT_NUM_REPORTS,
> > >  };
> > >
> > > +/**
> > > + * struct drm_xe_query_eu_stall - Information about EU stall sampling.
> > > + *
> > > + * If a query is made with a struct @drm_xe_device_query where .query
> > > + * is equal to @DRM_XE_DEVICE_QUERY_EU_STALL, then the reply uses
> > > + * struct @drm_xe_query_eu_stall in .data.
> > > + */
> > > +struct drm_xe_query_eu_stall {
> > > +	/** @extensions: Pointer to the first extension struct, if any */
> > > +	__u64 extensions;
> > > +
> > > +	/** @capabilities: EU stall capabilities bit-mask */
> > > +	__u64 capabilities;
> > > +#define DRM_XE_EU_STALL_CAPS_BASE		(1 << 0)
> > > +
> > > +	/** @record_size: size of each EU stall data record */
> > > +	__u64 record_size;
> > > +
> > > +	/** @per_xecore_buf_size: Per XeCore buffer size */
> > > +	__u64 per_xecore_buf_size;
> >
> > Someone else should still probably check if the term "xecore" in
> > "per_xecore_buf_size" is appropriate. I don't know if it is, or if it is
> > future proof, as I had remarked earlier.
> Had a chat with Matt Roper offline regarding this. He said XeCore is a
> formal name in the hardware for a GPU core. So I think this is
> appropriate.

OK, in that case I am fine with this. Let's put this to rest :)

> >
> > > +
> > > +	/** @num_sampling_rates: Number of sampling rates supported */
> > > +	__u64 num_sampling_rates;
> > > +
> > > +	/** @reserved: Reserved */
> > > +	__u64 reserved[5];
> >
> > I think we should move this reserved array before num_sampling_rates. If
> > later we take up a reserved u64 (replace it by a different struct member)
> > we'd want num_sampling_rates and sampling_rates[] together.
> I noticed that in structures with reserved fields, the reserved
> fields are at the bottom of the structure. Although flexible array
> sampling_rates is at the bottom, no storage is allocated for
> sampling_rates. I can move the reserved array, but is it okay for
> reserved array to not be at the end of the structure? Even if I move,
> the num_sampling_rates and sampling_rates[] will be next to each other,
> but no storage will be allocated to sampling_rates.

Yes let's move it before num_sampling_rates. Look at 'struct
drm_xe_oa_unit'.

> >
> > > +
> > > +	/**
> > > +	 * @sampling_rates: Flexible array of sampling rates
> > > +	 * sorted in the fastest to slowest order.
> > > +	 * Sampling rates are specified in GPU clock cycles.
> > > +	 */
> > > +	__u64 sampling_rates[];
> > > +};
> >
> > The Mesa PR still seems to have some data structs from an older version,
> > but after addressing the above comments, the uapi introduced in this series
> > is LGTM, so for the uapi:
> >
> > Acked-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

  reply	other threads:[~2025-01-22  3:00 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-15 20:02 [PATCH v8 0/7] Add support for EU stall sampling Harish Chegondi
2025-01-15 20:02 ` [PATCH v8 1/7] drm/xe/topology: Add a function to find the index of the last enabled DSS in a mask Harish Chegondi
2025-01-17 17:25   ` Dixit, Ashutosh
2025-01-22  5:18     ` Harish Chegondi
2025-01-15 20:02 ` [PATCH v8 2/7] drm/xe/uapi: Introduce API for EU stall sampling Harish Chegondi
2025-01-17 19:02   ` Dixit, Ashutosh
2025-01-22 23:44     ` Harish Chegondi
2025-01-23  2:19       ` Dixit, Ashutosh
2025-01-15 20:02 ` [PATCH v8 3/7] drm/xe/eustall: Implement EU stall sampling APIs for Xe_HPC Harish Chegondi
2025-01-18  2:34   ` Dixit, Ashutosh
2025-01-23 18:51   ` Dixit, Ashutosh
2025-01-25  3:09   ` [PATCH v8 3 " Dixit, Ashutosh
2025-01-29  4:12   ` [PATCH v8 4 " Dixit, Ashutosh
2025-01-29  4:32     ` Dixit, Ashutosh
2025-01-30 18:46     ` Harish Chegondi
2025-01-31  3:23       ` Dixit, Ashutosh
2025-01-15 20:02 ` [PATCH v8 4/7] drm/xe/eustall: Return -EIO error from read() if HW drops data Harish Chegondi
2025-01-30  4:45   ` Dixit, Ashutosh
2025-01-30 17:05     ` Dixit, Ashutosh
2025-01-31 21:50       ` Harish Chegondi
2025-01-31 19:30     ` Harish Chegondi
2025-01-31 20:19       ` Dixit, Ashutosh
2025-01-31 22:59         ` Harish Chegondi
2025-02-01  0:13           ` Dixit, Ashutosh
2025-02-01  6:57             ` Dixit, Ashutosh
2025-01-15 20:02 ` [PATCH v8 5/7] drm/xe/eustall: Add EU stall sampling support for Xe2 Harish Chegondi
2025-01-30  4:55   ` Dixit, Ashutosh
2025-02-05  1:16     ` Olson, Matthew
2025-02-05  1:57       ` Dixit, Ashutosh
2025-02-05 19:03         ` Olson, Matthew
2025-02-05 20:02           ` Dixit, Ashutosh
2025-01-15 20:02 ` [PATCH v8 6/7] drm/xe/uapi: Add a device query to get EU stall sampling information Harish Chegondi
2025-01-16 22:34   ` Dixit, Ashutosh
2025-01-22  2:48     ` Harish Chegondi
2025-01-22  3:00       ` Dixit, Ashutosh [this message]
2025-01-30 17:36   ` Dixit, Ashutosh
2025-01-15 20:02 ` [PATCH v8 7/7] drm/xe/eustall: Add workaround 22016596838 which applies to PVC Harish Chegondi
2025-01-30  5:14   ` Dixit, Ashutosh
2025-01-15 20:46 ` ✓ CI.Patch_applied: success for Add support for EU stall sampling Patchwork
2025-01-15 20:46 ` ✗ CI.checkpatch: warning " Patchwork
2025-01-15 20:48 ` ✓ CI.KUnit: success " Patchwork
2025-01-15 21:14 ` ✓ CI.Build: " Patchwork
2025-01-15 21:16 ` ✗ CI.Hooks: failure " Patchwork
2025-01-15 21:18 ` ✓ CI.checksparse: success " Patchwork
2025-01-15 21:43 ` ✗ Xe.CI.BAT: failure " Patchwork
2025-01-16  0:37 ` ✗ Xe.CI.Full: " Patchwork
2025-01-16  0:51 ` [PATCH v8 0/7] " Degrood, Felix J
2025-01-16 21:50 ` Olson, Matthew
2025-01-18  5:19   ` Harish Chegondi

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=85cygflfi0.wl-ashutosh.dixit@intel.com \
    --to=ashutosh.dixit@intel.com \
    --cc=felix.j.degrood@intel.com \
    --cc=harish.chegondi@intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=james.ausmus@intel.com \
    --cc=joshua.santosh.ranjan@intel.com \
    --cc=lucas.demarchi@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.