STRUCT XE_GUC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct xe_guc(9) β€” Kernel API Manual, bestie edition 🌸

Okay so this page lives in the Kernel API Manual, and it's literally all about struct xe_guc β€” the Graphic micro controller. Yes that's the real name, no I'm not making it up πŸ’…. Sit down, grab a strawberry πŸ“, and let's get into it.


✨ NAME ✨

struct xe_guc β€” Graphic micro controller πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

Here's the whole vibe, character for character, don't touch a thing:

struct xe_guc {
    struct xe_uc_fw fw;
    struct xe_guc_log log;
    struct xe_guc_ads ads;
    struct xe_guc_ct ct;
    struct xe_guc_buf_cache buf;
    struct xe_guc_state_capture *capture;
    struct xe_guc_pc pc;
    struct xe_guc_db_mgr dbm;
    struct {
      struct xe_bo *bo;
      bool owned;
    } g2g;
    struct {
      struct xe_guc_id_mgr idm;
      struct xarray exec_queue_lookup;
      atomic_t stopped;
      atomic_t reset_blocked;
      struct mutex lock;
      bool enabled;
      bool initialized;
    } submission_state;
    struct {
      struct xe_bo *bo;
      u32 size;
    } hwconfig;
    struct xe_guc_relay relay;
    struct xe_guc_engine_activity engine_activity;
    struct xe_reg notify_reg;
    u32 params[GUC_CTL_MAX_DWORDS];
 };

πŸ‘‘ Members πŸ‘‘

Every single field, explained like we're texting at 2am 🫢

  • fw β€” the generic uC firmware management bit, classic.
  • log β€” the GuC log, where the receipts live πŸ“
  • ads β€” the GuC ads.
  • ct β€” the GuC ct.
  • buf β€” GuC Buffer Cache manager, holding it down.
  • capture β€” the error-state-capture module's data and objects πŸ™ˆ
  • pc β€” GuC Power Conservation, environmentally conscious queen 🌱
  • dbm β€” GuC Doorbell Manager, answering the door fr fr πŸšͺ
  • g2g β€” GuC to GuC communication state, it's giving networking πŸ’¬
    • g2g.bo β€” storage for GuC to GuC communication channels.
    • g2g.owned β€” is the BO owned by this GT or just mapped in β€” the eternal question πŸ’€
  • submission_state β€” GuC submission state, the main character energy of this struct ⭐
    • submission_state.idm β€” GuC context ID Manager.
    • submission_state.exec_queue_lookup β€” lookup an xe_engine from guc_id πŸ”
    • submission_state.stopped β€” submissions are stopped, periodt.
    • submission_state.reset_blocked β€” reset attempts are blocked; blocking reset in order to delay it may be required if running an operation which is sensitive to resets. So like, sometimes you gotta hold off, iykyk.
    • submission_state.lock β€” protects submission state πŸ”’
    • submission_state.enabled β€” submission is enabled, slay.
    • submission_state.initialized β€” mark when submission state is even initialized β€” and hear me out: before that, not even the lock is valid. Not even the lock. Be careful 😭
  • hwconfig β€” hardware config state, iconic.
    • hwconfig.bo β€” buffer object of the hardware config.
    • hwconfig.size β€” size of the hardware config.
  • relay β€” GuC Relay Communication used in SR-IOV πŸ“‘
  • engine_activity β€” device specific engine activity, getting busy πŸƒβ€β™€οΈ
  • notify_reg β€” register which is written to notify GuC of H2G messages βœ‰οΈ
  • params β€” control params for fw initialization.

πŸ’– SEE ALSO πŸ’–

Go look at the kernel file ./drivers/gpu/drm/xe/xe_guc_types.h, plus these two besties: struct xe_guc_db_mgr(9), struct xe_guc_id_mgr(9) 🌈


That's the whole page, no cap. Love u, go read the headers πŸ§šπŸ’œ

β€” sourced from ./drivers/gpu/drm/xe, dated October 2026, filed under struct xe_guc(9). Byeee πŸ’…βœ¨

πŸ“¦ where this page comes from