STRUCT XE_HW_ENGINE(9)
π struct xe_hw_engine(9) β like, the whole Kernel API Manual moment β¨
okay bestie, buckle up π this is the page for struct xe_hw_engine, straight out of the Kernel API Manual, and it's literally the blueprint for a hardware engine. no cap, every field here matters, so let's go π«Ά
πΈ NAME πΈ
struct xe_hw_engine β Hardware engine. that's it, that's the vibe π
β¨ SYNOPSIS β¨
struct xe_hw_engine {
struct xe_gt *gt;
const char *name;
enum xe_engine_class class;
u16 instance;
u16 logical_instance;
u16 irq_offset;
u16 irq_page;
u32 mmio_base;
struct xe_reg_sr reg_sr;
struct xe_reg_sr reg_whitelist;
struct xe_reg_sr oa_whitelist;
struct xe_reg_sr oa_sr;
struct xe_reg_sr reg_lrc;
enum xe_force_wake_domains domain;
struct xe_bo *hwsp;
struct xe_execlist_port *exl_port;
struct xe_hw_fence_irq *fence_irq;
void (*irq_handler)(struct xe_hw_engine *hwe, u16 intr_vec);
enum xe_hw_engine_id engine_id;
struct xe_hw_engine_class_intf *eclass;
struct xe_oa_unit *oa_unit;
struct xe_hw_engine_group *hw_engine_group;
};
look at her. iconic struct, zero notes π
π¦ Members π¦
gtβ the GT structure this hw engine belongs to. like, who's her home base πnameβ name of this hw engine π«classβ class of this hw engineinstanceβ physical instance of this hw enginelogical_instanceβ logical instance of this hw engine.
β οΈ Note: for GuC usage, always use xe_hwe_guc_logical_instance. for GuC usage, we should no longer use the raw logical instance. read that twice bestie, it's giving important π
irq_offsetβ IRQ offset of this hw engineirq_pageβ MEMIRQ page used by this HW enginemmio_baseβ MMIO base address of this hw enginereg_srβ table with registers to be restored on GT init/resume/reset πreg_whitelistβ table with registers to be whitelistedoa_whitelistβ oa registers to be whitelistedoa_srβ oa nonpriv whitelist registers, changed on oa stream open/closereg_lrcβ LRC workaround registersdomainβ force wake domain of this hw enginehwspβ hardware status page buffer objectexl_portβ execlists portfence_irqβ fence IRQ to run when a hw engine IRQ is receivedirq_handlerβ IRQ handler to run when hw engine IRQ is received β‘engine_idβ id for this hw engineeclassβ pointer to per hw engine class interfaceoa_unitβ oa unit for this hw enginehw_engine_groupβ the group of hw engines this one belongs to π«
π Description π
contains all the hardware engine state for physical instances. that's the whole thought. main character energy fr fr π
π SEE ALSO π
- Kernel file
./drivers/gpu/drm/xe/xe_hw_engine_types.h struct xe_hw_engine_class_intf(9)struct xe_hw_engine_snapshot(9)
go read those next, iykyk πβ¨
and that's the page, bestie π it lives in ./drivers/gpu/drm/xe, dated October 2026, and it's literally titled struct xe_hw_engine(9). slay, go forth and engine π§ππ₯
π¦ 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