|
My Project
|
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 |
| struct workqueue_struct* kbase_jd_context::job_done_wq |
Job Done workqueue.
| 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.
| 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.
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:
1.8.13