STRUCT XE_PAGEFAULT_QUEUE(9)
π NAME π
struct xe_pagefault_queue β the Xe pagefault queue, but make it consumer π
this is the section 9 kernel API manual page bestie, we're in the big leagues now
β¨ SYNOPSIS β¨
okay so picture this struct, absolutely iconic, here's the whole thing verbatim:
struct xe_pagefault_queue {
struct xe_device *xe;
void *data;
u32 size;
u32 head;
u32 tail;
spinlock_t lock;
struct work_struct worker;
};
π«Ά Members π«Ά
xeβ the back-pointer to the Xe device, she knows where she came from πdataβ the actual data in the queue, containingstruct xe_pagefault, and bestie it is protected bylockπsizeβ size of the queue, in bytes, no capheadβ head pointer, also in bytes, and it gets moved by the producer β protected bylocktoo π«Άtailβ tail pointer, in bytes, moved by the consumer this time β yep, protected bylockπΈlockβ literally protects the page fault queue, that's her whole job πworkerβ the worker that processes page faults, main character energy fr fr β‘
π Description π
So what's the vibe? This queue is used to capture all device page faults for deferred processing β like, every single one, she's collecting them π¦
And the sizing advice, listen up: size this queue to absorb the device's worst-case number of outstanding faults. Not the average case. Not the "probably fine" case. The worst-case one π do not come crying to me when your queue overflows because you sized it optimistically.
ngl the sizing thing is the actual important part, don't skip it π
π SEE ALSO π
- Kernel file
./drivers/gpu/drm/xe/xe_pagefault_types.h struct xe_pagefault(9)
k bye bestie, this page came to you from ./drivers/gpu/drm/xe, dated October 2026 β go read xe_pagefault(9) next, iykyk π§ββοΈβ¨
π¦ 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