|
XenevaOS
|
#include <gpu_scheduler.h>

Public Attributes | ||
| ktime_t | submit_ts | |
| struct drm_gpu_scheduler * | sched | |
| struct drm_sched_fence * | s_fence | |
| struct drm_sched_entity * | entity | |
| struct drm_sched_entity_stats * | entity_stats | |
| enum drm_sched_priority | s_priority | |
| u32 | credits | |
| unsigned int | last_dependency | |
| atomic_t | karma | |
| struct spsc_node | queue_node | |
| struct list_head | list | |
| union { | ||
| struct dma_fence_cb finish_cb | ||
| struct work_struct work | ||
| }; | ||
| struct dma_fence_cb | cb | |
| struct xarray | dependencies | |
struct drm_sched_job - A job to be run by an entity.
@queue_node: used to append this struct to the queue of jobs in an entity. @list: a job participates in a "pending" and "done" lists. @sched: the scheduler instance on which this job is scheduled. @s_fence: contains the fences for the scheduling of job. @finish_cb: the callback for the finished fence. @credits: the number of credits this job contributes to the scheduler @work: Helper to reschedule job kill to different context. @karma: increment on every hang caused by this job. If this exceeds the hang limit of the scheduler then the job is marked guilty and will not be scheduled further. @s_priority: the priority of the job. @entity: the entity to which this job belongs. @cb: the callback for the parent fence in s_fence.
A job is created by the driver using drm_sched_job_init(), and should call drm_sched_entity_push_job() once it wants the scheduler to schedule the job.
| union { ... } drm_sched_job |
| struct dma_fence_cb drm_sched_job::cb |
| u32 drm_sched_job::credits |
| struct xarray drm_sched_job::dependencies |
@dependencies:
Contains the dependencies as struct dma_fence for this job, see drm_sched_job_add_dependency() and drm_sched_job_add_implicit_dependencies().
| struct drm_sched_entity* drm_sched_job::entity |
| struct drm_sched_entity_stats* drm_sched_job::entity_stats |
@entity_stats: Stats object reference held by the job and entity.
| struct dma_fence_cb drm_sched_job::finish_cb |
| atomic_t drm_sched_job::karma |
| unsigned int drm_sched_job::last_dependency |
@last_dependency: tracks @dependencies as they signal
| struct list_head drm_sched_job::list |
| struct spsc_node drm_sched_job::queue_node |
| struct drm_sched_fence* drm_sched_job::s_fence |
| enum drm_sched_priority drm_sched_job::s_priority |
| struct drm_gpu_scheduler* drm_sched_job::sched |
@sched:
The scheduler this job is or will be scheduled on. Gets set by drm_sched_job_arm(). Valid until drm_sched_backend_ops.free_job() has finished.
| ktime_t drm_sched_job::submit_ts |
@submit_ts:
When the job was pushed into the entity queue.
| struct work_struct drm_sched_job::work |