My Project
Public Attributes | List of all members
kbase_jd_context Struct Reference

Public Attributes

struct mutex lock
 
struct kbasep_js_kctx_info sched_info
 
struct kbase_jd_atom atoms [BASE_JD_ATOM_COUNT]
 
u32 job_nr
 
wait_queue_head_t zero_jobs_wait
 
struct workqueue_struct * job_done_wq
 
spinlock_t tb_lock
 
u32 * tb
 
size_t tb_wrap_offset
 

Member Data Documentation

◆ job_done_wq

struct workqueue_struct* kbase_jd_context::job_done_wq

Job Done workqueue.

◆ job_nr

u32 kbase_jd_context::job_nr

Tracks all job-dispatch jobs. This includes those not tracked by the scheduler: 'not ready to run' and 'dependency-only' jobs.

◆ zero_jobs_wait

wait_queue_head_t kbase_jd_context::zero_jobs_wait

Waitq that reflects whether there are no jobs (including SW-only dependency jobs). This is set when no jobs are present on the ctx, and clear when there are jobs.

Note
: Job Dispatcher knows about more jobs than the Job Scheduler: the Job Scheduler is unaware of jobs that are blocked on dependencies, and SW-only dependency jobs.

This waitq can be waited upon to find out when the context jobs are all done/cancelled (including those that might've been blocked on dependencies) - and so, whether it can be terminated. However, it should only be terminated once it is not present in the run-pool (see kbasep_js_kctx_info::ctx::is_scheduled).

Since the waitq is only set under kbase_jd_context::lock, the waiter should also briefly obtain and drop kbase_jd_context::lock to guarentee that the setter has completed its work on the kbase_context

This must be updated atomically with:


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