From nobody Tue Mar 3 05:25:17 2026 Received: from mail-qv1-f45.google.com (mail-qv1-f45.google.com [209.85.219.45]) (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 5105D317164 for ; Mon, 2 Mar 2026 19:53:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772481204; cv=none; b=dTeQfhwkYYZv/OyR+8qZRf2o/iX17F4ZB8ofxD1wNLOiJFnchKxV3FlMnXlzsD9xM+UL33iLqboxVBUstXya7wvF8KJubzVc7QWeddOIoSCIu6sU32RNlUUV6yL0uBkKpjcT74J4OzqQvBsfngX4SMUsP7hBrw6OSFELnSo8xPI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772481204; c=relaxed/simple; bh=cC80qRo7JR4gIfZy7Oohm8yvU+7yInxXX1FTNUyJ+DE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=N2rWLBHRxBMGy41PI2UitOK6LpaHBXBF/hLuYmyOKCCqALhQjH6iTdsNXkUn8f83NmeUC0uGI4afD+lNZFAN2wJZPTUPd7cQw9hl+VmQyjSVdYOzlp1KAlM5vEGUC7a/V7YXadsP9LuUahgE5IQfzLtGtfZaftWvemGE8T0canY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=cmpxchg.org; spf=pass smtp.mailfrom=cmpxchg.org; dkim=pass (2048-bit key) header.d=cmpxchg.org header.i=@cmpxchg.org header.b=bjSmNgXH; arc=none smtp.client-ip=209.85.219.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=cmpxchg.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=cmpxchg.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cmpxchg.org header.i=@cmpxchg.org header.b="bjSmNgXH" Received: by mail-qv1-f45.google.com with SMTP id 6a1803df08f44-899fa9610bbso21623616d6.0 for ; Mon, 02 Mar 2026 11:53:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg.org; s=google; t=1772481198; x=1773085998; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IA4kjBdpYkYKS/nfolmQRGvXpsjWiFeExJHfqapx5Xg=; b=bjSmNgXHF9jdG7y1MwjfLEMVc2T2l2ANlNOIVyDFNqI4XEeZcNgHrbrI5y6E82otJR d93wfhQvLJMzNyHr+/tPeHyrAvlRo7QGg+pBZHSehdk6WMUUlm+kJfUpom3RDsYeJjrM eWwctbX+Xg6UsC1BruAEUHgPfQPzqC9BRSZzV08OeD/wa0LRucJ+52I40qHUc3FLtzSC bjslffLMATeayzms2TY4ZVTJzhANUNRakjBxL91puuH7KXSiP/n8lBu+gmUhraUrImG6 u57WZN8ymqCN+RkEK1wYdsXvlNUtZPajURjm5iaMSmttd6Ebgkx8sTDOOG/+4KChQvGW iDBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772481198; x=1773085998; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=IA4kjBdpYkYKS/nfolmQRGvXpsjWiFeExJHfqapx5Xg=; b=nGeOzjyWu3C1SnFfhPmymkKcPiOusQ/JSflJg1pnnYmM+LXGH8oKRpB9wYsrbwQ3DM S2eFkYFPLc9Zo8/H3wFAAnZVTM9r7SK6VZVcfk3iEkyqh+wH/bLgsn0R03373/G06wAa HvvM4JJTu1oMPCS6IuqQppIk7NshoA6Mu+64QejRsaCnwaaVdXzUc4t1QazOZrKCiXbM jfAHuiq7yqvARfQLWyFumK1XD2J9/XLSbcvJyZ//bHmGCTNOEWJ2Wc+FrKRs7JJ3D0AS YEJ3wSyCY0+2/YI+J2LqCfZT+tJWQuNjkgWlo9kLvqSr/O2F5TtOChb0dWkuWUt/6pvS ojsg== X-Forwarded-Encrypted: i=1; AJvYcCWXSzAaG6U06Yg1JwNjz4tj2StwFpbPFuYFQ2h3BnKQjoLWAgGkU28Cl5ErgPp6thBzMiJtv4cbM0a3dJk=@vger.kernel.org X-Gm-Message-State: AOJu0YyuBF1cc7PAyuS1nd/1AtFB1PQ5SJ0kanU9UgjHjDNrwjs27/4w iU8/yHmyLKQ8SGtEtX8h3p6uYEUGPYRoq18R52ud7irqjmJH6sisKDeUzRDH5dJwwg0= X-Gm-Gg: ATEYQzxmDFyuhvOpa2saTGQLgtdUPmV0j1ZTVwapqytOYIvD2sUvByuZdAgMLCROVYN 13ck+mRenJVk//7OdwmGSlz85LSVFBTPk9OU/dG0DG6Q/gaXewoS6nCea9DnqT4nQw2/nG6xqJ4 nP6DvutTokUvgsFmJKKtSAGvwloPFkA0XV4LjlWw5Mqc+hhRookg5kcY7t8WOMGMegZc69BNrRf UxWzG2slICn3KLdy6ouD0PZffIyLW4rziHrJp4Ky2DjUOjgma6yCIIngJJ9NN8UBtlb0uW3zB+c gTMD/7+YS4yhF33rHmAUF5A3GT1FXg6ZRIdTRnT60P5vEVxYkT29CZUwEuxXlUwanb2c0akm1MA eRV1FLO3lr7lLggjlMiIyysrcmE/8fvLg2DEPGZFV+kaoYnqM/jYPoijmrs7iJ9aR4E9WNGbZYE p+5UC2rgCcbntXQOMme6IBB5IFANJ/V+Hp X-Received: by 2002:ad4:5ded:0:b0:89a:4f:1172 with SMTP id 6a1803df08f44-89a004f1317mr42550936d6.50.1772481198200; Mon, 02 Mar 2026 11:53:18 -0800 (PST) Received: from localhost ([2603:7000:c00:3a00:365a:60ff:fe62:ff29]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-899f4fb208dsm44178686d6.28.2026.03.02.11.53.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Mar 2026 11:53:17 -0800 (PST) From: Johannes Weiner To: Andrew Morton Cc: Hao Li , Michal Hocko , Roman Gushchin , Shakeel Butt , Vlastimil Babka , Harry Yoo , linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/5] mm: memcontrol: use __account_obj_stock() in the !locked path Date: Mon, 2 Mar 2026 14:50:17 -0500 Message-ID: <20260302195305.620713-5-hannes@cmpxchg.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260302195305.620713-1-hannes@cmpxchg.org> References: <20260302195305.620713-1-hannes@cmpxchg.org> 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" Make __account_obj_stock() usable for the case where the local trylock failed. Then switch refill_obj_stock() over to it. This consolidates the mod_objcg_mlstate() call into one place and will make the next patch easier to follow. Signed-off-by: Johannes Weiner Acked-by: Shakeel Butt --- mm/memcontrol.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 32c09b4d520f..4f12b75743d4 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -3227,6 +3227,9 @@ static void __account_obj_stock(struct obj_cgroup *ob= jcg, { int *bytes; =20 + if (!stock) + goto direct; + /* * Save vmstat data in stock and skip vmstat array update unless * accumulating over a page of vmstat data or when pgdat changes. @@ -3266,6 +3269,7 @@ static void __account_obj_stock(struct obj_cgroup *ob= jcg, nr =3D 0; } } +direct: if (nr) mod_objcg_mlstate(objcg, pgdat, idx, nr); } @@ -3382,7 +3386,7 @@ static void refill_obj_stock(struct obj_cgroup *objcg= , unsigned int nr_bytes, stock =3D trylock_stock(); if (!stock) { if (pgdat) - mod_objcg_mlstate(objcg, pgdat, idx, nr_acct); + __account_obj_stock(objcg, NULL, nr_acct, pgdat, idx); nr_pages =3D nr_bytes >> PAGE_SHIFT; nr_bytes =3D nr_bytes & (PAGE_SIZE - 1); atomic_add(nr_bytes, &objcg->nr_charged_bytes); --=20 2.53.0