STRUCT IOMMU_IOTLB_GATHER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay bestie, welcome to struct iommu_iotlb_gather(9) β€” literally the range information for a pending IOTLB flush. That's the whole vibe: one iconic little struct holding the deets for a flush that hasn't happened yet. πŸ¦‹


✨ SYNOPSIS ✨

no cap, here's the shape:

struct iommu_iotlb_gather {
    unsigned long           start;
    unsigned long           end;
    union {
      size_t pgsize;
      struct {
        u8 leaf_levels_bitmap;
        u8 table_levels_bitmap;
      } pt;
    };
    struct iommu_pages_list freelist;
    bool queued;
 };

πŸŽ€ Members πŸŽ€

  • start β€” IOVA representing the start of the range to be flushed.
  • end β€” IOVA representing the end of the range to be flushed (inclusive). inclusive, bestie β€” don't forget that part.
  • {unnamed_union} β€” anonymous. it's giving mysterious unnamed-union energy, honestly.
  • pgsize β€” The interval at which to perform the flush, only used by arm-smmu-v3.
  • pt.leaf_levels_bitmap β€” Bitmap of generic_pt levels where leaf entries were unmapped. Bit 0 means the leaf only level. If 0 no leafs were unmapped.
  • pt.table_levels_bitmap β€” Bitmap of generic_pt levels of table entries that were removed. Bit 0 is never set, bit 1 means a table of all leafs was removed. When freelist is empty this must be 0.
  • freelist β€” Removed pages to free after sync, only used by iommupt.
  • queued β€” True if the gather will be completed with a flush all.

🌸 Description 🌸

This structure is intended to be updated by multiple calls to the ->unmap function in struct iommu_ops before eventually being passed into ->iotlb_sync. Drivers can add pages to freelist to be freed after ->iotlb_sync or ->iotlb_flush_all have cleared all cached references to them. queued is set to indicate when ->iotlb_flush_all will be called later instead of ->iotlb_sync, so drivers may optimise accordingly.


πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./include/linux/iommu.h β€” also go say hi to these icons:


mwah πŸ’‹ β€” source ./include/linux, version struct iommu_iotlb_gather(9), date October 2026. periodt. 🌈

πŸ“¦ where this page comes from