From nobody Sun Feb 8 08:21:11 2026 Received: from mail-yx1-f48.google.com (mail-yx1-f48.google.com [74.125.224.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 055B91E3DDE for ; Sun, 7 Dec 2025 03:42:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.224.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765078972; cv=none; b=UFqPEXp/BIwr1c/7f51KZg7a1k6ElyzpEf8Dhrtspxv3zTeEDSJHZEB9QcYpg0licbEk9LB/VhTVFi0v8sqzZswjKOFjxBr6lZMS6VSTyJ4EHKyqFJkMt32PDBBf3/Schzz+J0EhI2f4UvxXyvvGeBYuDKLsw8yFI7aJSDYk5wk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765078972; c=relaxed/simple; bh=YH6eaDmRmTHn+FyoMuEHAfLdOFgJjD9oa+jdXP2tLAA=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=qO+B5cyfNGz5zISUqPVeG2o7V+pKj7h7olsniqKoa7NcqHtEFymznlLfXV+vrFGemQFqVsEwmqvGuUYCQqksHdFj6y8vzu/n7TbrFWh3C2+rLXow10ZTiylFeS80U2F4jZWVY7g49aCkZDKUg1HE9tGMHVNwYE9t4ihdLRL9phw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=a5GFq5Yz; arc=none smtp.client-ip=74.125.224.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="a5GFq5Yz" Received: by mail-yx1-f48.google.com with SMTP id 956f58d0204a3-64306a32ed2so2986885d50.2 for ; Sat, 06 Dec 2025 19:42:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765078969; x=1765683769; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=4BdbCV1BRhxEuaE70jQhXGO+4mzY7lP0c3aGwtU8ggE=; b=a5GFq5YzuQR4NxeblGkvfK9Z+2I0Mw4geS8AHcIR9P09cdkvaRyRxIUlzpZZp1jSVX 8NLtwSZ8LYBQy7I3nrxqgvtcoMhmGJ43YiS3XoZA0Q5oDPwxw3NQtLXhUKMyrAnUDPdL NFHNxiWzz73RT7lI6woiBvi+Wgf5zT0deutDudV1pbknuCl7rXW/rwppqPXQr/jOL/0j KZMiB1pawPsa27OUMWbTb6AJKirGhJj15H/dWt8/4C63hJ0ceOEuJHiZIKqo2cw+tFpL hnoTPW21HrL5Li6vRZ22CiRJqDhC76s+Lutrs54MbHesptokVFZRf4Es1HIV2lfPmf6D GLuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765078969; x=1765683769; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=4BdbCV1BRhxEuaE70jQhXGO+4mzY7lP0c3aGwtU8ggE=; b=Ld8N5Nd410g6H7OIVw+4P8aeR8il4xb/ZjXFYZBTb7rZ/5DxTeKhJfV3ea6yQnkxd5 ud2AjppIdILjCkpN8EsSlghdZ3Fu+vvmquv07IuUGRRAzfYX0L2sxWGESxQofltz9wnK MB3JG/keWjC/d23yCiJI0nwhQcspne0sSTMbY4OqpPZtty4sFCl6xTyM7h1TwEgN4PUO oChJqNAIhBjCi55T6Me9ScFz6rRq/MeNOxQUoSdUZzHKL5IFuSWbAPsC1E3+n2vJpxIa Ybm6rAWOaIb1RiX7aapbPFSOialtzU5/nE2Ro8tU7qfzxS1M4PzuZ2AylELwse/JqfD9 HO+g== X-Forwarded-Encrypted: i=1; AJvYcCXqnc9jONMUT6NKdpPYveufda/C//daKOsXHcFSF2Q2SHLexLmkFfVAmLQKEWbMvEwy5ksWB1ijrjmj1PU=@vger.kernel.org X-Gm-Message-State: AOJu0Yy87J7/rMhxsHpPGvMR6NhSZ2aj40u1iE63c9DkUIQO/YfszUh5 GY57wH/U3BTjYcxIQwWSQ3r3sXy9ZnIEctTUVTLZwcNyCkdXU+aNtQn8 X-Gm-Gg: ASbGncsXE2nYvsaimo7Z4kaTn2tBas642UrIhbQ0ydUz5g9aSY/NTgJHHk9mFPpu9GA C8Uop+Yt4bcfzklDCk89l6SEBZI09W/0N923hHpdGK7Yw4uLhH7rU1seizHFM0jSoXRP8aDsCAW 3tIk2b8WPjauUtKN9AzDMxJARcDsnyqW1TOFsDAYndpRm8WL4JBpe6t7WDH7KcdlNr9EkRAPRDd E2ksvdYr5Q6Zc1NdTuBBO1inILNxRhuQplaX5moka968cUtNzQqD//1rziB2Z8mvLYBjsLZUVlU N7Fz88l2D/t+aF2I3OgZNP1ElpRpz/LJedq0NAmootwJytHXeGwk/l5qX3yFZEKltrtmrQ8Wwyh IdWwlNsdcO4SVC9/wJkkv6pdRiNpRoCG0tR2wf4mHgIJ1k8sPzUGwMhelxSvTP1i0KNNRN/UuNa OOVDNQiJ8= X-Google-Smtp-Source: AGHT+IHep+FOwjGGg6rN+D5bVxdTjub/bvk9JB22r/97GP/Cwwa3tjYsRRjzaOqlZvUASdqB7z4wrQ== X-Received: by 2002:a05:690e:4308:b0:63f:b7da:17b8 with SMTP id 956f58d0204a3-6444e75dd2fmr2955393d50.30.1765078968825; Sat, 06 Dec 2025 19:42:48 -0800 (PST) Received: from localhost ([2601:346:0:79bd:7387:2d57:6cc5:314a]) by smtp.gmail.com with ESMTPSA id 956f58d0204a3-6443f5b19dbsm3687644d50.20.2025.12.06.19.42.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Dec 2025 19:42:48 -0800 (PST) From: "Yury Norov (NVIDIA)" To: Peter Zijlstra , Ingo Molnar , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , linux-kernel@vger.kernel.org Cc: "Yury Norov (NVIDIA)" , K Prateek Nayak , Fernand Sieber Subject: [PATCH RESEND] sched/fair: use cpumask_weight_and() in sched_balance_find_dst_group() Date: Sat, 6 Dec 2025 22:42:47 -0500 Message-ID: <20251207034247.402926-1-yury.norov@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In the group_has_spare case, the function creates a temporary cpumask to just calculate weight of (p->cpus_ptr & sched_group_span(local)). We've got a dedicated helper for it. Reviewed-by: Vincent Guittot Reviewed-by: K Prateek Nayak Reviewed-by: Fernand Sieber Signed-off-by: Yury Norov (NVIDIA) --- Rebased and re-tested on top of master. Original patch: https://lore.kernel.org/all/20250911034454.494852-1-yury.norov@gmail.com/ kernel/sched/fair.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 3ead55e4b8a5..e04f94233cda 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -10972,10 +10972,9 @@ sched_balance_find_dst_group(struct sched_domain *= sd, struct task_struct *p, int * take care of it. */ if (p->nr_cpus_allowed !=3D NR_CPUS) { - struct cpumask *cpus =3D this_cpu_cpumask_var_ptr(select_rq_mask); - - cpumask_and(cpus, sched_group_span(local), p->cpus_ptr); - imb_numa_nr =3D min(cpumask_weight(cpus), sd->imb_numa_nr); + unsigned int w =3D cpumask_weight_and(p->cpus_ptr, + sched_group_span(local)); + imb_numa_nr =3D min(w, sd->imb_numa_nr); } =20 imbalance =3D abs(local_sgs.idle_cpus - idlest_sgs.idle_cpus); --=20 2.43.0