drivers/gpu/drm/xe/xe_guc_submit_types.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/xe/xe_guc_submit_types.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/xe/xe_guc_submit_types.h- Extension
.h- Size
- 3919 bytes
- Lines
- 147
- Domain
- Driver Families
- Bucket
- drivers/gpu
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
xe_hw_engine_types.h
Detected Declarations
struct guc_sched_wq_descstruct sync_semaphorestruct guc_submit_parallel_scratchstruct xe_guc_submit_exec_queue_snapshot
Annotated Snippet
struct guc_sched_wq_desc {
u32 head;
u32 tail;
u32 error_offset;
u32 wq_status;
u32 reserved[28];
} __packed;
struct sync_semaphore {
u32 semaphore;
u8 unused[CACHELINE_BYTES - sizeof(u32)];
};
/**
* struct guc_submit_parallel_scratch - A scratch shared mapped buffer.
*/
struct guc_submit_parallel_scratch {
/** @wq_desc: Guc scheduler workqueue descriptor */
struct guc_sched_wq_desc wq_desc;
/** @go: Go Semaphore */
struct sync_semaphore go;
/** @join: Joined semaphore for the relevant hw engine instances */
struct sync_semaphore join[XE_HW_ENGINE_MAX_INSTANCE];
/** @unused: Unused/Reserved memory space */
u8 unused[WQ_OFFSET - sizeof(struct guc_sched_wq_desc) -
sizeof(struct sync_semaphore) *
(XE_HW_ENGINE_MAX_INSTANCE + 1)];
/** @wq: Workqueue info */
u32 wq[WQ_SIZE / sizeof(u32)];
};
/**
* struct xe_guc_submit_exec_queue_snapshot - Snapshot for devcoredump
*/
struct xe_guc_submit_exec_queue_snapshot {
/** @name: name of this exec queue */
char name[MAX_FENCE_NAME_LEN];
/** @class: class of this exec queue */
enum xe_engine_class class;
/**
* @logical_mask: logical mask of where job submitted to exec queue can run
*/
u32 logical_mask;
/** @width: width (number BB submitted per exec) of this exec queue */
u16 width;
/** @refcount: ref count of this exec queue */
u32 refcount;
/**
* @sched_timeout: the time after which a job is removed from the
* scheduler.
*/
long sched_timeout;
/** @sched_props: scheduling properties */
struct {
/** @sched_props.timeslice_us: timeslice period in micro-seconds */
u32 timeslice_us;
/** @sched_props.preempt_timeout_us: preemption timeout in micro-seconds */
u32 preempt_timeout_us;
} sched_props;
/** @lrc: LRC Snapshot */
struct xe_lrc_snapshot **lrc;
/** @schedule_state: Schedule State at the moment of Crash */
u32 schedule_state;
/** @exec_queue_flags: Flags of the faulty exec_queue */
unsigned long exec_queue_flags;
/** @guc: GuC Engine Snapshot */
struct {
/** @guc.wqi_head: work queue item head */
u32 wqi_head;
/** @guc.wqi_tail: work queue item tail */
u32 wqi_tail;
/** @guc.id: GuC id for this exec_queue */
u16 id;
} guc;
/**
* @parallel_execution: Indication if the failure was during parallel
* execution
*/
bool parallel_execution;
/** @parallel: snapshot of the useful parallel scratch */
struct {
/** @parallel.wq_desc: Workqueue description */
Annotation
- Immediate include surface: `xe_hw_engine_types.h`.
- Detected declarations: `struct guc_sched_wq_desc`, `struct sync_semaphore`, `struct guc_submit_parallel_scratch`, `struct xe_guc_submit_exec_queue_snapshot`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.