STRUCT PANTHOR_JOB(9)
π struct panthor_job(9) π
okay so bestie, welcome to the Kernel API Manual β¨ this one's all about struct panthor_job β and no cap, it's literally the struct used to manage a GPU job π think of it as the main character of the scheduler's group chat π«Ά
πΈ NAME πΈ
struct panthor_job β literally the struct used to manage GPU jobs π
π SYNOPSIS π
struct panthor_job {
struct drm_sched_job base;
struct kref refcount;
struct panthor_group *group;
u32 queue_idx;
struct {
u64 start;
u32 size;
u32 latest_flush;
} call_info;
struct {
u64 start;
u64 end;
} ringbuf;
struct list_head node;
struct dma_fence *done_fence;
struct {
u32 mask;
u32 slot;
} profiling;
};
like, look at her. absolutely iconic layout π
π¦ MEMBERS π¦
baseβ inherits fromdrm_sched_job, so all that scheduler DNA is already baked in π§¬refcountβ the reference count. classickrefbehaviour, we love to see it β¨groupβ pointer to thegroupof the queue this job is gonna get pushed to π―queue_idxβ the index of the queue insidegroup. iykyk π’call_infoβ all the deets about the userspace command stream call π¬call_info.startβ GPU address of the userspace command stream πcall_info.sizeβ size of the userspace command stream πcall_info.latest_flushβ the flush ID at the time the userspace command stream was built. it's needed for the flush reduction mechanism, so don't sleep on it π₯
ringbufβ where this job's position lives in the ring buffer πringbuf.startβ start offsetringbuf.endβ end offset
nodeβ used to insert the job into thepanthor_queue::fence_ctx::in_flight_jobslist. it's giving linked-list excellence π«done_fenceβ the fence that gets signaled when the job is finished or cancelled. closure either way, periodt πβprofilingβ the job profiling info πprofiling.maskβ current device job profiling enablement bitmask ποΈprofiling.slotβ the job's index in the profiling slots BO π
π SEE ALSO π
Kernel file ./drivers/gpu/drm/panthor/panthor_sched.c Scheduler(9), struct panthor_csg_slot(9), enum panthor_csg_priority(9), struct panthor_scheduler(9), struct panthor_syncobj_32b(9), struct panthor_syncobj_64b(9), struct panthor_queue(9), enum panthor_group_state(9), struct panthor_group(9), group_queue_work(9), sched_queue_work(9), sched_queue_delayed_work(9), struct panthor_group_pool(9), group_bind_locked(9), group_unbind_locked(9), cs_slot_prog_locked(9), cs_slot_reset_locked(9), csg_slot_sync_priority_locked(9), cs_slot_sync_queue_state_locked(9), sched_process_global_irq_locked(9), panthor_sched_report_fw_events(9), panthor_sched_report_mmu_fault(9), panthor_fdinfo_gather_group_mem_info(9)
and that's the whole page, bestie π«Ά this one lives in ./drivers/gpu/drm/panthor, dated October 2026, and yeah β she's struct panthor_job(9) π mwah, go read the scheduler source, ily π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms