STRUCT XE_GUC(9)
πΈ 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 anxe_enginefromguc_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
- 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