STRUCT XE_HW_FENCE_IRQ(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct xe_hw_fence_irq(9) πŸ’…

okay bestie, welcome to the Kernel API Manual section for struct xe_hw_fence_irq β€” the hardware fence IRQ handler. yes it's a whole struct, yes it's iconic, let's get into it ✨


🌸 NAME 🌸

struct xe_hw_fence_irq β€” the hardware fence IRQ handler, fr fr. this is the little guy that handles your interrupt requests for hardware fences πŸ’–


✨ SYNOPSIS ✨

struct xe_hw_fence_irq {
    spinlock_t lock;
    struct irq_work work;
    struct list_head pending;
    bool enabled;
};

look at that struct. she's gorgeous. four members, zero notes πŸŽ€


πŸŽ€ MEMBERS πŸŽ€

  • lock β€” a spinlock_t that protects all xe_hw_fences plus the pending list. like, she's the bouncer at the club and nobody gets past her, no cap πŸ”’
  • work β€” the struct irq_work IRQ worker that gets run to signal the fences. it's giving "main character who does the actual work" energy πŸ‘‘
  • pending β€” a struct list_head holding the list of pending xe_hw_fences. the queue of fences waiting for their moment 🌈
  • enabled β€” a bool that says whether fence signaling is enabled. on or off, babe, that's the whole vibe check ⭐

πŸ’– DESCRIPTION πŸ’–

so here's the tea: there's one of these per engine class, and its whole job is signaling completed xe_hw_fences, triggered via the hw engine interrupt πŸ”₯

on each trigger, it searches the list of pending fences and signals. that's it. that's the whole personality. lowkey efficient, highkey essential πŸ’…


πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./drivers/gpu/drm/xe/xe_hw_fence_types.h
  • struct xe_hw_fence_ctx(9)
  • struct xe_hw_fence(9)

go read those too, iykyk 🫢


okay that's the whole page! this cutie lives under ./drivers/gpu/drm/xe, dated October 2026, and it's literally filed under struct xe_hw_fence_irq(9). periodt. πŸ’œπŸŒΈ

πŸ“¦ where this page comes from