Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp1204193pxb; Tue, 17 Aug 2021 06:22:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxM78b/B81tm0a64wvVyzZBNprxulpFFrX+y3KbbZMA4njV05AiNn0AkaQUpNQeER3dnZUL X-Received: by 2002:a05:6402:4cd:: with SMTP id n13mr4132514edw.215.1629206573662; Tue, 17 Aug 2021 06:22:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629206573; cv=none; d=google.com; s=arc-20160816; b=odKhVuD2poRurYHLlR/5FUIfJhD7vBSJw7LM7I1Sml3mZedTDPtYOBWJgHnYDmuwQ9 2UNA72eOdU1h09N3hgXfL3goqHd37gbNOjPG0r/rJkzPw7zUKGVrgBWuQRIAsUSKlXUT d2pRr+nFIF0WEoDZ4iswnOBkVAJgrh00n0ocho8cpUsnz+oW8SZ7uxFoWcF4+uov6SKG MdLfYH1ISBs2lqXDYMQke0cwifb6F64rXC5IJq5Xlyr1mYuKIPTVeT5WBj6MhCivHUyB ln3XtslS3lg8a9Y3oC2KwclB6jQS9R1u+nqctWbGCRnykBC7FOOGXCUFbYYmqzr4/5Rp cWTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:dkim-signature:dkim-signature:date; bh=u3bt7TzW/938vZc/Mx6WF9QB04VmQHL6ysb80Oa7dCU=; b=bYMqzyIyuh1sMxoLlqu+A7Gw4rDSRfiPufgr1RdQrqD3Nosmk4yFRrjgh0C7mbbw4a eJpkUjhSRR9evKb5vxpWxBUD7pZJYw6ZGfqblcRElr6mF2m7ljFfWm7P8gk4ZsvsC8+a hiL1UsBfpsBu2lcXvJeN/0iZPbVgcuQVBaJjCztekoMiQ6K5n4QszwDAhzBbMNJI4N4H InHAWr/mIIVnlDetNIIqKbODKLrmTGmy+1w0QFndDZ9KB7eP8e7bFTQZMIxbVb11ujmN KwJXhgJeHqNpgM1tyCpZId1Sw4bENnwB4KywWtdzxNfycPO2H8tB4J0TInfimOo2vjd1 34JQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=rHUhQGam; dkim=neutral (no key) header.i=@linutronix.de header.b="e/qbVWtU"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bh6si2285966ejb.691.2021.08.17.06.22.28; Tue, 17 Aug 2021 06:22:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=rHUhQGam; dkim=neutral (no key) header.i=@linutronix.de header.b="e/qbVWtU"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239894AbhHQNST (ORCPT + 99 others); Tue, 17 Aug 2021 09:18:19 -0400 Received: from Galois.linutronix.de ([193.142.43.55]:60492 "EHLO galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237615AbhHQNSR (ORCPT ); Tue, 17 Aug 2021 09:18:17 -0400 Date: Tue, 17 Aug 2021 15:17:41 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1629206263; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=u3bt7TzW/938vZc/Mx6WF9QB04VmQHL6ysb80Oa7dCU=; b=rHUhQGamZA/XTF2+yWTJCtSqxRY02aDK/gmO1rKZenVH8IIhpft/EML9N9ceMRauqsMAZk O5hgHIWwc+HG1c6Y5isAvJ+wTTm/HQ8rOAtuepIY4nS6GEUxcJIdFGpNftqy+EjtammeQw B+5C8NUtjBHwgN21ooH0vigZvij79Dzacvr/kIrF2hHT5T/xA4CamQ5hGrK1tjcMpNtZGc iuGKJsto9RL9OfBxa2BIr1EJKy2I645Inp39ilJJHAgQ64cnO2sy07mDsY43uAVHpXpbjn Ja3r5Dn7hq/edYQr8jUnAKceBjjJHk283doB1mlO2ydOQycIJ0NJY4a1fg2APA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1629206263; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=u3bt7TzW/938vZc/Mx6WF9QB04VmQHL6ysb80Oa7dCU=; b=e/qbVWtUO9Hb0fF4J3nTit/oOj4iNHDmmURhYHc471ibAr9MAo7vRtYus6cs0WDOgUMRkU H5zJq8vhbw4FrxDA== From: Sebastian Andrzej Siewior To: Valentin Schneider Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, rcu@vger.kernel.org, linux-rt-users@vger.kernel.org, Catalin Marinas , Will Deacon , Ingo Molnar , Peter Zijlstra , Thomas Gleixner , Steven Rostedt , Daniel Bristot de Oliveira , "Paul E. McKenney" , Frederic Weisbecker , Josh Triplett , Mathieu Desnoyers , Davidlohr Bueso , Lai Jiangshan , Joel Fernandes , Anshuman Khandual , Vincenzo Frascino , Steven Price , Ard Biesheuvel , Boqun Feng , Mike Galbraith Subject: Re: [PATCH v3 1/4] rcutorture: Don't disable softirqs with preemption disabled when PREEMPT_RT Message-ID: <20210817131741.evduh4fw7vyv2dzt@linutronix.de> References: <20210811201354.1976839-1-valentin.schneider@arm.com> <20210811201354.1976839-2-valentin.schneider@arm.com> <20210817121345.5iyj5epemczn3a52@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20210817121345.5iyj5epemczn3a52@linutronix.de> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2021-08-17 14:13:47 [+0200], To Valentin Schneider wrote: > > index eecd1caef71d..4f3db1d3170d 100644 > > --- a/kernel/rcu/rcutorture.c > > +++ b/kernel/rcu/rcutorture.c > > @@ -1548,6 +1548,8 @@ rcutorture_extend_mask(int oldmask, struct tortur= e_random_state *trsp) > > * them on non-RT. > > */ > > if (IS_ENABLED(CONFIG_PREEMPT_RT)) { > > + /* Can't disable bh in atomic context under PREEMPT_RT */ > > + mask &=3D ~(RCUTORTURE_RDR_ATOM_BH | RCUTORTURE_RDR_ATOM_RBH); >=20 > Let me stare at this=E2=80=A6 I would fold this --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -1549,6 +1549,13 @@ rcutorture_extend_mask(int oldmask, stru */ if (IS_ENABLED(CONFIG_PREEMPT_RT)) { /* + * Can't disable bh in atomic context if bh was already + * disabled by another task on the same CPU. Instead of + * attempting to track this, just avoid disabling bh in atomic + * context. + */ + mask &=3D ~atomic_bhs; + /* * Can't release the outermost rcu lock in an irq disabled * section without preemption also being disabled, if irqs * had ever been enabled during this RCU critical section @@ -1559,16 +1566,6 @@ rcutorture_extend_mask(int oldmask, stru !(mask & preempts)) mask |=3D RCUTORTURE_RDR_RCU; =20 - /* Can't modify atomic bh in non-atomic context */ - if ((oldmask & atomic_bhs) && (mask & atomic_bhs) && - !(mask & preempts_irq)) { - mask |=3D oldmask & preempts_irq; - if (mask & RCUTORTURE_RDR_IRQ) - mask |=3D oldmask & tmp; - } - if ((mask & atomic_bhs) && !(mask & preempts_irq)) - mask |=3D RCUTORTURE_RDR_PREEMPT; - /* Can't modify non-atomic bh in atomic context */ tmp =3D nonatomic_bhs; if (oldmask & preempts_irq) into the original patch and forward it upstream=E2=80=A6 Sebastian