STRUCT IOMMU_DIRTY_OPS(9)
π struct iommu_dirty_ops(9) π
okay so bestie, welcome to the Kernel API Manual β¨ β yes it's the kernel, yes it's a struct, yes we're gonna get through this together, and yes you're gonna slay it π
β¨ NAME β¨
struct iommu_dirty_ops β the domain specific dirty tracking operations, periodt π«Ά
Like, that's literally her whole job: tracking what's dirty in your domain. Iconic behavior honestly.
πΈ SYNOPSIS πΈ
here's what she looks like, no notes:
struct iommu_dirty_ops {
int (*set_dirty_tracking)(struct iommu_domain *domain, bool
enabled);
int (*read_and_clear_dirty)(struct iommu_domain *domain, unsigned
long iova, size_t size, unsigned long flags, struct iommu_dirty_bitmap
*dirty);
};
that's two function pointers and honestly? she ate π₯
π Members π
set_dirty_tracking π
Enables or Disables the dirty tracking on the iommu domain β that's the whole vibe. On or off, bestie, no in-between π¦
read_and_clear_dirty π§
okay this one is doing the most and we love her for it. She walks the IOMMU page tables for dirtied PTEs marshalled into a bitmap, with a bit represented as a page β She reads the dirty PTE bits, and then she clears it from the IO pagetables. Read, then clear. Cleanup queen π
π read carefully: the clearing is part of the deal β it reads the dirty bits and clears them from the IO pagetables. That's the whole function name, and she is not lying to you.
π SEE ALSO π
bestie there are SO many friends here, it's giving family reunion π all of these live in the kernel file ./include/linux/iommu.h:
struct iommu_fault_page_request(9)struct iommu_fault(9)enum iommu_page_response_code(9)struct iommu_page_response(9)struct iopf_queue(9)struct iommu_resv_region(9)struct iommu_iotlb_gather(9)struct iommu_dirty_bitmap(9)struct iommu_user_data(9)struct iommu_user_data_array(9)__iommu_copy_struct_from_user(9)iommu_copy_struct_from_user(9)__iommu_copy_struct_from_user_array(9)iommu_copy_struct_from_user_array(9)iommu_copy_struct_from_full_user_array(9)__iommu_copy_struct_to_user(9)iommu_copy_struct_to_user(9)struct iommu_ops(9)struct iommu_domain_ops(9)struct iommu_device(9)struct iommu_fault_param(9)struct dev_iommu(9)iommu_iotlb_gather_is_disjoint(9)iommu_iotlb_gather_add_range(9)iommu_iotlb_gather_add_page(9)struct iommu_fwspec(9)struct iommu_sva(9)iommu_map_sgtable(9)
literally the whole group chat π go say hi, iykyk.
π¦ tiny footnote energy: this page lives at ./include/linux, and the version on deck is dated October 2026.
and that's the page, bestie β you understood it, you're a main character, go read some page tables π β¨π
π¦ 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