intel_iommu_drain_pasid_prq(9)
β¨ intel_iommu_drain_pasid_prq β¨
okay bestie, so this is a page straight out of the Kernel API Manual β it's intel_iommu_drain_pasid_prq(9), and no cap, the name says it all. π
π NAME π
intel_iommu_drain_pasid_prq β drain page requests and page responses for a pasid. that's the whole vibe. π
π¦ SYNOPSIS π¦
void intel_iommu_drain_pasid_prq (struct device *dev , u32 pasid );
like, it returns nothing (void β she's not here to give you a value, she's here to do the work), and she takes two args. periodt. β¨
πΈ ARGUMENTS πΈ
devβ the target device. the one we're draining stuff for, iykyk. π«Άpasidβ the pasid we're draining. this is the main character of the whole operation, fr fr. π
π DESCRIPTION π
okay so here's the tea β β this function drains all pending page requests and page responses that relate to pasid, in both software and hardware. like, full sweep, no crumbs left. π₯
bestie, listen β this is supposed to be called after a very specific sequence. do not freestyle this: - the device driver has stopped DMA - the pasid entry has been cleared - both the IOTLB and the DevTLB have been invalidated get those done first, or you're gonna have a bad time. π
so what does it actually do, you ask? she waits until all the pending page requests for pasid sitting in the page fault queue are completed by the prq handling thread. then β and only then β she follows the steps described in VT-d spec CH7.10 to drain all page requests and page responses that are still pending in the hardware. iconic behavior, honestly. π
π§ SEE ALSO π§
- Kernel file
./drivers/iommu/intel/prq.cβ go read it, it's giving source of truth. π
and that's the whole page, bestie! π this gem lives in ./drivers/iommu/intel, and the version vibes are dated October 2026. go drain those page requests responsibly, mwah π«Άβ¨π
π¦ 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