On Wed, Oct 14, 2026 at 11:16:07PM +0200, Andrea Parri wrote:
> On Wed, Oct 14, 2026 at 02:52:45PM -0300, Jason Gunthorpe wrote:
> > > The mock page table has no memory type bits, so a mapping made with
> > > IOMMU_MMIO cannot be told apart from one made with IOMMU_CACHE. Wrap the
> > > mock's generic_pt map_range and unmap_range ops to record, per domain,
> > > the pages mapped with IOMMU_MMIO, and add IOMMU_TEST_OP_MD_CHECK_MMIO to
> > > check that a range is recorded. The check rejects ranges that wrap or
> > > do not fit in unsigned long.
> >
> > I'm not keen on this, the special mock amd domain is just for mock
> > usage, we should probably just add a mmio bit if we want to do this
> > test.
> 
> Makes sense, thanks.  For v3 I have:
> 
> - AMDV1PT_FMT_MOCK_MMIO (bit 52) in amdv1.h under AMDV1_IOMMUFD_SELFTEST,
>   set by amdv1pt_iommu_set_prot() for IOMMU_MMIO and kept by
>   amdv1pt_attr_from_entry();
> 
> - pt_iommu_amdv1_mock_iova_is_mmio() in fmt/iommu_mock.c, a walk like
>   iova_to_phys() that returns the bit, exported in GENERIC_PT_IOMMU for
>   IOMMU_TEST_OP_MD_CHECK_MMIO to use.
> 
> The op wrappers and the xarray in mock_iommu_domain are gone.  Is the
> extra export from iommu_mock.c OK with you, or would you rather the
> selftest read the PTE some other way?

Too much AI.

This sounds better, but I don't know if we need all this code just for
a selftest.

Jason

Reply via email to