From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A6AAEC48BE5 for ; Wed, 23 Jun 2021 17:39:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8FA13611CE for ; Wed, 23 Jun 2021 17:39:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229934AbhFWRlZ (ORCPT ); Wed, 23 Jun 2021 13:41:25 -0400 Received: from mail.kernel.org ([198.145.29.99]:35958 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229949AbhFWRlW (ORCPT ); Wed, 23 Jun 2021 13:41:22 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7D1C0611CB; Wed, 23 Jun 2021 17:39:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1624469945; bh=AlBbnFv7Q/bEhKDQrtQhWVzBKgipKcrsArpQHe3D68w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pNwbcsTkgVgcTi9gSV6sU2C7z30/ILJ0YoIn+JnmwpGUMf8h32/jpYgDRaK1BBrBC lXL29gl+hYAxIfPbQ5tlTfHqoz5IGDo2zIW/Zh69mHZDtygrec0qngLWK19TeTkdCy GFhIuCzLi77yx4jOaWKEKQzeInMvp5zawdd8kd5W28Lmh6i1WUG7tazQnzGeDzoWK3 MDkShgmGQGZrqsHuUqP5uuQnVRYqNGsPbQzT8GgiyI0oMFLr5RKxdElEvHomkrPPRm 2RUsnTT0YVAmsDNR9ae7JlC2KJ3Gri+UE12Z6W1Jp/QIdEQ411VqRMvlO3X6gFIkhW pEktNXI+bgbrA== From: Will Deacon To: linux-arm-kernel@lists.infradead.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, Will Deacon , Catalin Marinas , Marc Zyngier , Greg Kroah-Hartman , Peter Zijlstra , Morten Rasmussen , Qais Yousef , Suren Baghdasaryan , Quentin Perret , Tejun Heo , Johannes Weiner , Ingo Molnar , Juri Lelli , Vincent Guittot , "Rafael J. Wysocki" , Dietmar Eggemann , Daniel Bristot de Oliveira , Valentin Schneider , Mark Rutland , kernel-team@android.com Subject: [PATCH v10 02/16] cpuset: Don't use the cpu_possible_mask as a last resort for cgroup v1 Date: Wed, 23 Jun 2021 18:38:34 +0100 Message-Id: <20210623173848.318-3-will@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210623173848.318-1-will@kernel.org> References: <20210623173848.318-1-will@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If the scheduler cannot find an allowed CPU for a task, cpuset_cpus_allowed_fallback() will widen the affinity to cpu_possible_mask if cgroup v1 is in use. In preparation for allowing architectures to provide their own fallback mask, just return early if we're either using cgroup v1 or we're using cgroup v2 with a mask that contains invalid CPUs. This will allow select_fallback_rq() to figure out the mask by itself. Cc: Tejun Heo Cc: Johannes Weiner Reviewed-by: Valentin Schneider Reviewed-by: Quentin Perret Signed-off-by: Will Deacon --- include/linux/cpuset.h | 1 + kernel/cgroup/cpuset.c | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h index 04c20de66afc..ed6ec677dd6b 100644 --- a/include/linux/cpuset.h +++ b/include/linux/cpuset.h @@ -15,6 +15,7 @@ #include #include #include +#include #include #ifdef CONFIG_CPUSETS diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c index a945504c0ae7..6ec7303d5b1f 100644 --- a/kernel/cgroup/cpuset.c +++ b/kernel/cgroup/cpuset.c @@ -3322,9 +3322,13 @@ void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask) void cpuset_cpus_allowed_fallback(struct task_struct *tsk) { + const struct cpumask *cs_mask; + const struct cpumask *possible_mask = task_cpu_possible_mask(tsk); + rcu_read_lock(); - do_set_cpus_allowed(tsk, is_in_v2_mode() ? - task_cs(tsk)->cpus_allowed : cpu_possible_mask); + cs_mask = task_cs(tsk)->cpus_allowed; + if (is_in_v2_mode() && cpumask_subset(cs_mask, possible_mask)) + do_set_cpus_allowed(tsk, cs_mask); rcu_read_unlock(); /* -- 2.32.0.93.g670b81a890-goog From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7FF41C4743C for ; Wed, 23 Jun 2021 17:41:34 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 52E1060BD3 for ; Wed, 23 Jun 2021 17:41:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 52E1060BD3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=PBNz9lqvHkak4Y0hZMaZUxWpNWZFHBGaAA6q7X16r7E=; b=qdjQkIyp52vplZ e1wzhIQKewz3TxfvMouMYG27iwE8EKqdgq5cDdsQTIYvn2cAe09UGx1KwTVdEZ1lYADUFDWMK4qwt UBLbH5oBq5yYakIKcVzoniuoeo34rUNAWkpZTnGg+zt1X3sM+I1O2dbRF/5ktHBrl3bCMcQrfOmVQ ho3LrC2NcO9o5ynHkEStaqr52Nuu+RCHLzOIRNpVFyF0jezpRbRBDYHAs44NdT/MyUEwXwuGaqAmI 9HOwt+mtLxCQ3pnLkzwo5+twIblO6PlvjpqzIaoARZEoJ+V2gnuMQFSwbsiT9SdrZphOzowmE60oN 0VF9ZjszniEWw7ZlsyAQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lw6qW-00BRYi-Jx; Wed, 23 Jun 2021 17:39:28 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lw6q9-00BRQz-Aq for linux-arm-kernel@lists.infradead.org; Wed, 23 Jun 2021 17:39:06 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7D1C0611CB; Wed, 23 Jun 2021 17:39:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1624469945; bh=AlBbnFv7Q/bEhKDQrtQhWVzBKgipKcrsArpQHe3D68w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pNwbcsTkgVgcTi9gSV6sU2C7z30/ILJ0YoIn+JnmwpGUMf8h32/jpYgDRaK1BBrBC lXL29gl+hYAxIfPbQ5tlTfHqoz5IGDo2zIW/Zh69mHZDtygrec0qngLWK19TeTkdCy GFhIuCzLi77yx4jOaWKEKQzeInMvp5zawdd8kd5W28Lmh6i1WUG7tazQnzGeDzoWK3 MDkShgmGQGZrqsHuUqP5uuQnVRYqNGsPbQzT8GgiyI0oMFLr5RKxdElEvHomkrPPRm 2RUsnTT0YVAmsDNR9ae7JlC2KJ3Gri+UE12Z6W1Jp/QIdEQ411VqRMvlO3X6gFIkhW pEktNXI+bgbrA== From: Will Deacon To: linux-arm-kernel@lists.infradead.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, Will Deacon , Catalin Marinas , Marc Zyngier , Greg Kroah-Hartman , Peter Zijlstra , Morten Rasmussen , Qais Yousef , Suren Baghdasaryan , Quentin Perret , Tejun Heo , Johannes Weiner , Ingo Molnar , Juri Lelli , Vincent Guittot , "Rafael J. Wysocki" , Dietmar Eggemann , Daniel Bristot de Oliveira , Valentin Schneider , Mark Rutland , kernel-team@android.com Subject: [PATCH v10 02/16] cpuset: Don't use the cpu_possible_mask as a last resort for cgroup v1 Date: Wed, 23 Jun 2021 18:38:34 +0100 Message-Id: <20210623173848.318-3-will@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210623173848.318-1-will@kernel.org> References: <20210623173848.318-1-will@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210623_103905_440690_13DAA29F X-CRM114-Status: GOOD ( 13.54 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org If the scheduler cannot find an allowed CPU for a task, cpuset_cpus_allowed_fallback() will widen the affinity to cpu_possible_mask if cgroup v1 is in use. In preparation for allowing architectures to provide their own fallback mask, just return early if we're either using cgroup v1 or we're using cgroup v2 with a mask that contains invalid CPUs. This will allow select_fallback_rq() to figure out the mask by itself. Cc: Tejun Heo Cc: Johannes Weiner Reviewed-by: Valentin Schneider Reviewed-by: Quentin Perret Signed-off-by: Will Deacon --- include/linux/cpuset.h | 1 + kernel/cgroup/cpuset.c | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h index 04c20de66afc..ed6ec677dd6b 100644 --- a/include/linux/cpuset.h +++ b/include/linux/cpuset.h @@ -15,6 +15,7 @@ #include #include #include +#include #include #ifdef CONFIG_CPUSETS diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c index a945504c0ae7..6ec7303d5b1f 100644 --- a/kernel/cgroup/cpuset.c +++ b/kernel/cgroup/cpuset.c @@ -3322,9 +3322,13 @@ void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask) void cpuset_cpus_allowed_fallback(struct task_struct *tsk) { + const struct cpumask *cs_mask; + const struct cpumask *possible_mask = task_cpu_possible_mask(tsk); + rcu_read_lock(); - do_set_cpus_allowed(tsk, is_in_v2_mode() ? - task_cs(tsk)->cpus_allowed : cpu_possible_mask); + cs_mask = task_cs(tsk)->cpus_allowed; + if (is_in_v2_mode() && cpumask_subset(cs_mask, possible_mask)) + do_set_cpus_allowed(tsk, cs_mask); rcu_read_unlock(); /* -- 2.32.0.93.g670b81a890-goog _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel