Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp329303ioo; Thu, 26 May 2022 04:48:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxnQtSukeu9L+SnM1of7GZ1thR8Kxw68FDQwtDvf6ztYN2KDXnl0cLyL4sHev6NMKamod0d X-Received: by 2002:a17:907:2ce5:b0:6fe:b06b:bfb2 with SMTP id hz5-20020a1709072ce500b006feb06bbfb2mr28383160ejc.649.1653565683155; Thu, 26 May 2022 04:48:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653565683; cv=none; d=google.com; s=arc-20160816; b=ZUy0YzRbQLtGKbrJIIZcJDrGuHHYZ1i6KqtC2RLxx5hjpptcxHpslBxP2Sy/XrhGTw kmXzkMeScMEKZq2FDpuynyTAGQZ451WSSnAJ1MLve/9CVsfHadIm3oBhfSrnNv+XT9iO J/Uf9OVLM6YiNRQk8kTctHBcARlf7NXPx+3I5NDX1duuWC9ge8Hu51IZBP9yjZG4lXpX sxFMrkPPcEURfxt1xs36x0XSkhkYsFf4g1esfO9334uyGZwiKV0i2d083z2xfDnJFQIM Ct2KYIj0wOC4Ju7CZhPhKyIn8jgtd8CTaR7tthJUlMoWzU56Rik7NF281KXAah/fSzQ0 Eoyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=WKUmnG1GD+xZwvFA6pSYBvm3wS3OnsMFaG03VgGF580=; b=gIqu1mDLNIVb1iu5oS8cyoVUHnf8GMyhlgINKf4OBTfpVyhL6qAcVmscHyWwiXlYQ3 z9So0IQVq3H58oX69iKtDq663emvRYaR2YlQTAdU0hkYJwR1wOiukQ89/JbEeOQ1rR7f m6hcjEx/UroXq0ZmReVWxMGQZvM73W7+hon2ZI1e2VNM2q2JyFY5IifWuYqTx6X9WoGn MGicJDvjnc6UdBTyeaYGqOnUyneXfCym6ZsA7w9ObMlUUogUKPsgExncv8ni91AY9+g4 X/PaOrr8nFCYCX7N0w70pVvCXK3ot1zn4f3Y1p81uofpeSbKbb25fZ+P/wXIi8O4712k USAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="MJWvB/OD"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b30-20020a509f21000000b0042bc6b1280csi1184945edf.444.2022.05.26.04.47.36; Thu, 26 May 2022 04:48:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="MJWvB/OD"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237130AbiEYWLG (ORCPT + 99 others); Wed, 25 May 2022 18:11:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47528 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232910AbiEYWLE (ORCPT ); Wed, 25 May 2022 18:11:04 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5530FE0DE; Wed, 25 May 2022 15:11:03 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id D1BF861A6A; Wed, 25 May 2022 22:11:02 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5123DC385B8; Wed, 25 May 2022 22:10:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1653516662; bh=8/oAklBNbfDZaQphmdXoJ98F8nopGS+/8AEvEDWMLbk=; h=From:To:Cc:Subject:Date:From; b=MJWvB/ODlUHciOIPMxKAovxcKbwhU8h35M/Dhz+772gBaJXSS8VB36kvrkjU8goKX AOtL7h44GEu6Se0Zvgev6RZyhxgulOcobYDG7A40iiYD8edSAJHMSUOJbYh5aIhHf/ jFQT/MJgvH9uTl07Pb9F+IltQnejvJ8jXKw6FnxyOpjWLZwsRtrzKpJKP91SdjLpwW Iizk5od9qo8K1MZC9Rt8GLTozhHYVzMIfJZeE81eLieKkv3ftko1raAomyyBN69pE+ MoWFH4Nn8D4bhoOs/9NxddLBqvDgU5KD6roykx5Cc/Z3eydTbAl1OnSjy5X1ezg5+h MoenN2aOuY/vA== From: Frederic Weisbecker To: LKML Cc: Frederic Weisbecker , Tejun Heo , Peter Zijlstra , "Paul E . McKenney" , Paul Gortmaker , Johannes Weiner , Marcelo Tosatti , Phil Auld , Zefan Li , Waiman Long , Daniel Bristot de Oliveira , Nicolas Saenz Julienne , rcu@vger.kernel.org Subject: [PATCH 0/4] rcu/cpuset: Control RCU_NOCB offloading through cpusets Date: Thu, 26 May 2022 00:10:51 +0200 Message-Id: <20220525221055.1152307-1-frederic@kernel.org> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The infrastructure in RCU and housekeeping code are finally ready for this. Now it's time to introduce CPU isolation feature files to cpusets. Here is the first one. RCU NOCB is an RCU feature that offloads RCU callbacks lifecycle handling and execution out of the enqueuer's CPU softirq to specific kthreads instead (rcuo and rcuog). This pulls some kernel noise out of CPUs that may run critical code. This is usually associated with nohz_full. The CPUs list to be set in RCU NOCB mode is defined on boot time through the "rcu_nocbs=" kernel parameter and can't be changed afterward. This patchset aims at allowing for changing this on runtime through cpuset. I may have missed a few things in the last patch, such as partition type changes to/from error mode, I'm not sure... Anyway it's an RFC and it doesn't yet provide documentation in this early posting. git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git cpuset/nocb HEAD: ad895c0b6a5e3c41d46f184900d193e70bfc90d3 Thanks, Frederic --- Frederic Weisbecker (4): rcu/nocb: Pass a cpumask instead of a single CPU to offload/deoffload rcu/nocb: Prepare to change nocb cpumask from CPU-hotplug protected cpuset caller sched/isolation: Infrastructure to support rcu nocb cpumask changes cpuset: Support RCU-NOCB toggle on v2 root partitions include/linux/rcupdate.h | 9 ++-- include/linux/sched/isolation.h | 13 +++++ kernel/cgroup/cpuset.c | 95 +++++++++++++++++++++++++++++++++-- kernel/rcu/rcutorture.c | 6 ++- kernel/rcu/tree_nocb.h | 106 +++++++++++++++++++++++++++------------- kernel/sched/isolation.c | 38 ++++++++++++++ 6 files changed, 223 insertions(+), 44 deletions(-)