From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4D052C2D0E4 for ; Tue, 24 Nov 2020 14:15:33 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B03792063A for ; Tue, 24 Nov 2020 14:15:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="HHfvPQal"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="MBZN3c7k" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B03792063A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=Geifs2cNqZR1KInaIvK83WcfnGrRco6Q722KNe+cj0k=; b=HHfvPQalufCsSGezGnfRY6aJF9 iAjjSuVCVDtoh7xVZPXEUEdwZSWbq5xD2iI2MAX/5kAuPHttgYWTkn3OAnl82CGHQCDgYiuIvd7Pp YazbutlGoR264LVSf0B8u5lwiuz/BcX8iXoFNOM+CAgsZf8wgMP5Q9SKjy9iyrNRo88gc9MlbiaGI l/CpyNyVEr87JusFAU/Ow/a+nThn7+jPfQw2Lw0/2t/OcytEyklPsN3HrLaYQXV5dEQsJbC4Y/YQ1 nV6NFNkfDnz8NZt2HzREt7szIiSvvJewNP5hArh9C+cHSqJTk0HKiEa98eWIONnnwra68GiXj9VVY JXW/Wu/w==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1khZ60-0004Ue-Lq; Tue, 24 Nov 2020 14:15:04 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1khZ5t-0004R3-2r for linux-arm-kernel@lists.infradead.org; Tue, 24 Nov 2020 14:14:58 +0000 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id CADBF2063A; Tue, 24 Nov 2020 14:14:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1606227296; bh=F30Bz9YLwr55lsxo6wyzgBYBg7fy7ZlU/lXDWGUcwyo=; h=From:To:Cc:Subject:Date:From; b=MBZN3c7k1F0VLck3VV8cjLn/E4zVyVpLdryZA32f7T7PeIZX/HlUwNA1PhlYrh7Ls +mDLLgB9aZxqe8HsldcKb84jnvsBC5jvCk/3Vb34BKpeXuRbVJOMQ0BYS71+AUzjNO CtXX45y7NH4ui/QiYxJjllyQrUVhKp4nmpNCI/0k= Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=why.lan) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1khZ5p-00DGcy-Iq; Tue, 24 Nov 2020 14:14:53 +0000 From: Marc Zyngier To: LAK , linux-kernel Subject: [PATCH v2 0/6] arm/arm64: Allow the rescheduling IPI to bypass irq_enter/exit Date: Tue, 24 Nov 2020 14:14:43 +0000 Message-Id: <20201124141449.572446-1-maz@kernel.org> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, will@kernel.org, catalin.marinas@arm.com, tglx@linutronix.de, Valentin.Schneider@arm.com, peterz@infradead.org, mark.rutland@arm.com, linux@arm.linux.org.uk, kernel-team@android.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201124_091457_226264_2919BE40 X-CRM114-Status: GOOD ( 15.08 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Android Kernel Team , Russell King , Peter Zijlstra , Catalin Marinas , Thomas Gleixner , Will Deacon , Valentin Schneider Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This is the second version of my earlier series [1], which aims at fixing (or papering over, depending on how you look at things) a performance regression seen on arm64 for reched IPI heavy workloads (such as "perf bench sched pipe"). As eloquently described by Thomas in his earlier replies [2], the current situation is less than ideal on most architecture except x86, and my conclusion is that what was broken in 5.9 wouldn't be more broken in 5.10 with these patches (and addresses the performance regression). Needless to say, I intend to try and help fixing the issues Thomas mentioned, and I believe that Mark (cc'd) already has something that could be used as a healthy starting point (Mark, do correct me if I misrepresented your work). Thanks, M. * From v1: - Added a new __irq_modify_status() helper - Renamed IRQ_NAKED to IRQ_RAW - Renamed IRQ_HIDDEN to IRQ_IPI - Applied the same workaround to 32bit ARM for completeness [1] https://lore.kernel.org/r/20201101131430.257038-1-maz@kernel.org/ [2] https://lore.kernel.org/r/87lfewnmdz.fsf@nanos.tec.linutronix.de/ Marc Zyngier (6): genirq: Add __irq_modify_status() helper to clear/set special flags genirq: Allow an interrupt to be marked as 'raw' arm64: Mark the recheduling IPI as raw interrupt arm: Mark the recheduling IPI as raw interrupt genirq: Drop IRQ_HIDDEN from IRQF_MODIFY_MASK genirq: Rename IRQ_HIDDEN to IRQ_IPI arch/arm/Kconfig | 1 + arch/arm/kernel/smp.c | 6 +++++- arch/arm64/Kconfig | 1 + arch/arm64/kernel/smp.c | 6 +++++- include/linux/irq.h | 11 ++++++++--- kernel/irq/Kconfig | 3 +++ kernel/irq/chip.c | 12 ++++++++++-- kernel/irq/debugfs.c | 3 ++- kernel/irq/irqdesc.c | 17 ++++++++++++----- kernel/irq/proc.c | 2 +- kernel/irq/settings.h | 33 +++++++++++++++++++++++++++------ 11 files changed, 75 insertions(+), 20 deletions(-) -- 2.28.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel