Re: [PATCH v2 2/3] iommu/io-pgtable-arm-v7s: Remove split on unmap behavior

2024-11-05 Thread Jason Gunthorpe
On Tue, Nov 05, 2024 at 04:59:43PM +, Will Deacon wrote: > > /* Full unmap */ > > iova = 0; > > for_each_set_bit(i, &cfg.pgsize_bitmap, BITS_PER_LONG) { > > Yup, and you can do the same for the other selftest in io-pgtable-arm.c Ugh, yes, I ran it and thought the log it printed wa

Re: [PATCH v2 2/3] iommu/io-pgtable-arm-v7s: Remove split on unmap behavior

2024-11-05 Thread Will Deacon
On Mon, Nov 04, 2024 at 04:09:51PM -0400, Jason Gunthorpe wrote: > Runs OK now: > > arm-v7s io-pgtable: self test ok > arm-lpae io-pgtable: selftest: pgsize_bitmap 0x40201000, IAS 32 > > Jason > > --- a/drivers/iommu/io-pgtable-arm-v7s.c > +++ b/drivers/iommu/io-pgtable-arm-v7s.c > @@ -819,7 +81

Re: [PATCH v2 2/3] iommu/io-pgtable-arm-v7s: Remove split on unmap behavior

2024-11-04 Thread Jason Gunthorpe
On Mon, Nov 04, 2024 at 07:53:46PM +, Robin Murphy wrote: > On 2024-11-04 5:41 pm, Jason Gunthorpe wrote: > > A minority of page table implementations (arm_lpae, armv7) are unique in > > how they handle partial unmap of large IOPTEs. > > > > Other implementations will unmap the large IOPTE and

Re: [PATCH v2 2/3] iommu/io-pgtable-arm-v7s: Remove split on unmap behavior

2024-11-04 Thread Robin Murphy
On 2024-11-04 5:41 pm, Jason Gunthorpe wrote: A minority of page table implementations (arm_lpae, armv7) are unique in how they handle partial unmap of large IOPTEs. Other implementations will unmap the large IOPTE and return it's length. For example if a 2M IOPTE is present and the first 4K is

[PATCH v2 2/3] iommu/io-pgtable-arm-v7s: Remove split on unmap behavior

2024-11-04 Thread Jason Gunthorpe
A minority of page table implementations (arm_lpae, armv7) are unique in how they handle partial unmap of large IOPTEs. Other implementations will unmap the large IOPTE and return it's length. For example if a 2M IOPTE is present and the first 4K is requested to be unmapped then unmap will remove