Commit df622729 authored by Lucas Stach's avatar Lucas Stach
Browse files

drm/scheduler: track GPU active time per entity



Track the accumulated time that jobs from this entity were active
on the GPU. This allows drivers using the scheduler to trivially
implement the DRM fdinfo when the hardware doesn't provide more
specific information than signalling job completion anyways.

[Bagas: Append missing colon to @elapsed_ns]
Signed-off-by: default avatarBagas Sanjaya <bagasdotme@gmail.com>
Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
Reviewed-by: default avatarAndrey Grodzovsky <andrey.grodzovsky@amd.com>
parent 6b05266a
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -895,6 +895,12 @@ drm_sched_get_cleanup_job(struct drm_gpu_scheduler *sched)

	spin_unlock(&sched->job_list_lock);

	if (job) {
		job->entity->elapsed_ns += ktime_to_ns(
			ktime_sub(job->s_fence->finished.timestamp,
				  job->s_fence->scheduled.timestamp));
	}

	return job;
}

+7 −0
Original line number Diff line number Diff line
@@ -228,6 +228,13 @@ struct drm_sched_entity {
	 */
	struct rb_node			rb_tree_node;

	/**
	 * @elapsed_ns:
	 *
	 * Records the amount of time where jobs from this entity were active
	 * on the GPU.
	 */
	uint64_t elapsed_ns;
};

/**