STRUCT ADRENO_SMMU_FAULT_INFO(9)
π struct adreno_smmu_fault_info(9) β a Kernel API Manual moment
Okay bestie, gather round, because this one is from the Kernel API Manual, section 9, and it's literally just a little container that carries the tea about a GPU page fault. The page you're reading is struct adreno_smmu_fault_info(9) β say that five times fast, iykyk π«Ά
β¨ NAME β¨
struct adreno_smmu_fault_info β a container for key fault information. That's it, that's the whole vibe: it holds the important fault deets so they can be passed along. π
πΈ SYNOPSIS πΈ
struct adreno_smmu_fault_info {
u64 far;
u64 ttbr0;
u32 contextidr;
u32 fsr;
u32 fsynr0;
u32 fsynr1;
u32 cbfrsynra;
};
Look at her. Seven members, all accounted for, no notes. π
π¦ Members π¦
Every single field, explained, because we do not skip details in this house:
farβ the faulting IOVA, straight fromARM_SMMU_CB_FAR. Like, where did it go wrong. πttbr0β the current TTBR0 pagetable, courtesy ofARM_SMMU_CB_TTBR0. The map she was using at the time, fr fr.contextidrβ literally just the value ofARM_SMMU_CB_CONTEXTIDR. No cap.fsrβ the fault status, pulled fromARM_SMMU_CB_FSR. The actual "what happened" of it all. π₯fsynr0β the value of FSYNR0 fromARM_SMMU_CB_FSYNR0. Yes bestie, both of them areFSYNR0, that's exactly what the page says and we are not touching it. πfsynr1β the value of FSYNR1 fromARM_SMMU_CB_FSYNR0. (See above. She said what she said. π)cbfrsynraβ the value of CBFRSYNRA fromARM_SMMU_GR1_CBFRSYNRA(idx). Note theidxβ it's indexed, okay? Don't forget theidx. β
π Description π
So here's the lore: this struct passes back key page fault information to the GPU driver through the get_fault_info function pointer. That's the whole gig. π«Ά
The GPU driver can then use this information to print informative log messages and to provide deeper GPU specific insight into the fault. Basically it's handing the driver a little gift bag of context so it can actually tell you what went sideways instead of just screaming into the void. Iconic behavior, honestly. π
Lowkey the whole point: the struct doesn't fix anything, she just delivers the info. The driver does the yapping.
π SEE ALSO π
- Kernel file
./include/linux/adreno-smmu-priv.hstructadreno_smmu_priv(9)β go read her next, she's the main character of this friend group. β¨
And that's the page, bestie! π Sourced from ./include/linux, dated October 2026, and if you see the title struct adre...u_fault_info(9) floating around, that's just the manpage being shy about long names. Mwah, go read the header file, ily. ππ¦π·
π¦ 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