From patchwork Fri Dec 6 10:17:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jinjie Ruan X-Patchwork-Id: 13896823 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 04CD1E7717B for ; Fri, 6 Dec 2024 10:18:27 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.849988.1264506 (Exim 4.92) (envelope-from ) id 1tJVPi-0003JI-2h; Fri, 06 Dec 2024 10:18:22 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 849988.1264506; Fri, 06 Dec 2024 10:18:22 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tJVPh-0003Ip-Qu; Fri, 06 Dec 2024 10:18:21 +0000 Received: by outflank-mailman (input) for mailman id 849988; Fri, 06 Dec 2024 10:18:20 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tJVPg-0001om-4Z for xen-devel@lists.xenproject.org; Fri, 06 Dec 2024 10:18:20 +0000 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 687aba6b-b3bb-11ef-99a3-01e77a169b0f; Fri, 06 Dec 2024 11:18:18 +0100 (CET) Received: from mail.maildlp.com (unknown [172.19.88.105]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4Y4Rwr30x4z11Pg9; Fri, 6 Dec 2024 18:15:56 +0800 (CST) Received: from kwepemg200008.china.huawei.com (unknown [7.202.181.35]) by mail.maildlp.com (Postfix) with ESMTPS id 95893140360; Fri, 6 Dec 2024 18:18:15 +0800 (CST) Received: from huawei.com (10.90.53.73) by kwepemg200008.china.huawei.com (7.202.181.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Fri, 6 Dec 2024 18:18:14 +0800 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 687aba6b-b3bb-11ef-99a3-01e77a169b0f From: Jinjie Ruan To: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH -next v5 07/22] arm64: entry: preempt_schedule_irq() only if PREEMPTION enabled Date: Fri, 6 Dec 2024 18:17:29 +0800 Message-ID: <20241206101744.4161990-8-ruanjinjie@huawei.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20241206101744.4161990-1-ruanjinjie@huawei.com> References: <20241206101744.4161990-1-ruanjinjie@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.90.53.73] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To kwepemg200008.china.huawei.com (7.202.181.35) The generic entry check PREEMPTION for both PREEMPT_DYNAMIC enabled and PREEMPT_DYNAMIC disabled. Whether PREEMPT_DYNAMIC enabled or not, PREEMPTION should be enabled to allow reschedule before EL1 exception return, so move PREEMPTION check ahead in preparation for moving arm64 over to the generic entry code. Signed-off-by: Jinjie Ruan --- arch/arm64/kernel/entry-common.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c index 80b47ca02db2..029f8bd72f8a 100644 --- a/arch/arm64/kernel/entry-common.c +++ b/arch/arm64/kernel/entry-common.c @@ -109,9 +109,6 @@ void raw_irqentry_exit_cond_resched(void) #ifdef CONFIG_PREEMPT_DYNAMIC if (!static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched)) return; -#else - if (!IS_ENABLED(CONFIG_PREEMPTION)) - return; #endif if (!preempt_count()) { @@ -142,7 +139,8 @@ static __always_inline void __exit_to_kernel_mode(struct pt_regs *regs, return; } - raw_irqentry_exit_cond_resched(); + if (IS_ENABLED(CONFIG_PREEMPTION)) + raw_irqentry_exit_cond_resched(); trace_hardirqs_on(); } else {