From patchwork Sat Mar 15 17:49:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shakeel Butt X-Patchwork-Id: 14018170 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5BAF5C28B30 for ; Sat, 15 Mar 2025 17:50:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1DA42280009; Sat, 15 Mar 2025 13:50:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 113AC280001; Sat, 15 Mar 2025 13:50:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E330F280009; Sat, 15 Mar 2025 13:50:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C8801280001 for ; Sat, 15 Mar 2025 13:50:08 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 4BB37121E61 for ; Sat, 15 Mar 2025 17:50:10 +0000 (UTC) X-FDA: 83224524180.07.9E694AD Received: from out-183.mta0.migadu.com (out-183.mta0.migadu.com [91.218.175.183]) by imf06.hostedemail.com (Postfix) with ESMTP id A675A180003 for ; Sat, 15 Mar 2025 17:50:08 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b="YP6Oq/yv"; spf=pass (imf06.hostedemail.com: domain of shakeel.butt@linux.dev designates 91.218.175.183 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742061008; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=sgD6RlJd90bDD1Zbd+KYFHxVJHSovRtS79ksTm6yv/M=; b=HPOmyWuUMUluNCp/Ud9GP8gNaK171JgaRi2GLo85fyLvRqNOTve+8M5CMMKmIMc+1WBGuQ zjfmxso0KX+iMMJ6HcpotgzAYjo1QSsOeXoM9xHeCoNRbPsNhSkB2+QrWNkdlX5TewLKca FnPOXqRtZ36Xur6KlU7G38DudSNLg+E= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b="YP6Oq/yv"; spf=pass (imf06.hostedemail.com: domain of shakeel.butt@linux.dev designates 91.218.175.183 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742061008; a=rsa-sha256; cv=none; b=gxW7SYzzWwjq04T+ytxqQQUL0vJhqITsGOho8UMoZN7EUbFekehvydXapX4PJP7+O9Kt2Z fsgztHmaT0Dpj7B8kf/fXzv0y3bkJKHd14JocY/KMSixTN+Ml9wePPdAf7KvNn6oth8rDX 0zKs1kITrXGGtAyzJk4LhzLpNnc59Sc= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1742061007; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=sgD6RlJd90bDD1Zbd+KYFHxVJHSovRtS79ksTm6yv/M=; b=YP6Oq/yvNHnoJl3NkSZbo35do6cddRVpTfrN2VvwcssF29KZdMDWRXmLsbJ2Qk2XdDfhR7 d+GAaMirhcUzjsJW5CNYi9dJnKGqdyXAP23/6ynvJ0i7VDeFib1ziRJApLhc7gYJQcJN+k orO43WdiKhpvPg1EWV48jRPfM/a8IVk= From: Shakeel Butt To: Andrew Morton Cc: Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , Vlastimil Babka , Sebastian Andrzej Siewior , linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, Meta kernel team Subject: [PATCH 7/9] memcg: use __mod_memcg_state in drain_obj_stock Date: Sat, 15 Mar 2025 10:49:28 -0700 Message-ID: <20250315174930.1769599-8-shakeel.butt@linux.dev> In-Reply-To: <20250315174930.1769599-1-shakeel.butt@linux.dev> References: <20250315174930.1769599-1-shakeel.butt@linux.dev> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Rspam-User: X-Rspamd-Queue-Id: A675A180003 X-Rspamd-Server: rspam03 X-Stat-Signature: szamfyefp8objc69ngwwoirtx18cqcmt X-HE-Tag: 1742061008-14453 X-HE-Meta: U2FsdGVkX1/cLDc36ymAu8WHYi5RQMYGViryBUcrjLPpNbn4UydYpkFafi2vlOwjqvOS3u6aO0XirXlkJns9Z+bhuN2XbUEduEWaco3ftQXVAhiORind0ygj60HH6OMY7E7OlUUX4RyWlNMmh+2T6n26gDEJ0o1i0y/TotHtNB3nibb8BOEyFzoGGgz5puiBXDK+JFLF0O9CWU1TalQew1sQ4mfsTNjQrxJL19qq8D/CcJsZn5flr1/c2YcEbs9Ahoh65QmUoBDtNK8DyU5XhTml6Xlt6DMUT3t3OFX9TetsUBBsp+4I2ZKgeG+JZ5L0pUSQgpWw4ZZwNU9fAkbcieAirfgZr/Xq2160JUMoobxLuhMITJ6UMpXpeLYd36gpCVzm9R2GYREVn/d6VHf6pqN6j2eIc/kEJ5C2aqHN0VKS81hdkF2lIOzlbvaNRJt/8Yl7xdq4i9XcbMTsNS9AN8HDMqIXfg7iFsWe/+LPapGAAt4bdixx9gGf39dRxF102MoCpYJ/R1Ps32zsJQOr49daOdnIQiCShWEPoQA1pSfIGVKiJ3nsV7be851AfObQxLfYFj9qK7nCgXhI9fq61sKIS37llzT9p/IiE3eqxNlHG0/4RdYs4tCjrwbVryV2IWSGlpXkTTJtE7TaN+w9OUHN5AwiLNWxIRTGokWGBNJ5UXsQ/ue4HefKox8oUJhnEso5cznBHzp6dUGtDvZcbhfzXWklFzoN95Wqr9mgLx1XEALaA5J5FJbSX/GuywzVZuvuB95a1RvqWdvzIschQhdV6fao2sMUb2PD+8cKJM1egUH7O3LGs1bInQXU3oFb74Q9dShIuMW5xJvTjDdl59iBVtBvc/EqtkUt6LAhKfEYG5ZXS74+dbghvRF2I0Prp0UH3bW7qoo1HqbckaAE6fb/AK6yT4kmwUvtYQmC2OGGXFQLcO1kVk6IQz7FIHtIUOrxedPDEIg= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: For non-PREEMPT_RT kernels, drain_obj_stock() is always called with irq disabled, so we can use __mod_memcg_state() instead of mod_memcg_state(). For PREEMPT_RT, we need to add memcg_stats_[un]lock in __mod_memcg_state(). Signed-off-by: Shakeel Butt Reviewed-by: Sebastian Andrzej Siewior --- mm/memcontrol.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 3c4de384b5a0..dfe9c2eb7816 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -707,10 +707,12 @@ void __mod_memcg_state(struct mem_cgroup *memcg, enum memcg_stat_item idx, if (WARN_ONCE(BAD_STAT_IDX(i), "%s: missing stat item %d\n", __func__, idx)) return; + memcg_stats_lock(); __this_cpu_add(memcg->vmstats_percpu->state[i], val); val = memcg_state_val_in_pages(idx, val); memcg_rstat_updated(memcg, val); trace_mod_memcg_state(memcg, idx, val); + memcg_stats_unlock(); } #ifdef CONFIG_MEMCG_V1 @@ -2845,7 +2847,7 @@ static void drain_obj_stock(struct memcg_stock_pcp *stock) memcg = get_mem_cgroup_from_objcg(old); - mod_memcg_state(memcg, MEMCG_KMEM, -nr_pages); + __mod_memcg_state(memcg, MEMCG_KMEM, -nr_pages); memcg1_account_kmem(memcg, -nr_pages); if (!mem_cgroup_is_root(memcg)) memcg_uncharge(memcg, nr_pages);