Skip to content

Commit

Permalink
drm/xe: Use run_ticks instead of runtime for client stats
Browse files Browse the repository at this point in the history
Note that runtime is also used in the pm context, so it is confusing to
use the same name to denote run time of the drm client. Use a more
appropriate name for the client utilization.

While at it, drop the incorrect multi-lrc comment in the helper
description

v2: s/show_runtime/show_run_ticks/ (Rodrigo)

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240524234744.1352543-1-umesh.nerlige.ramappa@intel.com
  • Loading branch information
Umesh Nerlige Ramappa committed May 27, 2024
1 parent 50e5259 commit 45bb564
Show file tree
Hide file tree
Showing 6 changed files with 15 additions and 15 deletions.
4 changes: 2 additions & 2 deletions drivers/gpu/drm/xe/xe_device_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -559,8 +559,8 @@ struct xe_file {
struct mutex lock;
} exec_queue;

/** @runtime: hw engine class runtime in ticks for this drm client */
u64 runtime[XE_ENGINE_CLASS_MAX];
/** @run_ticks: hw engine class run time in ticks for this drm client */
u64 run_ticks[XE_ENGINE_CLASS_MAX];

/** @client: drm client */
struct xe_drm_client *client;
Expand Down
8 changes: 4 additions & 4 deletions drivers/gpu/drm/xe/xe_drm_client.c
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ static void show_meminfo(struct drm_printer *p, struct drm_file *file)
}
}

static void show_runtime(struct drm_printer *p, struct drm_file *file)
static void show_run_ticks(struct drm_printer *p, struct drm_file *file)
{
unsigned long class, i, gt_id, capacity[XE_ENGINE_CLASS_MAX] = { };
struct xe_file *xef = file->driver_priv;
Expand All @@ -252,7 +252,7 @@ static void show_runtime(struct drm_printer *p, struct drm_file *file)
/* Accumulate all the exec queues from this client */
mutex_lock(&xef->exec_queue.lock);
xa_for_each(&xef->exec_queue.xa, i, q)
xe_exec_queue_update_runtime(q);
xe_exec_queue_update_run_ticks(q);
mutex_unlock(&xef->exec_queue.lock);

/* Get the total GPU cycles */
Expand Down Expand Up @@ -287,7 +287,7 @@ static void show_runtime(struct drm_printer *p, struct drm_file *file)

class_name = xe_hw_engine_class_to_str(class);
drm_printf(p, "drm-cycles-%s:\t%llu\n",
class_name, xef->runtime[class]);
class_name, xef->run_ticks[class]);
drm_printf(p, "drm-total-cycles-%s:\t%llu\n",
class_name, gpu_timestamp);

Expand All @@ -310,6 +310,6 @@ static void show_runtime(struct drm_printer *p, struct drm_file *file)
void xe_drm_client_fdinfo(struct drm_printer *p, struct drm_file *file)
{
show_meminfo(p, file);
show_runtime(p, file);
show_run_ticks(p, file);
}
#endif
12 changes: 6 additions & 6 deletions drivers/gpu/drm/xe/xe_exec_queue.c
Original file line number Diff line number Diff line change
Expand Up @@ -751,14 +751,14 @@ bool xe_exec_queue_is_idle(struct xe_exec_queue *q)
}

/**
* xe_exec_queue_update_runtime() - Update runtime for this exec queue from hw
* xe_exec_queue_update_run_ticks() - Update run time in ticks for this exec queue
* from hw
* @q: The exec queue
*
* Update the timestamp saved by HW for this exec queue and save runtime
* calculated by using the delta from last update. On multi-lrc case, only the
* first is considered.
* Update the timestamp saved by HW for this exec queue and save run ticks
* calculated by using the delta from last update.
*/
void xe_exec_queue_update_runtime(struct xe_exec_queue *q)
void xe_exec_queue_update_run_ticks(struct xe_exec_queue *q)
{
struct xe_file *xef;
struct xe_lrc *lrc;
Expand All @@ -784,7 +784,7 @@ void xe_exec_queue_update_runtime(struct xe_exec_queue *q)
*/
lrc = &q->lrc[0];
new_ts = xe_lrc_update_timestamp(lrc, &old_ts);
xef->runtime[q->class] += (new_ts - old_ts) * q->width;
xef->run_ticks[q->class] += (new_ts - old_ts) * q->width;
}

void xe_exec_queue_kill(struct xe_exec_queue *q)
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/xe/xe_exec_queue.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,6 @@ struct dma_fence *xe_exec_queue_last_fence_get(struct xe_exec_queue *e,
struct xe_vm *vm);
void xe_exec_queue_last_fence_set(struct xe_exec_queue *e, struct xe_vm *vm,
struct dma_fence *fence);
void xe_exec_queue_update_runtime(struct xe_exec_queue *q);
void xe_exec_queue_update_run_ticks(struct xe_exec_queue *q);

#endif
2 changes: 1 addition & 1 deletion drivers/gpu/drm/xe/xe_execlist.c
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ static void execlist_job_free(struct drm_sched_job *drm_job)
{
struct xe_sched_job *job = to_xe_sched_job(drm_job);

xe_exec_queue_update_runtime(job->q);
xe_exec_queue_update_run_ticks(job->q);
xe_sched_job_put(job);
}

Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/xe/xe_guc_submit.c
Original file line number Diff line number Diff line change
Expand Up @@ -763,7 +763,7 @@ static void guc_exec_queue_free_job(struct drm_sched_job *drm_job)
{
struct xe_sched_job *job = to_xe_sched_job(drm_job);

xe_exec_queue_update_runtime(job->q);
xe_exec_queue_update_run_ticks(job->q);

trace_xe_sched_job_free(job);
xe_sched_job_put(job);
Expand Down

0 comments on commit 45bb564

Please sign in to comment.