From nobody Mon May 11 02:05:21 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 65D88C433EF for ; Mon, 18 Apr 2022 17:12:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346865AbiDRRPU (ORCPT ); Mon, 18 Apr 2022 13:15:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60138 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346818AbiDRRPI (ORCPT ); Mon, 18 Apr 2022 13:15:08 -0400 Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com [IPv6:2607:f8b0:4864:20::1035]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 32A29205E6 for ; Mon, 18 Apr 2022 10:12:26 -0700 (PDT) Received: by mail-pj1-x1035.google.com with SMTP id j8-20020a17090a060800b001cd4fb60dccso14619423pjj.2 for ; Mon, 18 Apr 2022 10:12:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EczBgSrH2S/KZGWpRphduxUxnAnNXtm2R6frAPGuEZk=; b=EUAqnJDbpIA/Y7va/xIASz/J56PcYmJzvt7wqzCFE6UI48jubb8e8HZNWni8jozFrZ FbZjuEtRgfLi18erfhHPJZ+kR8jJ1n2rkX/cM6+r/rBV2DVNaWab0awGfMZ1JEE04BKT 17zEaIWmmA8/AQkB8XuzJ9QQEPCt+F0x4/h//nLVAWyBXql/1NwaU31FLS5y5NCa3eec JEe+Zqwq/tvaJiYuwf1XPNWfN5sN5A4DW34AL5fmWofFIdKxkQ8gEYEzpUHGqv0J3B67 BcVNolgE3XBYItsTpt/MlzFsaRa9trTVlBlANZj5ZW2BgE6ZB5erqO+Siua8PiAgfV32 ue2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=EczBgSrH2S/KZGWpRphduxUxnAnNXtm2R6frAPGuEZk=; b=0496U7wZl7Fr5sXus87XHhbRaUA0BC2RvKxe6mBcdp2KxsHFx4s3LJo3eauHIuy/gI rfp4+k7Ea/6vX4RgNgb16BXcucxi7e85IpRf/eZG8s01hziXIJiA9UAr1d1w9WuutN6V fD/cCdwF4Q+AfXoXniZcKDLoGeqiUfOIx0kcx9mQix8eivuByWWdzu9KOhG53bB8Mn1p g2V1PJMOHx/JODWMW7H+83XUkPZBMehZ6JTTEPLFsgtb1otB4bAxLwiv6XzAlesn8cHJ 6MvXHlzhs7b7PE0z6XbjG9JHm4nhlsY4UNMaPFH94XuL4AqUU04YzkOJljknSwfCKgnt GXZg== X-Gm-Message-State: AOAM5316uPsuNSYP3yeY5zIEtw/OwXGCasfa7IHBbjzKU01pPz6Rv7/i 8wTWa16W6KNNXCAxIedLU37XCS8zZhw= X-Google-Smtp-Source: ABdhPJzho3bEGmPO1L6ubBM5Kahyw7ugp862MrHda+qnPqa++tNNLj6M/co9uD3OUfPW4AhySLlKNw== X-Received: by 2002:a17:90b:4c45:b0:1d2:abcd:be49 with SMTP id np5-20020a17090b4c4500b001d2abcdbe49mr4298011pjb.193.1650301945715; Mon, 18 Apr 2022 10:12:25 -0700 (PDT) Received: from octofox.hsd1.ca.comcast.net ([2601:641:401:1d20:3f09:380c:8f11:5a8a]) by smtp.gmail.com with ESMTPSA id e16-20020a63ee10000000b0039d1c7e80bcsm13637138pgi.75.2022.04.18.10.12.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Apr 2022 10:12:24 -0700 (PDT) From: Max Filippov To: linux-xtensa@linux-xtensa.org Cc: Chris Zankel , linux-kernel@vger.kernel.org, Max Filippov Subject: [PATCH 1/5] xtensa: drop dead code from entry.S Date: Mon, 18 Apr 2022 10:12:01 -0700 Message-Id: <20220418171205.2413168-2-jcmvbkbc@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220418171205.2413168-1-jcmvbkbc@gmail.com> References: <20220418171205.2413168-1-jcmvbkbc@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" KERNEL_STACK_OVERFLOW_CHECK is incomplete and have never been enabled. Remove it. Signed-off-by: Max Filippov --- arch/xtensa/kernel/entry.S | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/arch/xtensa/kernel/entry.S b/arch/xtensa/kernel/entry.S index 6b6eff658795..3c0b1aac7aba 100644 --- a/arch/xtensa/kernel/entry.S +++ b/arch/xtensa/kernel/entry.S @@ -28,15 +28,6 @@ #include #include =20 -/* Unimplemented features. */ - -#undef KERNEL_STACK_OVERFLOW_CHECK - -/* Not well tested. - * - * - fast_coprocessor - */ - /* * Macro to find first bit set in WINDOWBASE from the left + 1 * @@ -350,15 +341,6 @@ KABI_W _bbsi.l a2, 3, 1f l32i a0, a1, PT_AREG0 # restore saved a0 wsr a0, depc =20 -#ifdef KERNEL_STACK_OVERFLOW_CHECK - - /* Stack overflow check, for debugging */ - extui a2, a1, TASK_SIZE_BITS,XX - movi a3, SIZE?? - _bge a2, a3, out_of_stack_panic - -#endif - /* * This is the common exception handler. * We get here from the user exception handler or simply by falling through --=20 2.30.2 From nobody Mon May 11 02:05:21 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 444EFC433F5 for ; Mon, 18 Apr 2022 17:12:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346850AbiDRRPM (ORCPT ); Mon, 18 Apr 2022 13:15:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344650AbiDRRPI (ORCPT ); Mon, 18 Apr 2022 13:15:08 -0400 Received: from mail-pg1-x534.google.com (mail-pg1-x534.google.com [IPv6:2607:f8b0:4864:20::534]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A87EE21244 for ; Mon, 18 Apr 2022 10:12:27 -0700 (PDT) Received: by mail-pg1-x534.google.com with SMTP id s137so19973846pgs.5 for ; Mon, 18 Apr 2022 10:12:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ZcVLSMeauHEXtyp9AxODJlBHCvOIwedUfh2n14tYNhg=; b=Kh069mCyQDD1Y5M3hVm1c19pBzUk9OtdZt0beL1xQQMGBPnr7ybJCSEYJeHYnzabIJ ZSJS2x+gJvZaYOeD7cReTdfPPVd1g8iV6edzOH/l41QgdemSRI8S6HNZ71OY0zlUU50H g3XTxdXlAaSv9pNa+/+HIMOcxUEWmsF30Ya2b0duly5ISRC6uZOiMVob7SgezA92nwFS lD3DzVmRr42rvwbkZYIJHIrcgmrappui2yjI6ppCsEzt3NMpzvJGvDWinCJUMCk3Mr/y PGtsX4KL297rQjfAq6h5+29aJEoqRoQfLAkpcBoTe971eAPoF/2qIGiZlBp4FdH6Y2OI ByXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ZcVLSMeauHEXtyp9AxODJlBHCvOIwedUfh2n14tYNhg=; b=5/D5ZqkjZtR9jpxnwxNm8ptaWZt/xCNdZgvw42v8KVeblD1HemWfBzhSdURy6ElHy6 2kCkS70X+5oK6gZLBmtYBaci5qane9BCkwK2ANkpFfLWOR0471Tu595Yl5QRiNRT5U8D Woqq9x7srQGZEc2e7tGUBC4JrTfLY3EYtth7BNbQOMQ2vAMn3lVFwsIgIVkff1XMm+WV wuiJAiyNVICYOyeKacmMCCSGX0d/f2lKj9lxcskbI4Yoh+Hb5mqnrJK0xBbpoOnJxYW0 QtNyLapN5sQIt14A3GszdfV6JPPdGyYAZM5O2lPSgwyYjgdoPlY2Ss07CJUDXw1lH8Ly pikA== X-Gm-Message-State: AOAM530jR6Xc4SGn6/QrTdr0eAUK7HJskP0hFxPxMFvACJ/yNAhTCjFe JlfLBnSwbGfSj6SAOzrDrUcIOyNKN0A= X-Google-Smtp-Source: ABdhPJywZ8F7/klptc0K5IM/nCi5QCWKkMLD3NHglOQ/IGD3XB4+QiafjpYCENkVMSsIfCs8jBnfGA== X-Received: by 2002:a63:e557:0:b0:39d:2965:a7f0 with SMTP id z23-20020a63e557000000b0039d2965a7f0mr10964189pgj.158.1650301947223; Mon, 18 Apr 2022 10:12:27 -0700 (PDT) Received: from octofox.hsd1.ca.comcast.net ([2601:641:401:1d20:3f09:380c:8f11:5a8a]) by smtp.gmail.com with ESMTPSA id e16-20020a63ee10000000b0039d1c7e80bcsm13637138pgi.75.2022.04.18.10.12.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Apr 2022 10:12:26 -0700 (PDT) From: Max Filippov To: linux-xtensa@linux-xtensa.org Cc: Chris Zankel , linux-kernel@vger.kernel.org, Max Filippov Subject: [PATCH 2/5] xtensa: move trace_hardirqs_off call back to entry.S Date: Mon, 18 Apr 2022 10:12:02 -0700 Message-Id: <20220418171205.2413168-3-jcmvbkbc@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220418171205.2413168-1-jcmvbkbc@gmail.com> References: <20220418171205.2413168-1-jcmvbkbc@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Context tracking call must be done after hardirq tracking call, otherwise lockdep_assert_irqs_disabled called from rcu_eqs_exit gives a warning. To avoid context tracking logic duplication for IRQ/exception entry paths move trace_hardirqs_off call back to common entry code. Signed-off-by: Max Filippov --- arch/xtensa/kernel/entry.S | 19 +++++++++++++------ arch/xtensa/kernel/traps.c | 11 ++--------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/arch/xtensa/kernel/entry.S b/arch/xtensa/kernel/entry.S index 3c0b1aac7aba..c85597a734aa 100644 --- a/arch/xtensa/kernel/entry.S +++ b/arch/xtensa/kernel/entry.S @@ -424,7 +424,6 @@ KABI_W or a3, a3, a0 moveqz a3, a0, a2 # a3 =3D LOCKLEVEL iff interrupt KABI_W movi a2, PS_WOE_MASK KABI_W or a3, a3, a2 - rsr a2, exccause #endif =20 /* restore return address (or 0 if return to userspace) */ @@ -451,19 +450,27 @@ KABI_W or a3, a3, a2 =20 save_xtregs_opt a1 a3 a4 a5 a6 a7 PT_XTREGS_OPT =09 +#ifdef CONFIG_TRACE_IRQFLAGS + rsr abi_tmp0, ps + extui abi_tmp0, abi_tmp0, PS_INTLEVEL_SHIFT, PS_INTLEVEL_WIDTH + beqz abi_tmp0, 1f + abi_call trace_hardirqs_off +1: +#endif + /* Go to second-level dispatcher. Set up parameters to pass to the * exception handler and call the exception handler. */ =20 - rsr a4, excsave1 - addx4 a4, a2, a4 - l32i a4, a4, EXC_TABLE_DEFAULT # load handler - mov abi_arg1, a2 # pass EXCCAUSE + l32i abi_arg1, a1, PT_EXCCAUSE # pass EXCCAUSE + rsr abi_tmp0, excsave1 + addx4 abi_tmp0, abi_arg1, abi_tmp0 + l32i abi_tmp0, abi_tmp0, EXC_TABLE_DEFAULT # load handler mov abi_arg0, a1 # pass stack frame =20 /* Call the second-level handler */ =20 - abi_callx a4 + abi_callx abi_tmp0 =20 /* Jump here for exception exit */ .global common_exception_return diff --git a/arch/xtensa/kernel/traps.c b/arch/xtensa/kernel/traps.c index 82ced7b25b77..515719c7e750 100644 --- a/arch/xtensa/kernel/traps.c +++ b/arch/xtensa/kernel/traps.c @@ -242,12 +242,8 @@ DEFINE_PER_CPU(unsigned long, nmi_count); =20 void do_nmi(struct pt_regs *regs) { - struct pt_regs *old_regs; + struct pt_regs *old_regs =3D set_irq_regs(regs); =20 - if ((regs->ps & PS_INTLEVEL_MASK) < LOCKLEVEL) - trace_hardirqs_off(); - - old_regs =3D set_irq_regs(regs); nmi_enter(); ++*this_cpu_ptr(&nmi_count); check_valid_nmi(); @@ -269,12 +265,9 @@ void do_interrupt(struct pt_regs *regs) XCHAL_INTLEVEL6_MASK, XCHAL_INTLEVEL7_MASK, }; - struct pt_regs *old_regs; + struct pt_regs *old_regs =3D set_irq_regs(regs); unsigned unhandled =3D ~0u; =20 - trace_hardirqs_off(); - - old_regs =3D set_irq_regs(regs); irq_enter(); =20 for (;;) { --=20 2.30.2 From nobody Mon May 11 02:05:21 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A4F00C433EF for ; Mon, 18 Apr 2022 17:12:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346873AbiDRRPX (ORCPT ); Mon, 18 Apr 2022 13:15:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346820AbiDRRPI (ORCPT ); Mon, 18 Apr 2022 13:15:08 -0400 Received: from mail-pl1-x634.google.com (mail-pl1-x634.google.com [IPv6:2607:f8b0:4864:20::634]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2F0CA21263 for ; Mon, 18 Apr 2022 10:12:29 -0700 (PDT) Received: by mail-pl1-x634.google.com with SMTP id be5so12815211plb.13 for ; Mon, 18 Apr 2022 10:12:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zoZQxmtb8wh8rIrYIwJh8EMCnLpoLNcQ3bLBdyTYQ6w=; b=oGePhJ4CL//kwxYgrL7T7zj0lNgwSohAJEPCTFN2QQEJnJn5Pp66ypPFowafWAlYDl uLeT7zCb7k+aar64pu4/2c2306Ut4jcNmn34NZI3na7reYJKjwNdJTF1RgrWj8jYj2cu kpHLzdpHj4gx5TJg44hXhNBfUnGai8YQlj8/Id+UbZCwx2oYkKqxjxfEOBVvfQPtgVu0 DviuhV5Tnf8/GwojjvmUAw8AGrCIjYUUa98K3dNB/qYpkQUOPAa6MR+//mnVw4YrTRQo J+5gSqU1UwamONsNn/oBbkv1C+Pp56celep1KU5sWr20BJVJXeLFzXMWtAuGAdLxdFfH yzDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zoZQxmtb8wh8rIrYIwJh8EMCnLpoLNcQ3bLBdyTYQ6w=; b=16YL/5h7UEfsFXF0TrVcif8bGrCN5hVW792AwnpcEIUp9nrn/r1GUASrVpBcQhNppG /BSO/ztNW1+1gMS52t4pO9tBoyQd9iO8eDS4QWXzN2Xv71ZkF1FajfWGAR9kUZf/HNIy vKNYZjVWOLYFj8NiM2mqdDNRX83CDAyp4cEKhaIxiwYc/ODnOgpTImjKAgLC2vsXoyqR gA+rTPEckQahCPsQYmwu7R3O4A073e30H+KpA4DRXeQWc6PWBjenTTH2cQqn1akSEpeo 0f4msouur4OnQ9WCHB82GsZO1oA0zVWN2G2fftsSCP7JNLudGZjgAG4j0ZLAFLOchj8/ Cc9A== X-Gm-Message-State: AOAM532tacV+XO81QNWLJTcDogdOKlHASzbMX70UqXdlQBuZNUpbkSLf UXD5/7DBCYvCWExIOAeqcrc= X-Google-Smtp-Source: ABdhPJyYTfhMqf837S2fuUtQSWU6SysAvp5Z7RY2vZSt/y/eY/bblzWbZV44btEVv4w2YhKfxN4w1Q== X-Received: by 2002:a17:902:8c81:b0:156:7fee:643b with SMTP id t1-20020a1709028c8100b001567fee643bmr11866552plo.59.1650301948714; Mon, 18 Apr 2022 10:12:28 -0700 (PDT) Received: from octofox.hsd1.ca.comcast.net ([2601:641:401:1d20:3f09:380c:8f11:5a8a]) by smtp.gmail.com with ESMTPSA id e16-20020a63ee10000000b0039d1c7e80bcsm13637138pgi.75.2022.04.18.10.12.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Apr 2022 10:12:28 -0700 (PDT) From: Max Filippov To: linux-xtensa@linux-xtensa.org Cc: Chris Zankel , linux-kernel@vger.kernel.org, Max Filippov Subject: [PATCH 3/5] xtensa: use abi_* register names in the kernel exit code Date: Mon, 18 Apr 2022 10:12:03 -0700 Message-Id: <20220418171205.2413168-4-jcmvbkbc@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220418171205.2413168-1-jcmvbkbc@gmail.com> References: <20220418171205.2413168-1-jcmvbkbc@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Using plain register names is prone to errors when code is changed and new calls are added between the register load and use. Change plain register names to abi_* names in the call-heavy part of the kernel exit code to clearly indicate what's supposed to be preserved and what's not. Re-align code while at it. Signed-off-by: Max Filippov --- arch/xtensa/kernel/entry.S | 82 +++++++++++++++++++------------------- 1 file changed, 42 insertions(+), 40 deletions(-) diff --git a/arch/xtensa/kernel/entry.S b/arch/xtensa/kernel/entry.S index c85597a734aa..d09f2c38ba84 100644 --- a/arch/xtensa/kernel/entry.S +++ b/arch/xtensa/kernel/entry.S @@ -462,11 +462,11 @@ KABI_W or a3, a3, a2 * exception handler and call the exception handler. */ =20 - l32i abi_arg1, a1, PT_EXCCAUSE # pass EXCCAUSE - rsr abi_tmp0, excsave1 - addx4 abi_tmp0, abi_arg1, abi_tmp0 - l32i abi_tmp0, abi_tmp0, EXC_TABLE_DEFAULT # load handler - mov abi_arg0, a1 # pass stack frame + l32i abi_arg1, a1, PT_EXCCAUSE # pass EXCCAUSE + rsr abi_tmp0, excsave1 + addx4 abi_tmp0, abi_arg1, abi_tmp0 + l32i abi_tmp0, abi_tmp0, EXC_TABLE_DEFAULT # load handler + mov abi_arg0, a1 # pass stack frame =20 /* Call the second-level handler */ =20 @@ -477,23 +477,23 @@ KABI_W or a3, a3, a2 common_exception_return: =20 #if XTENSA_FAKE_NMI - l32i abi_tmp0, a1, PT_EXCCAUSE - movi abi_tmp1, EXCCAUSE_MAPPED_NMI - l32i abi_saved1, a1, PT_PS - beq abi_tmp0, abi_tmp1, .Lrestore_state + l32i abi_tmp0, a1, PT_EXCCAUSE + movi abi_tmp1, EXCCAUSE_MAPPED_NMI + l32i abi_saved1, a1, PT_PS + beq abi_tmp0, abi_tmp1, .Lrestore_state #endif .Ltif_loop: - irq_save a2, a3 + irq_save abi_tmp0, abi_tmp1 #ifdef CONFIG_TRACE_IRQFLAGS abi_call trace_hardirqs_off #endif =20 /* Jump if we are returning from kernel exceptions. */ =20 - l32i abi_saved1, a1, PT_PS - GET_THREAD_INFO(a2, a1) - l32i a4, a2, TI_FLAGS - _bbci.l abi_saved1, PS_UM_BIT, .Lexit_tif_loop_kernel + l32i abi_saved1, a1, PT_PS + GET_THREAD_INFO(abi_tmp0, a1) + l32i abi_saved0, abi_tmp0, TI_FLAGS + _bbci.l abi_saved1, PS_UM_BIT, .Lexit_tif_loop_kernel =20 /* Specific to a user exception exit: * We need to check some flags for signal handling and rescheduling, @@ -502,75 +502,77 @@ common_exception_return: * Note that we don't disable interrupts here.=20 */ =20 - _bbsi.l a4, TIF_NEED_RESCHED, .Lresched - movi a2, _TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NOTIFY_SIGNAL - bnone a4, a2, .Lexit_tif_loop_user + _bbsi.l abi_saved0, TIF_NEED_RESCHED, .Lresched + movi abi_tmp0, _TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NOTIFY_SIGNAL + bnone abi_saved0, abi_tmp0, .Lexit_tif_loop_user =20 - l32i a4, a1, PT_DEPC - bgeui a4, VALID_DOUBLE_EXCEPTION_ADDRESS, .Lrestore_state + l32i abi_tmp0, a1, PT_DEPC + bgeui abi_tmp0, VALID_DOUBLE_EXCEPTION_ADDRESS, .Lrestore_state =20 /* Call do_signal() */ =20 #ifdef CONFIG_TRACE_IRQFLAGS abi_call trace_hardirqs_on #endif - rsil a2, 0 - mov abi_arg0, a1 + rsil abi_tmp0, 0 + mov abi_arg0, a1 abi_call do_notify_resume # int do_notify_resume(struct pt_regs*) - j .Ltif_loop + j .Ltif_loop =20 .Lresched: #ifdef CONFIG_TRACE_IRQFLAGS abi_call trace_hardirqs_on #endif - rsil a2, 0 + rsil abi_tmp0, 0 abi_call schedule # void schedule (void) - j .Ltif_loop + j .Ltif_loop =20 .Lexit_tif_loop_kernel: #ifdef CONFIG_PREEMPTION - _bbci.l a4, TIF_NEED_RESCHED, .Lrestore_state + _bbci.l abi_saved0, TIF_NEED_RESCHED, .Lrestore_state =20 /* Check current_thread_info->preempt_count */ =20 - l32i a4, a2, TI_PRE_COUNT - bnez a4, .Lrestore_state + l32i abi_tmp1, abi_tmp0, TI_PRE_COUNT + bnez abi_tmp1, .Lrestore_state abi_call preempt_schedule_irq #endif - j .Lrestore_state + j .Lrestore_state =20 .Lexit_tif_loop_user: #ifdef CONFIG_HAVE_HW_BREAKPOINT - _bbci.l a4, TIF_DB_DISABLED, 1f + _bbci.l abi_saved0, TIF_DB_DISABLED, 1f abi_call restore_dbreak 1: #endif #ifdef CONFIG_DEBUG_TLB_SANITY - l32i a4, a1, PT_DEPC - bgeui a4, VALID_DOUBLE_EXCEPTION_ADDRESS, .Lrestore_state + l32i abi_tmp0, a1, PT_DEPC + bgeui abi_tmp0, VALID_DOUBLE_EXCEPTION_ADDRESS, .Lrestore_state abi_call check_tlb_sanity #endif =20 .Lrestore_state: #ifdef CONFIG_TRACE_IRQFLAGS - extui a4, abi_saved1, PS_INTLEVEL_SHIFT, PS_INTLEVEL_WIDTH - bgei a4, LOCKLEVEL, 1f + extui abi_tmp0, abi_saved1, PS_INTLEVEL_SHIFT, PS_INTLEVEL_WIDTH + bgei abi_tmp0, LOCKLEVEL, 1f abi_call trace_hardirqs_on 1: #endif - /* Restore optional registers. */ + /* + * Restore optional registers. + * abi_arg* are used as temporary registers here. + */ =20 - load_xtregs_opt a1 a2 a4 a5 a6 a7 PT_XTREGS_OPT + load_xtregs_opt a1 abi_tmp0 abi_arg0 abi_arg1 abi_arg2 abi_arg3 PT_XTREGS= _OPT =20 /* Restore SCOMPARE1 */ =20 #if XCHAL_HAVE_S32C1I - l32i a2, a1, PT_SCOMPARE1 - wsr a2, scompare1 + l32i abi_tmp0, a1, PT_SCOMPARE1 + wsr abi_tmp0, scompare1 #endif - wsr abi_saved1, ps /* disable interrupts */ - - _bbci.l abi_saved1, PS_UM_BIT, kernel_exception_exit + wsr abi_saved1, ps /* disable interrupts */ + _bbci.l abi_saved1, PS_UM_BIT, kernel_exception_exit =20 user_exception_exit: =20 --=20 2.30.2 From nobody Mon May 11 02:05:21 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2DC44C433F5 for ; Mon, 18 Apr 2022 17:12:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239012AbiDRRP1 (ORCPT ); Mon, 18 Apr 2022 13:15:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60150 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346824AbiDRRPJ (ORCPT ); Mon, 18 Apr 2022 13:15:09 -0400 Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com [IPv6:2607:f8b0:4864:20::102d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8513A205C8 for ; Mon, 18 Apr 2022 10:12:30 -0700 (PDT) Received: by mail-pj1-x102d.google.com with SMTP id s14-20020a17090a880e00b001caaf6d3dd1so17760787pjn.3 for ; Mon, 18 Apr 2022 10:12:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=yE8pw+h1dbaWzikUW2j6kxY7g+BVeorFYlS2p9BBfy0=; b=V4Ms/p6T9fIF9M+z+F7Ig2d2qAol+38t5VnQThFXYaaTIfKGNXQKXT5Gym1bzxOV33 zaIBs7A9zDaFemq4bznhY+tpalEbiiWP5LPHk77zDbg/oKZt6fsqNTQKJEhrAgKSKWk0 thxj2QEKGhU25vtMznhS6w9aua+JglwQm8s3MaPg/qdL50KNUbFQfKwsZuxwfqtZFdrl PuTuJYIACAnUu8JtoCOo0mEyUXnqyoF31csh/wPCvjAq7A9H6pOVx11E7iKF6nCP8Wdj KWerdW8StFSGAP1tAmEoSgQb6yGxpXnhWaK3hF9e7EbqloSnOHYc/O3VgiAFVGSH/uAa HMFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=yE8pw+h1dbaWzikUW2j6kxY7g+BVeorFYlS2p9BBfy0=; b=17AUjaRArfzsTkaeFMJRMebE7DVZoHyNypn3neuZ5EKlziF9fhJptfzL3UTbuLVB9K 45BCO45Owa+YyTtj2PbXAeG8OudDgilGO22dRZOOpU2yN5Bx2D5hlNjAiwUevI72p93C QTIYoH9OYHtU9DikylhErY6oNQrVRl4diuHpEXbcMaMmPKQ/tGw3lZ61kkfYLsyKkXVg a6wykGEtQ0KogiFB488153AV1OSbg7QzKkwHC4UEQC9jwejztsRQshtIzUKu3j8uQc6J +AEUYTsPUPsI8owUeZSSRnOycKdLoYzjNgUwwlmBVgpfWoP/TOw9jXhBIaX55EaUmXat FBOg== X-Gm-Message-State: AOAM532E74yw3FVDYnyD7SV86rjKghc6QFq4YOYTAT4AZzf88znskdgV vGHsITGEMEAcKi1A4REfhL8= X-Google-Smtp-Source: ABdhPJxJEM7LGNW6eMwgM+JKh1lmLC5UPUAiX4iHCmiOn4l4E357qChHpu2WrbnuzOZHin4mqxNJnQ== X-Received: by 2002:a17:90b:3889:b0:1c7:a31f:2a50 with SMTP id mu9-20020a17090b388900b001c7a31f2a50mr19482679pjb.193.1650301950107; Mon, 18 Apr 2022 10:12:30 -0700 (PDT) Received: from octofox.hsd1.ca.comcast.net ([2601:641:401:1d20:3f09:380c:8f11:5a8a]) by smtp.gmail.com with ESMTPSA id e16-20020a63ee10000000b0039d1c7e80bcsm13637138pgi.75.2022.04.18.10.12.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Apr 2022 10:12:29 -0700 (PDT) From: Max Filippov To: linux-xtensa@linux-xtensa.org Cc: Chris Zankel , linux-kernel@vger.kernel.org, Max Filippov Subject: [PATCH 4/5] xtensa: enable context tracking Date: Mon, 18 Apr 2022 10:12:04 -0700 Message-Id: <20220418171205.2413168-5-jcmvbkbc@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220418171205.2413168-1-jcmvbkbc@gmail.com> References: <20220418171205.2413168-1-jcmvbkbc@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Put user exit context tracking call on the common kernel entry/exit path (function calls are impossible at earlier kernel entry stages because PS.EXCM is not cleared yet). Put user entry context tracking call on the user exit path. Syscalls go through this common code too, so nothing specific needs to be done for them. Signed-off-by: Max Filippov --- .../features/time/context-tracking/arch-support.txt | 2 +- arch/xtensa/Kconfig | 1 + arch/xtensa/kernel/entry.S | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Documentation/features/time/context-tracking/arch-support.txt = b/Documentation/features/time/context-tracking/arch-support.txt index bb1c1801553e..72e7aadeda7e 100644 --- a/Documentation/features/time/context-tracking/arch-support.txt +++ b/Documentation/features/time/context-tracking/arch-support.txt @@ -27,5 +27,5 @@ | sparc: | ok | | um: | TODO | | x86: | ok | - | xtensa: | TODO | + | xtensa: | ok | ----------------------- diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index e3ffd4564009..6134808a633d 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig @@ -31,6 +31,7 @@ config XTENSA select HAVE_ARCH_KASAN if MMU && !XIP_KERNEL select HAVE_ARCH_SECCOMP_FILTER select HAVE_ARCH_TRACEHOOK + select HAVE_CONTEXT_TRACKING select HAVE_DEBUG_KMEMLEAK select HAVE_DMA_CONTIGUOUS select HAVE_EXIT_THREAD diff --git a/arch/xtensa/kernel/entry.S b/arch/xtensa/kernel/entry.S index d09f2c38ba84..f2c789a5a92a 100644 --- a/arch/xtensa/kernel/entry.S +++ b/arch/xtensa/kernel/entry.S @@ -456,6 +456,12 @@ KABI_W or a3, a3, a2 beqz abi_tmp0, 1f abi_call trace_hardirqs_off 1: +#endif +#ifdef CONFIG_CONTEXT_TRACKING + l32i abi_tmp0, a1, PT_PS + bbci.l abi_tmp0, PS_UM_BIT, 1f + abi_call context_tracking_user_exit +1: #endif =20 /* Go to second-level dispatcher. Set up parameters to pass to the @@ -540,6 +546,9 @@ common_exception_return: j .Lrestore_state =20 .Lexit_tif_loop_user: +#ifdef CONFIG_CONTEXT_TRACKING + abi_call context_tracking_user_enter +#endif #ifdef CONFIG_HAVE_HW_BREAKPOINT _bbci.l abi_saved0, TIF_DB_DISABLED, 1f abi_call restore_dbreak --=20 2.30.2 From nobody Mon May 11 02:05:21 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 501A6C433F5 for ; Mon, 18 Apr 2022 17:13:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346895AbiDRRPf (ORCPT ); Mon, 18 Apr 2022 13:15:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60176 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346835AbiDRRPL (ORCPT ); Mon, 18 Apr 2022 13:15:11 -0400 Received: from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com [IPv6:2607:f8b0:4864:20::1032]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F12B320F7F for ; Mon, 18 Apr 2022 10:12:31 -0700 (PDT) Received: by mail-pj1-x1032.google.com with SMTP id n11-20020a17090a73cb00b001d1d3a7116bso341831pjk.0 for ; Mon, 18 Apr 2022 10:12:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Lh5wkQZbkXRgnC4EjKjmQBHmFIjrKbl6A7v1jfavo8o=; b=is/oplsxgXfd3Ca6GkmGp/PT4EJfLLlwOkdjXIO+h+IRZ/KytNrxvBQ7S7U93JQFP4 h0EIGyI3NDzkkojrNsgnru7Wp36kdWkr3t++Lq0G7KWoA2HaQ8azVDY+JmWVcD3TSeuD hCBDHEkv0HsJPCSP7iEz1QT1xMIlq8fpqZ1Tw6W2kiPa/7IE8koX4YVjJ7ObKjiZvwiq boJAkxtbq681aAKCnvFCbm4tr0IrYJAsYzZlVobT77ozxlsIanEvkV0tDo0OswmqmYNi BoOnWh25d4UF2lJ4TRaGMnEf2xZ1pS5y8TRzDsYh0bOcbdFxnIs064KyEXpt1agvzoVw XDUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Lh5wkQZbkXRgnC4EjKjmQBHmFIjrKbl6A7v1jfavo8o=; b=Uw4oj5xBMtQEwnBI0vD15rBZGYRj5ptTJ8mOsn5M8/k2SVHF5eJsFUS8RitArc3FY9 uphFHJbl9nyKL0KhKl8SCFkDAvbW2Z3cisi4CahXltxUV2gQ7oASgLOID5lCijUYVrYS hr2YHbhUS06JXg36q+qpzA++tsHov3w19MIek7xy4MYblFdYCACGJzbUBnnIi3W7c6IC v8bd6KsVl590SnfR0kS51gKuuHX4nXT7YBgU9ASBbGklgBX4rjJIf18Efo0KB3PE7095 2dmqRx0+8xQGUprzeoeodiVV2yQgLsJmEp3cFhfCiI5EEmqKZ6Hjb8URMtT5yNmEphJ/ RXXg== X-Gm-Message-State: AOAM530oGTLa1Twv+JsHIoMsWOylFmXt8O0vCKTPvsyP6S9uRXVkyAHg 0lymlIpamT9FJRvJY8nfbmw= X-Google-Smtp-Source: ABdhPJzGYxA05zBkmyGOb7yOlqsx0I2fv8L9tibsLM/3cNljPB8O80/1ZQdTEI1c4YF4iR6ksa/r3g== X-Received: by 2002:a17:90a:d584:b0:1bc:e520:91f2 with SMTP id v4-20020a17090ad58400b001bce52091f2mr19800353pju.192.1650301951534; Mon, 18 Apr 2022 10:12:31 -0700 (PDT) Received: from octofox.hsd1.ca.comcast.net ([2601:641:401:1d20:3f09:380c:8f11:5a8a]) by smtp.gmail.com with ESMTPSA id e16-20020a63ee10000000b0039d1c7e80bcsm13637138pgi.75.2022.04.18.10.12.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Apr 2022 10:12:30 -0700 (PDT) From: Max Filippov To: linux-xtensa@linux-xtensa.org Cc: Chris Zankel , linux-kernel@vger.kernel.org, Max Filippov Subject: [PATCH 5/5] xtensa: enable HAVE_VIRT_CPU_ACCOUNTING_GEN Date: Mon, 18 Apr 2022 10:12:05 -0700 Message-Id: <20220418171205.2413168-6-jcmvbkbc@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220418171205.2413168-1-jcmvbkbc@gmail.com> References: <20220418171205.2413168-1-jcmvbkbc@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" There's no direct cputime_t manipulation in the xtensa arch code, so generic virt CPU accounting may be enabled. Signed-off-by: Max Filippov --- Documentation/features/time/virt-cpuacct/arch-support.txt | 2 +- arch/xtensa/Kconfig | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/features/time/virt-cpuacct/arch-support.txt b/Do= cumentation/features/time/virt-cpuacct/arch-support.txt index 5163a60a1c1e..c905aa3c1d81 100644 --- a/Documentation/features/time/virt-cpuacct/arch-support.txt +++ b/Documentation/features/time/virt-cpuacct/arch-support.txt @@ -27,5 +27,5 @@ | sparc: | ok | | um: | TODO | | x86: | ok | - | xtensa: | TODO | + | xtensa: | ok | ----------------------- diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index 6134808a633d..797355c142b3 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig @@ -43,6 +43,7 @@ config XTENSA select HAVE_PERF_EVENTS select HAVE_STACKPROTECTOR select HAVE_SYSCALL_TRACEPOINTS + select HAVE_VIRT_CPU_ACCOUNTING_GEN select IRQ_DOMAIN select MODULES_USE_ELF_RELA select PERF_USE_VMALLOC --=20 2.30.2