XenevaOS
Loading...
Searching...
No Matches
Public Attributes | List of all members
drm_sched_job Struct Reference

#include <gpu_scheduler.h>

Collaboration diagram for drm_sched_job:
Collaboration graph
[legend]

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
 

Detailed Description

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.

Member Data Documentation

◆ [union]

union { ... } drm_sched_job

◆ cb

struct dma_fence_cb drm_sched_job::cb

◆ credits

u32 drm_sched_job::credits

◆ dependencies

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().

◆ entity

struct drm_sched_entity* drm_sched_job::entity

◆ entity_stats

struct drm_sched_entity_stats* drm_sched_job::entity_stats

@entity_stats: Stats object reference held by the job and entity.

◆ finish_cb

struct dma_fence_cb drm_sched_job::finish_cb

◆ karma

atomic_t drm_sched_job::karma

◆ last_dependency

unsigned int drm_sched_job::last_dependency

@last_dependency: tracks @dependencies as they signal

◆ list

struct list_head drm_sched_job::list

◆ queue_node

struct spsc_node drm_sched_job::queue_node

◆ s_fence

struct drm_sched_fence* drm_sched_job::s_fence

◆ s_priority

enum drm_sched_priority drm_sched_job::s_priority

◆ sched

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.

◆ submit_ts

ktime_t drm_sched_job::submit_ts

@submit_ts:

When the job was pushed into the entity queue.

◆ work

struct work_struct drm_sched_job::work

The documentation for this struct was generated from the following file: