[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <42f5aba4-9271-d106-4a85-1bfc9fd98de1@arm.com>
Date: Tue, 16 Mar 2021 13:03:42 +0000
From: Robin Murphy <robin.murphy@....com>
To: Christoph Hellwig <hch@....de>
Cc: kvm@...r.kernel.org, Will Deacon <will@...nel.org>,
linuxppc-dev@...ts.ozlabs.org, dri-devel@...ts.freedesktop.org,
Li Yang <leoyang.li@....com>, iommu@...ts.linux-foundation.org,
netdev@...r.kernel.org, David Woodhouse <dwmw2@...radead.org>,
linux-arm-kernel@...ts.infradead.org,
Michael Ellerman <mpe@...erman.id.au>,
virtualization@...ts.linux-foundation.org,
freedreno@...ts.freedesktop.org, linux-arm-msm@...r.kernel.org
Subject: Re: [PATCH 14/17] iommu: remove DOMAIN_ATTR_DMA_USE_FLUSH_QUEUE
On 2021-03-15 08:33, Christoph Hellwig wrote:
> On Fri, Mar 12, 2021 at 04:18:24PM +0000, Robin Murphy wrote:
>>> Let me know what you think of the version here:
>>>
>>> http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/iommu-cleanup
>>>
>>> I'll happily switch the patch to you as the author if you're fine with
>>> that as well.
>>
>> I still have reservations about removing the attribute API entirely and
>> pretending that io_pgtable_cfg is anything other than a SoC-specific
>> private interface,
>
> I think a private inteface would make more sense. For now I've just
> condensed it down to a generic set of quirk bits and dropped the
> attrs structure, which seems like an ok middle ground for now. That
> being said I wonder why that quirk isn't simply set in the device
> tree?
Because it's a software policy decision rather than any inherent
property of the platform, and the DT certainly doesn't know *when* any
particular device might prefer its IOMMU to use cacheable pagetables to
minimise TLB miss latency vs. saving the cache capacity for larger data
buffers. It really is most logical to decide this at the driver level.
In truth the overall concept *is* relatively generic (a trend towards
larger system caches and cleverer usage is about both raw performance
and saving power on off-SoC DRAM traffic), it's just the particular
implementation of using io-pgtable to set an outer-cacheable walk
attribute in an SMMU TCR that's pretty much specific to Qualcomm SoCs.
Hence why having a common abstraction at the iommu_domain level, but
where the exact details are free to vary across different IOMMUs and
their respective client drivers, is in many ways an ideal fit.
>> but the reworked patch on its own looks reasonable to
>> me, thanks! (I wasn't too convinced about the iommu_cmd_line wrappers
>> either...) Just iommu_get_dma_strict() needs an export since the SMMU
>> drivers can be modular - I consciously didn't add that myself since I was
>> mistakenly thinking only iommu-dma would call it.
>
> Fixed. Can I get your signoff for the patch? Then I'll switch it to
> over to being attributed to you.
Sure - I would have thought that the one I originally posted still
stands, but for the avoidance of doubt, for the parts of commit
8b6d45c495bd in your tree that remain from what I wrote:
Signed-off-by: Robin Murphy <robin.murphy@....com>
Cheers,
Robin.
Powered by blists - more mailing lists