From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f194.google.com (mail-pl1-f194.google.com [209.85.214.194]) (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 CC6AC374E79 for ; Fri, 8 May 2026 06:29:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.194 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778221796; cv=none; b=a1dAOCLAHnlDNf9i2o2ETaUYGJD5gK/5YPCtpbiyG39Ipa7Qkw/2QUju9CBWrn+QfsllAX3jns5nzmYO4hIrF7sV7Hec9QHb7N15o/giiXdbRK1iqY1IfT2eq1R8iMTARL5i12x/tEFs6Bdiimzdk0s1WfnTulJ/N6QiMLppup8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778221796; c=relaxed/simple; bh=fW8gVB+EI6oZInFtMBuIDxuRFomnUCWVVIGa7SUwdDs=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=djxN0IC12h23KaFQZ3yqVtLhe+x88kJHxDeExTHQMavtZ20fKA5TfBMwYpZZO3PJzEt09yyDhqnYpy2TEfFO0niuolBnkME3PiWIhxDEiCeWsyUd3W4u2YdkOSBoR0RvAkZXPAkjM5lNk2Y1gNuu1l2kTyfEwg83SONEj092vY8= 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=TScFM5ED; arc=none smtp.client-ip=209.85.214.194 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="TScFM5ED" Received: by mail-pl1-f194.google.com with SMTP id d9443c01a7336-2ba928852a5so10963335ad.1 for ; Thu, 07 May 2026 23:29:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778221789; x=1778826589; 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=U9iTSiJD2169qOZHi6IKi+RhDhn4JEkgsKVNNe0KaB0=; b=TScFM5EDHHslmuivSg+05yjAw/QlMsWM5XCstRV+P/8N4ZLiHXX7Gu0jeptipvkEzp HzncI9UqGsWLUcoa5FZx9VYgOji7r0xVxl4p+BlrqsPmVOUyWodk4XY7MbdMqF7zHmZ+ gVvkgrfVV4YOo6RkK+u/J+5hZKrFXdDV5QDO857z0bNA1IH62n1AKiDHOTKKK5c3iCXY 4hoASJFDhqKZx2a94WXWLboEvyGJ4Q6c3YdzsnPpCrsA8QfCYjrqz5p46FypK2DUycNM u+ZB50PYsmAootdPjrFjqOCZ1zBfdKK9EFIk/BRzCYQzwrNSnli+uNRjmkMMpLqOBCUS F9IA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778221789; x=1778826589; 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=U9iTSiJD2169qOZHi6IKi+RhDhn4JEkgsKVNNe0KaB0=; b=MJQmSayzYCAjkH3OM3RvPWe1axjqHLOOlW7OTGGXMvSRWX3Qa+if8NshdGGotuHwZc grL8QjhvJiiWodKRPjJv5Xudi3JBb+1RSfLsumN7R5XLmG0DAkh7/waancfW5IWljMBT CxcglcA86o9RBgJnqS2ftb0UmGpwryspGF43CfEU+dZwgtvpGLP+fTDilZmmFpP2PSSJ wcwb4ZaCxsb/UwWOnWn6XKaF29YgJ4oNT8QScNuiian8YWGmX8M8uyZVeu7WaaVvrAH3 QagvH++lUa8YbPAAW5jNvLjvsjwcakQatqfuyOvczQ+/tXyLSGJRqUoo1y4oWkL3VE6C Vc7A== X-Forwarded-Encrypted: i=1; AFNElJ91pe+1YPEMpxPDXtiBX4nngm3JgMhpKeo/GqtdvUqdaeF3Gt+RTYiO6ueh38Ur5WTmMqwEi9PJZRfs0Os=@vger.kernel.org X-Gm-Message-State: AOJu0Yw4kBKLgoAbsQLaVUtVedVdOYLSx0Z9eCMW2lu1qZXJGU8EZu/G Lq2T6Scf2QfFF/xuCj6baq5V+r1uIM3ks3gfiQtlJZDXBGj75z+8tYOE X-Gm-Gg: Acq92OGHa9mfgg0zQct7YUvmXdYYuFIxGUwco/GH5rr82uHgzB+j122Qilkg00iDF77 1NV2wjb+VaNqDWpfCeUCS55m+nphFz/3MbX+6BueMZbJVWMSrcb+0/7XE+kZyylwC+9xlRlAKj+ XVHcBbFp0f51qREIdbG+zsLpMsF5sktjqMXUIRK4PZ3LWdWPN62QA/JWk8OEGQEi3zJKhNQZVG9 T7PzeAIt7wEILkO8SZtkplQuLKa/wLfouTLq0tADVGvJ9LoRoz17ZNWg7SJ8OA/sV1rqz3hVWSI gDRol86+M2EwPfeRy/nD3znox5i5OyhwjW0G6Kgickf4S1rPHIuYO54yLfTPjpNyFHb2CqncLeO Rla0p1RkesezX8oPNGV2AF7GmrElJpVJ5o73eYNKAVS/X5cE9YkPDtZCigneodpJZ7LEFflnpMc /twhKrBtGBhI4EfEg9slrLSVrVIFHe7y/w74kqIw== X-Received: by 2002:a17:903:187:b0:2b2:be01:5532 with SMTP id d9443c01a7336-2ba799d4662mr128880265ad.35.1778221788937; Thu, 07 May 2026 23:29:48 -0700 (PDT) Received: from intel.company.local ([210.184.73.204]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1d3fee3sm8983975ad.18.2026.05.07.23.29.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 23:29:48 -0700 (PDT) From: Chen Wandun X-Google-Original-From: Chen Wandun To: longman@redhat.com, chenridong@huaweicloud.com, tj@kernel.org, hannes@cmpxchg.org, mkoutny@suse.com Cc: cgroups@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] cgroup/cpuset: skip hardwall ancestor scan in v2 mode in cpuset_current_node_allowed() Date: Fri, 8 May 2026 14:29:39 +0800 Message-ID: <20260508062940.4094652-1-chenwandun@lixiang.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-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In cgroup v2, the non-hardwall fallthrough path in cpuset_current_node_allowed() always ends up allowing the allocation: - CS_MEM_EXCLUSIVE and CS_MEM_HARDWALL are v1-only flags, toggled only via the cpuset.mem_exclusive / cpuset.mem_hardwall files which do not exist in v2. Neither flag is ever set on any cpuset (including top_cpuset) in pure v2 mode. - As a result, nearest_hardwall_ancestor() always walks up to top_cpuset. - top_cpuset.mems_allowed is set to node_possible_map in v2 mode, so node_isset() on it is always true for any valid node. The whole scan therefore boils down to taking callback_lock, walking to the root and returning true. Short-circuit it by returning true directly when is_in_v2_mode() holds, sparing the callback_lock acquisition and the pointless walk. Place the short-circuit after the __GFP_HARDWALL check so that the generic hardwall enforcement for GFP_USER allocations remains in effect: __GFP_HARDWALL requests still return false when the node is outside mems_allowed, preserving cpuset.mems constraints for __alloc_pages() callers (which prepare_alloc_pages() marks __GFP_HARDWALL unconditionally when cpusets are enabled). Suggested-by: Michal Koutný Signed-off-by: Chen Wandun --- kernel/cgroup/cpuset.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c index a48901a0416a..b539f5b4d21e 100644 --- a/kernel/cgroup/cpuset.c +++ b/kernel/cgroup/cpuset.c @@ -4231,6 +4231,9 @@ bool cpuset_current_node_allowed(int node, gfp_t gfp_mask) if (gfp_mask & __GFP_HARDWALL) /* If hardwall request, stop here */ return false; + if (is_in_v2_mode()) + return true; + /* Not hardwall and node outside mems_allowed: scan up cpusets */ spin_lock_irqsave(&callback_lock, flags); -- 2.43.0