On Wed, Nov 30, 2022 at 11:06:51PM +0800, Binbin Wu wrote:
+iommufd_ioas serves as the metadata datastructure to manage how IOVA ranges are +mapped to memory pages, composed of:
+- struct io_pagetable holding the IOVA map +- struct iopt_areas
The struct name should be iopt_area, adding "s" is a typo or intented for plural?
Yes, plural, I'll add a quote:
- struct iopt_area's representing populated portions of IOVA
representing populated portions of IOVA +- struct iopt_pages representing the storage of PFNs +- struct iommu_domain representing the IO page table in the IOMMU +- struct iopt_pages_access representing in-kernel users of PFNs +- struct xarray pinned_pfns holding a list of pages pinned by in-kernel users
+Each iopt_pages represents a logical linear array of full PFNs. The PFNs are +ultimately derived from userspave
typo, userspave -> userspace
VAs via an mm_struct. Once they have been +pinned the PFNs are stored in IOPTEs of an iommu_domain or inside the pinned_pages
pinned_pages -> pinned_pfns?
Yep
Got all the other stuff too!
Thanks, Jason