From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: "Souza, Jose" <jose.souza@intel.com>, <ashutosh.dixit@intel.com>
Cc: "Dugast, Francois" <francois.dugast@intel.com>,
"Roper, Matthew D" <matthew.d.roper@intel.com>,
"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>
Subject: Re: [Intel-xe] [PATCH v2 19/20] drm/xe/uapi: Crystal Reference Clock updates
Date: Thu, 21 Sep 2023 16:49:03 -0400 [thread overview]
Message-ID: <ZQysPzeenUYVVIDr@intel.com> (raw)
In-Reply-To: <6e8dc2efb800a305bb651f576d0ef22c5aea1cf0.camel@intel.com>
On Thu, Sep 21, 2023 at 03:50:07PM +0000, Souza, Jose wrote:
> On Wed, 2023-09-20 at 15:29 -0400, Rodrigo Vivi wrote:
> > First of all, let's remove the duplication.
> > But also, let's rename it to remove the word 'frequency'
> > out of it. In general, the first thing people think of frequency
> > is the frequency in which the GTs are operating to execute the
> > GPU instructions.
> >
> > While this frequency here is a crystal reference clock frequency
> > which is the base of everything else, and in this case of this
> > uAPI it is used to calculate a better and precise timestamp.
> >
> > Cc: Matt Roper <matthew.d.roper@intel.com>
> > Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> > Cc: Francois Dugast <francois.dugast@intel.com>
> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > Signed-off-by: Francois Dugast <francois.dugast@intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_query.c | 5 ++---
> > include/uapi/drm/xe_drm.h | 10 ++++------
> > 2 files changed, 6 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
> > index a27b10583f5a..8184df4abde1 100644
> > --- a/drivers/gpu/drm/xe/xe_query.c
> > +++ b/drivers/gpu/drm/xe/xe_query.c
> > @@ -149,7 +149,7 @@ query_cs_cycles(struct xe_device *xe,
> > if (!hwe)
> > return -EINVAL;
> >
> > - resp.cs_frequency = gt->info.clock_freq;
> > + resp.cs_reference_clock = gt->info.clock_freq;
> >
> > xe_device_mem_access_get(xe);
> > xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
> > @@ -167,7 +167,7 @@ query_cs_cycles(struct xe_device *xe,
> > resp.width = 36;
> >
> > /* Only write to the output fields of user query */
> > - if (put_user(resp.cs_frequency, &query_ptr->cs_frequency))
> > + if (put_user(resp.cs_reference_clock, &query_ptr->cs_reference_clock))
> > return -EFAULT;
> >
> > if (put_user(resp.cpu_timestamp, &query_ptr->cpu_timestamp))
> > @@ -380,7 +380,6 @@ static int query_gt_list(struct xe_device *xe, struct drm_xe_device_query *query
> > else
> > gt_list->gt_list[id].type = XE_QUERY_GT_TYPE_MAIN;
> > gt_list->gt_list[id].gt_id = gt->info.id;
> > - gt_list->gt_list[id].clock_freq = gt->info.clock_freq;
> > if (!IS_DGFX(xe))
> > gt_list->gt_list[id].native_mem_regions = 0x1;
> > else
> > diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> > index 45ec20c2765d..5156bac84f20 100644
> > --- a/include/uapi/drm/xe_drm.h
> > +++ b/include/uapi/drm/xe_drm.h
> > @@ -248,8 +248,8 @@ struct drm_xe_query_mem_region {
> > * relevant GPU timestamp. clockid is used to return the specific CPU
> > * timestamp.
> > *
> > - * The query returns the command streamer cycles and the frequency that can
> > - * be used to calculate the command streamer timestamp. In addition the
> > + * The query returns the command streamer cycles and the reference clock that
> > + * can be used to calculate the command streamer timestamp. In addition the
> > * query returns a set of cpu timestamps that indicate when the command
> > * streamer cycle count was captured.
> > */
> > @@ -266,8 +266,8 @@ struct drm_xe_query_cs_cycles {
> > */
> > __u64 cs_cycles;
> >
> > - /** Frequency of the cs cycles in Hz. */
> > - __u64 cs_frequency;
> > + /** Reference Clock of the cs cycles in Hz. */
> > + __u64 cs_reference_clock;
> >
> > /**
> > * CPU timestamp in ns. The timestamp is captured before reading the
> > @@ -381,8 +381,6 @@ struct drm_xe_query_gt {
> > __u16 type;
> > /** @gt_id: Unique ID of this GT within the PCI Device */
> > __u16 gt_id;
> > - /** @clock_freq: A clock frequency for timestamp */
> > - __u32 clock_freq;
>
> This needs to be brought back, if you want to remove the duplication remove it from drm_xe_query_cs_cycles then.
> DRM_XE_QUERY_CS_CYCLES will fail when running in SRIOV VF as it can't do mmio reads.
So, does the CS_CYLES make sense then? or all that information could/should
be inside the gt info here?
Let's take OA into consideration as well here.
https://lore.kernel.org/all/20230919161049.2307855-17-ashutosh.dixit@intel.com
Cc: Ashutosh.
Anything from OA that we could do to unify these data?
>
> > /**
> > * @native_mem_regions: Bit mask of instances from
> > * drm_xe_query_mem_usage that lives on the same GPU/Tile and have
>
next prev parent reply other threads:[~2023-09-21 20:49 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-20 19:29 [Intel-xe] [PATCH v2 00/20] uAPI Alignment - take 1 v2 Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 01/20] drm/xe: Fix array bounds check for queries Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 02/20] drm/xe: Set the correct type for xe_to_user_engine_class Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 03/20] drm/xe: Correlate engine and cpu timestamps with better accuracy Rodrigo Vivi
2023-09-26 1:37 ` Umesh Nerlige Ramappa
2023-09-26 18:48 ` Rodrigo Vivi
2023-09-26 18:58 ` Umesh Nerlige Ramappa
2023-09-26 19:07 ` Rodrigo Vivi
2023-09-26 19:52 ` Umesh Nerlige Ramappa
2023-09-26 21:42 ` Rodrigo Vivi
2023-09-27 1:05 ` Umesh Nerlige Ramappa
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 04/20] drm/xe/uapi: Separate VM_BIND's operation and flag Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 05/20] drm/xe/vm: Remove VM_BIND_OP macro Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 06/20] drm/xe/uapi: Remove MMIO ioctl Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 07/20] drm/xe: Fix xe_exec_queue_is_idle for parallel exec queues Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 08/20] drm/xe: Deprecate XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE implementation Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 09/20] drm/xe: Rename exec_queue_kill_compute to xe_vm_remove_compute_exec_queue Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 10/20] drm/xe: Remove XE_EXEC_QUEUE_SET_PROPERTY_COMPUTE_MODE from uAPI Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 11/20] drm/xe/uapi: Use common drm_xe_ext_set_property extension Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 12/20] drm/xe: Kill XE_VM_PROPERTY_BIND_OP_ERROR_CAPTURE_ADDRESS extension Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 13/20] drm/xe/uapi: Document drm_xe_query_gt Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 14/20] drm/xe/uapi: Replace useless 'instance' per unique gt_id Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 15/20] drm/xe/uapi: Remove unused field of drm_xe_query_gt Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 16/20] drm/xe/uapi: Rename gts to gt_list Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 17/20] drm/xe/uapi: Fix naming of XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 18/20] drm/xe/uapi: Add documentation for query Rodrigo Vivi
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 19/20] drm/xe/uapi: Crystal Reference Clock updates Rodrigo Vivi
2023-09-20 19:56 ` Souza, Jose
2023-09-20 20:09 ` Rodrigo Vivi
2023-09-21 15:50 ` Souza, Jose
2023-09-21 20:49 ` Rodrigo Vivi [this message]
2023-09-21 21:04 ` Souza, Jose
2023-09-20 19:29 ` [Intel-xe] [PATCH v2 20/20] drm/xe: Extend drm_xe_vm_bind_op Rodrigo Vivi
2023-09-20 19:52 ` [Intel-xe] ✓ CI.Patch_applied: success for uAPI Alignment - take 1 v2 Patchwork
2023-09-20 19:52 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
2023-09-20 19:53 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
2023-09-20 20:00 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-09-20 20:01 ` [Intel-xe] ✗ CI.Hooks: failure " Patchwork
2023-09-20 20:02 ` [Intel-xe] ✓ CI.checksparse: success " Patchwork
2023-09-20 20:36 ` [Intel-xe] ✗ CI.BAT: failure " Patchwork
2023-09-20 21:14 ` [Intel-xe] [PATCH v2 00/20] " Matt Roper
2023-09-20 21:54 ` Matthew Brost
2023-09-20 23:07 ` Matt Roper
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=ZQysPzeenUYVVIDr@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=ashutosh.dixit@intel.com \
--cc=francois.dugast@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=jose.souza@intel.com \
--cc=matthew.d.roper@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.