STRUCT XE_GUC_SUBMIT_EXEC_QUEUE_SNAPSHOT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

struct xe_guc_submit_exec_queue_snapshot β€” bestie, it's literally a Snapshot for devcoredump ✨

So like, this is the Kernel API Manual page for it (you're reading the struct xe_gu...eue_snapshot(9) one, mwah) and we're gonna go through every single member, no skipping, no cap 🫢


🌸 SYNOPSIS 🌸

struct xe_guc_submit_exec_queue_snapshot {
    char name[MAX_FENCE_NAME_LEN];
    enum xe_engine_class class;
    u32 logical_mask;
    u16 width;
    u32 refcount;
    long sched_timeout;
    struct {
      u32 timeslice_us;
      u32 preempt_timeout_us;
    } sched_props;
    struct xe_lrc_snapshot **lrc;
    u32 schedule_state;
    unsigned long exec_queue_flags;
    struct {
      u32 wqi_head;
      u32 wqi_tail;
      u16 id;
    } guc;
    bool parallel_execution;
    struct {
      struct {
        u32 head;
        u32 tail;
        u32 status;
      } wq_desc;
      u32 wq[WQ_SIZE / sizeof(u32)];
    } parallel;
    struct {
      u32 primary;
      u8 pos;
      bool valid;
    } multi_queue;
 };

Obsessed with her honestly πŸŽ€


πŸ¦‹ MEMBERS πŸ¦‹

Okay so here's the whole cast, character by character, main character energy only πŸ’–

  • name β€” the name of this exec queue 🌸
  • class β€” the class of this exec queue, iykyk
  • logical_mask β€” logical mask of where a job submitted to the exec queue can actually run
  • width β€” width of this exec queue, aka how many BB submitted per exec πŸ‘‘
  • refcount β€” ref count of this exec queue, keeping track of who's holding on
  • sched_timeout β€” the time after which a job is removed from the scheduler. yes, removed, that's the whole point 😭
  • sched_props β€” scheduling properties πŸ’«
  • sched_props.timeslice_us β€” timeslice period in micro-seconds ⏱️
  • sched_props.preempt_timeout_us β€” preemption timeout in micro-seconds ⏱️
  • lrc β€” LRC Snapshot, periodt
  • schedule_state β€” Schedule State at the moment of Crash πŸ’€ like a little crime scene photo
  • exec_queue_flags β€” flags of the faulty exec_queue 🚩
  • guc β€” GuC Engine Snapshot ✨
  • guc.wqi_head β€” work queue item head
  • guc.wqi_tail β€” work queue item tail
  • guc.id β€” GuC id for this exec_queue πŸͺͺ
  • parallel_execution β€” indication if the failure was during parallel execution πŸ‘€
  • parallel β€” snapshot of the useful parallel scratch 🧚
  • parallel.wq_desc β€” Workqueue description πŸ“
  • parallel.wq_desc.head β€” Workqueue Head
  • parallel.wq_desc.tail β€” Workqueue Tail
  • parallel.wq_desc.status β€” Workqueue Status
  • wq β€” Workqueue Items πŸ“
  • multi_queue β€” snapshot of the multi queue information 🌈
  • multi_queue.primary β€” GuC id of the primary exec queue of the multi queue group πŸ‘‘
  • multi_queue.pos β€” position of the exec queue within the multi queue group πŸ“
  • multi_queue.valid β€” the exec queue is part of a multi queue group βœ…

πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./drivers/gpu/drm/xe/xe_guc_submit_types.h struct
  • guc_submit_parallel_scratch(9)

Go read those too bestie, fr fr πŸ’œ


✨ Okay that's the whole page!! This iconic little manual lives at ./drivers/gpu/drm/xe, and it's dated October 2026 β€” so she's from the future, slay πŸ¦‹β° Thanks for reading, mwah, bye!! πŸ’…πŸŽ€

πŸ“¦ where this page comes from