Received: by 2002:a05:7412:2a8c:b0:e2:908c:2ebd with SMTP id u12csp3610333rdh; Thu, 28 Sep 2023 18:05:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG/pYj75UISB1AnOFN44nMJzUExhWrP7flqaYPrZmJslp2epBP6xCNJVpvhf0lesEMvpyee X-Received: by 2002:a05:6871:5c9:b0:1bf:61e3:df1 with SMTP id v9-20020a05687105c900b001bf61e30df1mr3272342oan.50.1695949516363; Thu, 28 Sep 2023 18:05:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695949516; cv=none; d=google.com; s=arc-20160816; b=xopjdvJTznR1E90dwaWFwSOGgCBND3bsnBJaHeGJPmlhQ40JqbcSUlIDfeBv+4Mh5K zfwcr3bCRWjc72vbiSLuyiMCpant5WfeTQVK1ouCQdBnibCnmZlfT6VOuR+rROaG/AVQ t4fr4xyaNvUAS54CEBn7axLDgEClB5IMht0TaTOSB646DJjhgssacPpx1tyBV5Sm110W KE/dfkgTO+iH6FlLowhFQaAdqt8//co8+XTPy2VHTYLy97UZY8kboQZrP7Yj5P3d43VA W56YG4TNFGpdLbvibSACK21i6HDs/UXyW5UEgVGC6WcdGegSgdwHtMXaumxUC7wmsGfX KlCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:references :in-reply-to:subject:cc:to:dkim-signature:dkim-signature:from; bh=DmX9bKSrcJ3gg7QbnQ5HyzLMjN52R6w5zfPwPk6xm2I=; fh=VQ0oKqaCrCQewXefSeRnd0u6Xo9cEq21RyALpQ5RDbA=; b=BSa37lN8a1R1zq3vGi7/nOVOxhayjChYXnE4kQRxdcLWvh6j97wCE6gKIBzcj4BbZ4 O5Hgut52brAZY+P0+ElHt2U5tu10CAVs4qIsAGGur9ljKIakLxSxudLCjR3pxmtj5y+5 QkXt2/pURJpBUnQ2wV7w/dDHoYTDodI2MZHEq6T6LQ1Ke9AlwP4CbslYYPDYQblbf0/w ymz93PbajOwfPqCp2mOwqber+QV5rcePrl8ZCnhkXRjdCawTVeygNLZllQ9JvuTGLPq1 dOA/zTqurOkjjxGa8A1r/4pOLY0N/CdjgLpNetr6SQbLYW1xF/EqVxU9XW1fdOyKMdia Mhtg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=YHT9m7xP; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e header.b=caIsx9kL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 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 pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id 126-20020a630284000000b00565f611a1f8si19131539pgc.263.2023.09.28.18.05.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Sep 2023 18:05:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=YHT9m7xP; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e header.b=caIsx9kL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id 2A5488031E97; Thu, 28 Sep 2023 13:22:48 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232246AbjI1UWH (ORCPT + 99 others); Thu, 28 Sep 2023 16:22:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46556 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232288AbjI1UWE (ORCPT ); Thu, 28 Sep 2023 16:22:04 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 79727CC4; Thu, 28 Sep 2023 13:21:51 -0700 (PDT) From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1695932510; 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: in-reply-to:in-reply-to:references:references; bh=DmX9bKSrcJ3gg7QbnQ5HyzLMjN52R6w5zfPwPk6xm2I=; b=YHT9m7xPV8mIUJbLtJqCcLFzUFa4VSLHpjgkGY3cd4OsQhGGJgLg1e37/hA4+6GMM4768U J25l2Ijl5q2Dr3EN5sV1sW5qOUs6yOKu0Riai6pRlhAkAIDZJr2/z5n6bLp/vMjHgJ+Gt8 63LUYOG1iK4A0Zkv/x961yPdotSWh/SOFx/NVCyhNci9dTYBETgAAOOicW6ltIasTVrzML PrMeIDKfE7VwKrI5Sn/Ar4iVv2LH2liLUD3belCuqIgfums7+W1d5fGNCGiQjZartkoR+z gUfdlE3SjYRXr6yMe/vD0mOpT499Ao6EyQxB6mxpa1onD+YQCdM+hq/cTMS7ww== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1695932510; 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: in-reply-to:in-reply-to:references:references; bh=DmX9bKSrcJ3gg7QbnQ5HyzLMjN52R6w5zfPwPk6xm2I=; b=caIsx9kL4G5PovmJ3A6YjoJRCjOZI7Nd/fXke7hfbfjDaR9tlUHt4i1fkUBLXVsyc5lCpC yR+HpMzGp3/N7MDA== To: Mathieu Desnoyers , Peter Zijlstra Cc: linux-kernel@vger.kernel.org, "Paul E . McKenney" , Boqun Feng , "H . Peter Anvin" , Paul Turner , linux-api@vger.kernel.org, Christian Brauner , Florian Weimer , David.Laight@ACULAB.COM, carlos@redhat.com, Peter Oskolkov , Alexander Mikhalitsyn , Chris Kennelly , Ingo Molnar , Darren Hart , Davidlohr Bueso , =?utf-8?Q?An?= =?utf-8?Q?dr=C3=A9?= Almeida , libc-alpha@sourceware.org, Steven Rostedt , Jonathan Corbet , Noah Goldstein , Daniel Colascione , longman@redhat.com, Mathieu Desnoyers , Florian Weimer Subject: Re: [RFC PATCH v2 1/4] rseq: Add sched_state field to struct rseq In-Reply-To: <20230529191416.53955-2-mathieu.desnoyers@efficios.com> References: <20230529191416.53955-1-mathieu.desnoyers@efficios.com> <20230529191416.53955-2-mathieu.desnoyers@efficios.com> Date: Thu, 28 Sep 2023 22:21:49 +0200 Message-ID: <87r0midp5u.ffs@tglx> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Thu, 28 Sep 2023 13:22:48 -0700 (PDT) On Mon, May 29 2023 at 15:14, Mathieu Desnoyers wrote: > +void __rseq_set_sched_state(struct task_struct *t, unsigned int state); > + > +static inline void rseq_set_sched_state(struct task_struct *t, unsigned int state) > +{ > + if (t->rseq_sched_state) > + __rseq_set_sched_state(t, state); This is invoked on every context switch and writes over that state unconditionally even in the case that the state was already cleared. There are enough situations where tasks are scheduled out several times while being in the kernel. > /* rseq_preempt() requires preemption to be disabled. */ > static inline void rseq_preempt(struct task_struct *t) > { > __set_bit(RSEQ_EVENT_PREEMPT_BIT, &t->rseq_event_mask); > rseq_set_notify_resume(t); > + rseq_set_sched_state(t, 0); This code is already stupid to begin with. __set_bit() is cheap, but rseq_set_notify_resume() is not as it has a conditional and a locked instruction and now you add two more conditionals into the context switch path. Thanks, tglx