[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YB0VErwkA0ivRXTd@myrica>
Date: Fri, 5 Feb 2021 10:51:14 +0100
From: Jean-Philippe Brucker <jean-philippe@...aro.org>
To: Keqian Zhu <zhukeqian1@...wei.com>
Cc: Robin Murphy <robin.murphy@....com>, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, kvm@...r.kernel.org,
kvmarm@...ts.cs.columbia.edu, iommu@...ts.linux-foundation.org,
Will Deacon <will@...nel.org>,
Alex Williamson <alex.williamson@...hat.com>,
Marc Zyngier <maz@...nel.org>,
Catalin Marinas <catalin.marinas@....com>,
Mark Rutland <mark.rutland@....com>, jiangkunkun@...wei.com,
Suzuki K Poulose <suzuki.poulose@....com>,
Cornelia Huck <cohuck@...hat.com>, lushenming@...wei.com,
Kirti Wankhede <kwankhede@...dia.com>,
James Morse <james.morse@....com>, wanghaibin.wang@...wei.com,
"Tian, Kevin" <kevin.tian@...el.com>
Subject: Re: [RFC PATCH 01/11] iommu/arm-smmu-v3: Add feature detection for
HTTU
Hi Keqian,
On Fri, Feb 05, 2021 at 05:13:50PM +0800, Keqian Zhu wrote:
> > We need to accommodate the firmware override as well if we need this to be meaningful. Jean-Philippe is already carrying a suitable patch in the SVA stack[1].
> Robin, Thanks for pointing it out.
>
> Jean, I see that the IORT HTTU flag overrides the hardware register info unconditionally. I have some concern about it:
>
> If the override flag has HTTU but hardware doesn't support it, then driver will use this feature but receive access fault or permission fault from SMMU unexpectedly.
> 1) If IOPF is not supported, then kernel can not work normally.
> 2) If IOPF is supported, kernel will perform useless actions, such as HTTU based dma dirty tracking (this series).
>
> As the IORT spec doesn't give an explicit explanation for HTTU override, can we comprehend it as a mask for HTTU related hardware register?
To me "Overrides the value of SMMU_IDR0.HTTU" is clear enough: disregard
the value of SMMU_IDR0.HTTU and use the one specified by IORT instead. And
that's both ways, since there is no validity mask for the IORT value: if
there is an IORT table, always ignore SMMU_IDR0.HTTU.
That's how the SMMU driver implements the COHACC bit, which has the same
wording in IORT. So I think we should implement HTTU the same way.
One complication is that there is no equivalent override for device tree.
I think it can be added later if necessary, because unlike IORT it can be
tri state (property not present, overriden positive, overridden negative).
Thanks,
Jean
Powered by blists - more mailing lists