Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752585AbdFUJI0 (ORCPT ); Wed, 21 Jun 2017 05:08:26 -0400 Received: from foss.arm.com ([217.140.101.70]:49040 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752095AbdFUJIX (ORCPT ); Wed, 21 Jun 2017 05:08:23 -0400 Date: Wed, 21 Jun 2017 10:08:35 +0100 From: Will Deacon To: Geetha Akula Cc: Geetha sowjanya , Robin Murphy , Lorenzo Pieralisi , Hanjun Guo , Sudeep Holla , Linux IOMMU , Robert Moore , Lv Zheng , "Rafael J. Wysocki" , jcm@redhat.com, linux-kernel@vger.kernel.org, Robert Richter , Catalin Marinas , Sunil Goutham , linux-arm-kernel@lists.infradead.org, linux-acpi@vger.kernel.org, devel@acpica.org, Linu Cherian , Charles Garcia-Tobin , Rob Herring , Geetha Sowjanya , marc.zyngier@arm.com Subject: Re: [PATCH v8 3/3] iommu/arm-smmu-v3: Add workaround for Cavium ThunderX2 erratum #126 Message-ID: <20170621090835.GD3768@arm.com> References: <1497968259-16390-1-git-send-email-gakula@caviumnetworks.com> <1497968259-16390-4-git-send-email-gakula@caviumnetworks.com> <20170620180038.GC28035@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3042 Lines: 66 Hi Geetha, On Wed, Jun 21, 2017 at 12:09:45PM +0530, Geetha Akula wrote: > On Tue, Jun 20, 2017 at 11:30 PM, Will Deacon wrote: > > On Tue, Jun 20, 2017 at 07:47:39PM +0530, Geetha sowjanya wrote: > >> From: Geetha Sowjanya > >> > >> Cavium ThunderX2 SMMU doesn't support MSI and also doesn't have unique irq > >> lines for gerror, eventq and cmdq-sync. > >> > >> SHARED_IRQ option is set as a errata workaround, which allows to share the irq > >> line by register single irq handler for all the interrupts. > >> > >> Signed-off-by: Geetha sowjanya > >> --- > >> .../devicetree/bindings/iommu/arm,smmu-v3.txt | 5 ++ > >> drivers/iommu/arm-smmu-v3.c | 73 ++++++++++++++++---- > >> 2 files changed, 64 insertions(+), 14 deletions(-) > >> > >> diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt b/Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt > >> index 6ecc48c..44b40e0 100644 > >> --- a/Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt > >> +++ b/Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt > >> @@ -55,6 +55,11 @@ the PCIe specification. > >> Set for Caviun ThunderX2 silicon that doesn't support > >> SMMU page1 register space. > >> > >> +- cavium,cn9900-broken-unique-irqline > >> + : Use single irq line for all the SMMUv3 interrupts. > >> + Set for Caviun ThunderX2 silicon that doesn't support > >> + MSI and also doesn't have unique irq lines for gerror, > >> + eventq and cmdq-sync. > > > > I think we're better off just supporting a new (optional) named interrupt > > as "combined", and then allowing that to be used instead of the others. > > Are you suggesting to have new name irq "combined" like gerror ? > If yes, then this won't be possible with apci. We need to update iort spec to > add new name irq. I'm mainly talking about the DT binding here, but I don't see why you can't hack drivers/acpi/arm64/iort.c like you did for the other erratum and have it register a single interrupt called "combined" based on the model number. > >> + arm_smmu_shared_irq_thread, > >> + IRQF_ONESHOT | IRQF_SHARED, > > > > Why do you need IRQF_SHARED here? > > > +devm_request_threaded_irq(smmu->dev, irq, > + arm_smmu_combined_irq_handler, > + arm_smmu_combined_irq_thread, > + IRQF_SHARED, > + "arm-smmu-v3-combined-irq", smmu); > > On multi-node system, node1 SMMU's share irq lines with node0 SMMU's. How does that work? Are these really MSIs under the hood? If so, why didn't you just build them as... MSIs? I sincerely hope that you never want to support paging of DMA memory on this platform. It will run like a dog. Will