alloc_iova_fast(9)
β¨ alloc_iova_fast(9) β¨
okay so this is a page from the Kernel API Manual β yes, the kernel really does have its own manual, and yes, this function lives in it π
π NAME π
alloc_iova_fast β allocates an iova from rcache. that's the whole vibe, bestie β¨
πΈ SYNOPSIS πΈ
unsigned long alloc_iova_fast (struct iova_domain *iovad , unsigned long
size , unsigned long limit_pfn , bool flush_rcache );
like look at it, four args, returns an unsigned long, very demure, very mindful π«Ά
π ARGUMENTS π
iovadβ the iova domain in question, aka the whole little world we're allocating inside πsizeβ size of page frames to allocate, so it's giving "how much room do i need" πlimit_pfnβ max limit address, the ceiling, the "do not go past this" line π§flush_rcacheβ set to flush rcache on regular allocation failure. and bestie, this part is the whole plot, so let me spill π: this function tries to satisfy an iova allocation from the rcache, and falls back to regular allocation on failure. if regular allocation fails too and theflush_rcacheflag is set, then the rcache will be flushed. that's it, that's the tea π₯
π¦ SEE ALSO π¦
it's the friend group, they all hang out in the kernel file ./drivers/iommu/iova.c π§:
alloc_iova(9)find_iova(9)__free_iova(9)free_iova(9)free_iova_fast(9)put_iova_domain(9)reserve_iova(9)
ngl every function on this list is worth a read if you're actually messing with iova domains β they're literally neighbors in the same source file, so go say hi π
and that's the page!! signing off from ./drivers/iommu, October 2026 β go allocate something iconic, bestie πβ¨
π¦ 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