iommu_iotlb_...er_add_range(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

iommu_iotlb_gather_add_range β€” bestie, this is the gather helper for address-based TLB invalidation. That's the whole vibe. (It's section 9, kernel API territory, so bring your compiler voice.)


✨ SYNOPSIS ✨

void iommu_iotlb_gather_add_range (struct iommu_iotlb_gather *gather ,
unsigned long iova , size_t size );

Yes it's one function, yes it's void, yes you're gonna pass three things. Slay. πŸ’…


πŸŽ€ ARGUMENTS πŸŽ€

  • gather β€” the TLB gather data. This is the little bag everything gets collected into, okay? It's literally the whole point of the function. 🫢
  • iova β€” the start of the page to invalidate. That's your where.
  • size β€” the size of the page to invalidate. That's your how much, and ngl, "arbitrarily-sized" is the entire personality of this helper (more on that below πŸ‘€).

πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the tea, bestie: this is a helper for IOMMU drivers to build arbitrarily-sized invalidation commands β€” like, any size you want, the range is literally the only thing that matters here.

And the other half of the vibe? Simply minimising intermediate syncs is preferred. That's it, that's the design goal. Don't over-sync, don't be extra, just gather the range and let the syncs be minimal. Periodt. ✨

Note: it's a helper β€” it builds the invalidation commands for you, it doesn't do the invalidating itself, so don't come for me if you expected magic. It's giving "trust the process." 🌸

πŸ”₯ SEE ALSO πŸ”₯

The kernel file in question is ./include/linux/iommu.h β€” that's the mothership, go say hi. 🏠

And here's the whole friend group, no cap, all of them, in order:


That's the whole page, bestie β€” you ate that. πŸ“ Go gather those ranges responsibly. πŸ’œ

Source path: ./include/linux Β· Version date: October 2026 Β· Manual: iommu_iotlb_...er_add_range(9) β€” mwah, see you in the next man page. πŸŽ€πŸŒˆπŸ‘‘

πŸ“¦ where this page comes from