Received: by 2002:a05:7412:31a9:b0:e2:908c:2ebd with SMTP id et41csp4821279rdb; Fri, 15 Sep 2023 13:24:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFfsVxDeVRAXi+mKROlhB7ltAp2nb3QRwSd+7ZYOdFPK1kcFavhmr+TDbmFQJEmuiihueeZ X-Received: by 2002:a05:6a00:c87:b0:68f:cb69:8e77 with SMTP id a7-20020a056a000c8700b0068fcb698e77mr3225331pfv.4.1694809462141; Fri, 15 Sep 2023 13:24:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694809462; cv=none; d=google.com; s=arc-20160816; b=Cl1q7n3TXrA9lV3rb506NQ/uR06G0jAllhnJzPmzsjh0H8J/YIsbXEv+Jbh9WZpC78 IfEdnDniXg3Fk6zKq/ufY6DbG4uVLHQaotHOBVlc3aZYNLVwE+Ekx5XF1k1wniPDvVlK 4d8lbx/mJ6rtnCmFIkwJTuLAssZH33bh43nTinmOP+8SLf8WxJ5KQ2klOqHHbnd4DleR FLDpjosvbKIdrJb7dIv/yzy7iWQhTh8T8AB/ywMH3P1gs0/hd2NOM6MmaGmD73BYo/Um GZdmkQLku33OyrSQlSU1ixmsQDdeHyWuxntVhDsl/cN0wbHUwbEXEiRWYkfoyL8iuP84 9aHw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=rF79129HHb7lRLyzplQ6qE1KQTogRF7tsVETm4+kAo8=; fh=L38uG/AYoTQFm6PZwfrny4lZEFiboMAvUoKV2tLQESI=; b=jBt4SjQ6253gKwv63YbB4uYx8qTBJaIZtK2/M/VF1OPb2xHnxolkbHMKaUHvH3rpny owWa7QfuFqS1iZrAlCgkSjnOWAzyC/lryzXUOsrfaXxkWkah8d2zhhazMW6VQd6kCLD4 f8ftwlyexscvXjbuvgr66HToBXyTxQ2u9K3fLe+Pl5dLEIIqcSFHP57auxAmuR+DHx3r /ZI9E0PNtYxN7fePR7ZclVro+f30gz+FNOF1RqBkmq/w/rtGbMVI/zoq4XhXj9wW2qpe 0PU10PBVPMipowpw3TXgFWIyucVmxBdGJ8WWYpOeDmba52ydfp14mCxzDZ99lElirjvo AWow== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id k18-20020aa790d2000000b0068fba252466si3665482pfk.169.2023.09.15.13.24.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 13:24:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 2963481E64AD; Fri, 15 Sep 2023 08:47:53 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236227AbjIOPrZ (ORCPT + 99 others); Fri, 15 Sep 2023 11:47:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41884 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236211AbjIOPqy (ORCPT ); Fri, 15 Sep 2023 11:46:54 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id A44BC30C7; Fri, 15 Sep 2023 08:46:10 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B1A11C15; Fri, 15 Sep 2023 08:46:47 -0700 (PDT) Received: from e126645.arm.com (unknown [10.57.93.60]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 4F7573F738; Fri, 15 Sep 2023 08:46:08 -0700 (PDT) From: Pierre Gondois To: linux-kernel@vger.kernel.org Cc: rui.zhang@intel.com, aaron.lu@intel.com, Pierre Gondois , Waiman Long , Zefan Li , Tejun Heo , Johannes Weiner , cgroups@vger.kernel.org Subject: [PATCH 1/1] cgroup/cpuset: Rebuild sched domains if isolated partition changed Date: Fri, 15 Sep 2023 17:45:04 +0200 Message-Id: <20230915154505.363754-2-pierre.gondois@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230915154505.363754-1-pierre.gondois@arm.com> References: <20230915154505.363754-1-pierre.gondois@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE 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 X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 15 Sep 2023 08:47:53 -0700 (PDT) When an isolated parition is created, the sched domains (sds) are rebuilt and the sds of the isolated CPUs are detached. This only happens at the creation of the isolated parition. Updating the cpuset of the partition doesn't rebuild the sds: To reproduce: # ls /sys/kernel/debug/sched/domains/cpu0/ domain0 # ls /sys/kernel/debug/sched/domains/cpu1/ domain0 # # mkdir cgroup # mount -t cgroup2 none cgroup/ # mkdir cgroup/A1/ # echo "+cpuset" > cgroup/cgroup.subtree_control # echo 0-3 > cgroup/A1/cpuset.cpus # echo isolated > cgroup/A1/cpuset.cpus.partition # # ls /sys/kernel/debug/sched/domains/cpu0/ # ls /sys/kernel/debug/sched/domains/cpu1/ # # echo 0 > cgroup/A1/cpuset.cpus # ls /sys/kernel/debug/sched/domains/cpu0/ # ls /sys/kernel/debug/sched/domains/cpu1/ # Here CPU1 should have a sched domain re-attached. Signed-off-by: Pierre Gondois --- kernel/cgroup/cpuset.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c index 58e6f18f01c1..e3eb27ff9b68 100644 --- a/kernel/cgroup/cpuset.c +++ b/kernel/cgroup/cpuset.c @@ -1680,11 +1680,15 @@ static void update_cpumasks_hier(struct cpuset *cs, struct tmpmasks *tmp, * empty cpuset is changed, we need to rebuild sched domains. * On default hierarchy, the cpuset needs to be a partition * root as well. + * Also rebuild sched domains if the cpuset of an isolated + * partition changed. */ - if (!cpumask_empty(cp->cpus_allowed) && - is_sched_load_balance(cp) && - (!cgroup_subsys_on_dfl(cpuset_cgrp_subsys) || - is_partition_valid(cp))) + if ((!cpumask_empty(cp->cpus_allowed) && + is_sched_load_balance(cp) && + (!cgroup_subsys_on_dfl(cpuset_cgrp_subsys) || + is_partition_valid(cp))) || + (cp->partition_root_state == PRS_ISOLATED || + cp->partition_root_state == PRS_INVALID_ISOLATED)) need_rebuild_sched_domains = true; rcu_read_lock(); -- 2.25.1