Received: by 10.223.176.46 with SMTP id f43csp2317231wra; Thu, 25 Jan 2018 08:05:55 -0800 (PST) X-Google-Smtp-Source: AH8x226K3ltbR29vIn3p/iiictc+uFoDA25PgPMi5wPN+E3eJLargR0OWk0+0iIf1dafkrrOXE15 X-Received: by 10.99.155.9 with SMTP id r9mr6699896pgd.333.1516896354938; Thu, 25 Jan 2018 08:05:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516896354; cv=none; d=google.com; s=arc-20160816; b=KO2MzvFi2agE9mMgMSZRSpFOgqyi7ovZ5Wj2EmTKXep4dtqLNDJzl1Sqi41QJNnN2U QLkvMFVlNnjw8VyYD+SWWX81pFm3Vu1Er0VWETH88cafDuadcLTLnjbe2EDuzNUE/tw3 L50MbbMApfI2DUG7Y27zvtxEXZtxYRBA0w8rxGAGNtTD3fmakRQZhJ8iXX6zA5742tYH d4xD8/KSbTZcs8pu0dULLvXfHV14xCq+YhwL4uVZQfqnl1KL+AdqWJsMZSTK8+1A1Gwu pFxWxN7TZ/qYXkxjHW4Lk/Yn3R+TY5qjZEn64X/aCWeQlELYfnIUP197buPshohZINkD z1Nw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:to:from:cc:in-reply-to:subject:date:dkim-signature :arc-authentication-results; bh=qv6KV7aqsJHqT9cnUGzXAYYK4I1ktxc1Bw38YC18RR0=; b=L3o3k/M0jZj/DczxVmIv1+iT2nFNVTILD7daTH9jaHausH2WTfzK4WTaqU9CbC4Krr xB8WWj/I3GVa4eOCcdIPL9fEuv17LGzm+Ac1lQgJ0nEkuGWPYC7ezzqVonyrOBKAht/T BCuFkfOJD+9Td/Nh924amF6+GpwUOjL4vvvqr/KNs2f6zw01tpjf+mGIdqd3ML7NTK1s 6JGQiB0YVpbWpXNhkCAUtZq27ZQuPB6lNiNKSaw+VEdAnzAN912UyyBlK1B53jHWiVIf LvKUg/mKEIhyeyKFzuqeSU4pVp44Wl5fKe/LvOwFXbilSkWFiygZKC4zoqMfvTfcHUTp ZdTg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=Xo18pD2V; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 33-v6si2136359ply.512.2018.01.25.08.05.40; Thu, 25 Jan 2018 08:05:54 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=Xo18pD2V; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751400AbeAYQEl (ORCPT + 99 others); Thu, 25 Jan 2018 11:04:41 -0500 Received: from mail-pf0-f195.google.com ([209.85.192.195]:38553 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750980AbeAYQEj (ORCPT ); Thu, 25 Jan 2018 11:04:39 -0500 Received: by mail-pf0-f195.google.com with SMTP id k19so6068920pfj.5 for ; Thu, 25 Jan 2018 08:04:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; h=date:subject:in-reply-to:cc:from:to:message-id:mime-version :content-transfer-encoding; bh=qv6KV7aqsJHqT9cnUGzXAYYK4I1ktxc1Bw38YC18RR0=; b=Xo18pD2VT3/N6gi3ftArW+MMPeefRNsXNbSvwP7kF/S9SgmTVM/yHtnItD31JB9hvK +SzEWNXj5JF0gsi4/x+BwZoUgmEZxE9ri7Fe9QxzVU0U2GyPtYclVRdbdkgjF+76F/JZ 3+sm2raUORIDuRTNbR3bgCbOdNcyKbm+6Qv9iCw+Ipo4/phiEAdPzNk19aRwnvBMJsjc y+cyNAH5FmdYE0l+9JMOG/AXQo8O7RlGdTcxILgERLjtCix+LpdG5jPDHIcKAc5yFO0P wuLtCCv4GeQ7d2uvRXt11dWjSzu0d4qgsvIZxKpPT0n69w3o2BFmBFfMmjfApgHiOssg 8CQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:subject:in-reply-to:cc:from:to:message-id :mime-version:content-transfer-encoding; bh=qv6KV7aqsJHqT9cnUGzXAYYK4I1ktxc1Bw38YC18RR0=; b=pMsMlaRX0cPMWhueFSsoSV8wvKrMB37dgPbw3Y6qief2tlOq6lb4eu/mL8kEn1Tx2M lOmZxJHErnSzPVVEH6NEB0xXbfWu1i+EGf6H0Q2s8jAWiUnxcx3HNGAdWDdiMOc/pyWI ei4tckDgiGtrKPSlnC4NtSqggdtQSHC9tR99osiG1UNYrhOlNNeLuKQ9ulhiw9fVcFk3 01qRjBesXQfuCnSgHru1dITgFeZnr9hNdJp1M8189j4YrMTf/1RtcArMplk7Zas1/Q/M JlhoD1O5EIppX3VYPHwe4flGBKLtZcahEimvxK8eKBTA+rYmk6OebDfQ4Xr0P5ii9+9W 1eWA== X-Gm-Message-State: AKwxyteQDIENhxngzyNOCnID8tf5b6NWSQnlEEGnkkhUEWySbFsam8tN qgouy21WUo631h3EXhq+qU5M6g== X-Received: by 2002:a17:902:a03:: with SMTP id 3-v6mr9982178plo.282.1516896278740; Thu, 25 Jan 2018 08:04:38 -0800 (PST) Received: from localhost ([12.206.222.5]) by smtp.gmail.com with ESMTPSA id k90sm14864883pfk.171.2018.01.25.08.04.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 25 Jan 2018 08:04:38 -0800 (PST) Date: Thu, 25 Jan 2018 08:04:38 -0800 (PST) X-Google-Original-Date: Thu, 25 Jan 2018 08:04:36 PST (-0800) Subject: Re: [patches] Re: [PATCH v2 4/4] RISC-V: Move to the new generic IRQ handler In-Reply-To: <20180125083153.GI13019@lianli.shorne-pla.net> CC: linux@armlinux.org.uk, catalin.marinas@arm.com, Will Deacon , jonas@southpole.se, stefan.kristiansson@saunalahti.fi, tglx@linutronix.de, Christoph Hellwig , Arnd Bergmann , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, patches@groups.riscv.org From: Palmer Dabbelt To: shorne@gmail.com Message-ID: Mime-Version: 1.0 (MHng) Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 25 Jan 2018 00:31:53 PST (-0800), shorne@gmail.com wrote: > On Wed, Jan 24, 2018 at 07:07:56PM -0800, Palmer Dabbelt wrote: >> The old mechanism for handling IRQs on RISC-V was pretty ugly: the arch >> code looked at the Kconfig entry for our first-level irqchip driver and >> called into it directly. >> >> This patch uses the new 0generic IRQ handling infastructure, which >> essentially just deletes a bunch of code. This does add an additional >> load to the interrupt latency, but there's a lot of tuning left to be >> done there on RISC-V so I think it's OK for now. >> >> Signed-off-by: Palmer Dabbelt >> --- >> arch/riscv/Kconfig | 1 + >> arch/riscv/include/asm/Kbuild | 1 + >> arch/riscv/kernel/entry.S | 5 +++-- >> arch/riscv/kernel/irq.c | 13 ------------- >> 4 files changed, 5 insertions(+), 15 deletions(-) >> >> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig >> index 2c6adf12713a..e67f42178059 100644 >> --- a/arch/riscv/Kconfig >> +++ b/arch/riscv/Kconfig >> @@ -35,6 +35,7 @@ config RISCV >> select THREAD_INFO_IN_TASK >> select RISCV_IRQ_INTC >> select RISCV_TIMER >> + select MULTI_IRQ_HANDLER >> >> config MMU >> def_bool y >> diff --git a/arch/riscv/include/asm/Kbuild b/arch/riscv/include/asm/Kbuild >> index 970460a0b492..e0d0fbe43ca2 100644 >> --- a/arch/riscv/include/asm/Kbuild >> +++ b/arch/riscv/include/asm/Kbuild >> @@ -16,6 +16,7 @@ generic-y += ftrace.h >> generic-y += futex.h >> generic-y += hardirq.h >> generic-y += hash.h >> +generic-y += handle_irq.h >> generic-y += hw_irq.h >> generic-y += ioctl.h >> generic-y += ioctls.h >> diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S >> index 7404ec222406..a79869151aea 100644 >> --- a/arch/riscv/kernel/entry.S >> +++ b/arch/riscv/kernel/entry.S >> @@ -166,8 +166,9 @@ ENTRY(handle_exception) >> /* Handle interrupts */ >> slli a0, s4, 1 >> srli a0, a0, 1 > > Hi Palmer, > > Do we need these shifts into a0? I guess these were used when this was an arg > to do_IRQ, but no longer needed since you put pt_regs into a0 in the next > instruction. Thanks! > Other than that it looks good, and thanks for looking at OpenRISC too. > > Acked-by: Stafford Horne > > >> - move a1, sp /* pt_regs */ >> - tail do_IRQ >> + move a0, sp /* pt_regs */ >> + REG_L a1, handle_arch_irq >> + jr a1 >> 1: >> /* Handle syscalls */ >> li t0, EXC_SYSCALL >> diff --git a/arch/riscv/kernel/irq.c b/arch/riscv/kernel/irq.c >> index 328718e8026e..b74cbfbce2d0 100644 >> --- a/arch/riscv/kernel/irq.c >> +++ b/arch/riscv/kernel/irq.c >> @@ -24,16 +24,3 @@ void __init init_IRQ(void) >> { >> irqchip_init(); >> } >> - >> -asmlinkage void __irq_entry do_IRQ(unsigned int cause, struct pt_regs *regs) >> -{ >> -#ifdef CONFIG_RISCV_INTC >> - /* >> - * FIXME: We don't want a direct call to riscv_intc_irq here. The plan >> - * is to put an IRQ domain here and let the interrupt controller >> - * register with that, but I poked around the arm64 code a bit and >> - * there might be a better way to do it (ie, something fully generic). >> - */ >> - riscv_intc_irq(cause, regs); >> -#endif >> -} >> -- >> 2.13.6 >>