free_iova_fast(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– free_iova_fast(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual ✨ β€” yes we're literally in the kernel docs together, hold my iced coffee πŸ§‹. Today's main character is free_iova_fast, a little function living its best life in the IOMMU world πŸ¦‹.


🌸 NAME 🌸

free_iova_fast β€” frees an iova pfn range and yeets it back into the rcache πŸŽ€


✨ SYNOPSIS ✨

void free_iova_fast (struct iova_domain *iovad , unsigned long pfn ,
       unsigned long size );

like, that's the whole signature. no cap. πŸ’…


πŸŽ€ ARGUMENTS πŸŽ€

  • iovad β€” the iova domain in question πŸ‘‘ β€” it's giving "which sandbox are we playing in".
  • pfn β€” a pfn that was allocated previously 🫢 β€” yes bestie it has to be one you already grabbed, not a random one you found on the floor.
  • size β€” the # of pages in the range πŸ“.

so about that last one β€” the original page just casually drops the whole function description right under size (iconic placement, honestly πŸ’€), and it says: this function frees an iova range by trying to put it into the rcache first, and if that fails it falls back to regular iova deallocation via free_iova πŸ”₯. so like β€” rcache first, free_iova as the backup plan. not me having a whole fallback strategy πŸ˜­πŸ’œ.


πŸ¦‹ SEE ALSO πŸ¦‹

kernel file ./drivers/iommu/iova.c πŸ‘€ and the whole squad:


lowkey a reminder that this is kernel territory β€” read the args carefully before you call it, mkay? 🌈

anyway that's the whole vibe check 🧚 β€” brought to you by ./drivers/iommu, dated October 2026, and yes the page title was free_iova_fast(9) all along, slay πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from