From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) (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 E4EC543745E for ; Mon, 10 Aug 2026 19:09:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.171 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786388969; cv=none; b=qlPSbScOmwDnOjFGFNTuJK5X05h+QEs9/VM1ERo+aUtqU/K9ifqIYs6pCr3vGJBqRnDCgqStH1p+KgasJe7MDPoKNST39gXdV2ZUP3ywxmUZ1BUMiFpqS9V0CZ4KtwvwsAqck9ZgjPz+EJQwof5HFVNE39D71+xEw7hLtq2MUDA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786388969; c=relaxed/simple; bh=3/Gmcwwe0rohIADH+j1TmPfA4KMjsHDLTtqre4mK218=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=aJ7lD/tped+SUvxMiFpXwiFYF44zzvIGoBPY5jt0gA8cQcgT52/h4F89MwGRW2A0D1LNCsXvngi+I5YvGU3eKxuQtEnV159HgKlVlzgikhz8NcxND7RbeWWooVTiKA7gU79jwqFOSAUhwZ4hSvD5ndBC1t4ivTRMBv7AZO0TNv4= 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=JrsJp9F9; arc=none smtp.client-ip=209.85.160.171 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="JrsJp9F9" Received: by mail-qt1-f171.google.com with SMTP id d75a77b69052e-51c04bf4711so22016121cf.2 for ; Mon, 10 Aug 2026 12:09:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg.org; s=google; t=1786388965; x=1786993765; darn=vger.kernel.org; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to:content-type; bh=85QqMALH7INEGXTtVF1giRIfVxPtGVRsSvUojxcJqt0=; b=JrsJp9F9dG+0mjO1pS8LzqHMGiK1+iKnFg38PX3ioqPqUb4BtKhbBxdOs4oDwEbtWI MoJtF2QLZ+kgTOaPjeF8Ilu7HtAXuYznYy/HP3UrmM/w+BODUb148btjYaw+RZGWTL1R CtYsddNTeuw5TAM97sg4ljfxbeDfrnx/Az4qqpgkrrWeK26U9b9PNZT6jiSpfO8FiLbP wmZn+HUmW4O4WZmMlT0L3KDY8pe/ve22CJKBQkUaTtlH0nVJFeNgHTLwT4exrjktxqa2 lhs9cRYsj1vJ4KLpNgkKJsXEv2lCxJWCY5Hh31xJDceISBI/QiUXBxb6SEkGyzuzQqz/ 0Zjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786388965; x=1786993765; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=85QqMALH7INEGXTtVF1giRIfVxPtGVRsSvUojxcJqt0=; b=O82VbhK0VeuqRdzghIr2Z9fIMnGInkRksQeKi+ylC6E05eJoQRw2hyf/ZVwsUP1AF3 lW8JlntqMSyUYb7dqkKENN3LdJXScfTjUTB0qDa6bS+DNBQlQotuju+F1T3tZOPQ78Uc oXk7g/eEJaa0pS5bgoWnL3J2InqhY9psrywdEngguD+XpXIZSqcR09fRASvKFBArwAKA qne5utynYWWEvDxHNMKhL88aZRa6OFP6LSG9FZMLJf54RVmHHsltLLVdZIYRURBbLtII T6FGG0pebanS83J/iQn7crInziTYwIuNhvsJ7smKrjWcx/RKDMcZLnC84xupto8gSgBb N/JA== X-Forwarded-Encrypted: i=1; AHgh+RrzR2OwW5nFf1CpK80Wi9e6zzwGct4mdw7OsHSLpeFRF1FfODh4sjoJM1GF9vgWILyXEcNO5cLD7YZnKPo=@vger.kernel.org X-Gm-Message-State: AOJu0YwiqTaTtvbBE1PWdIMtwOQKhtMCUfXFXQ+2fBe4wrHizvRgHDvg UGU91TnqMWWKhnScLtCkTG09dB4kR/JM1T78/ZNmknuWlgWbASlPJuXtaQh4jXiBRRs= X-Gm-Gg: AR+sD118BeHxVJibpsgoZ2rCGlH3nFrr1q6o1xR2XWQYyGO3Y83RY2j+6wGYxwPCnWf g2yTzQSxYX41xcZXWOT1X6KlwWorW+CVnZSjhT8oXaVs4+QjFpk750qsz+yQ/WuX4kGmvgSW080 oGadpdDgBaQdg3veTsMBvyWQJt/2xhQ7yuhjrLMENNNan4XQPksnw7hEZqqrXLuY7CgGguwJA9H jAL3kdN0TorAKifuODsNckcyKrQZEoexYvlatMLeLMKSvwlPDm1ZEaXzKbFv3eMb5KI/xOUBvKF W++DP5yRrsKGKwc2GuKn5Ijp4otFOqVjDD6wvbCSJAi08gtV34CNsT27NSU3WoR/hdKg1S4g20v 8IXRDl144s5Hv16q5cNzjD2SbYZreXagrCUOMsW6vov7771vgJtDQpfR59HAIpLE9g2JLLz5Noo oFcYIaMlqOUvviY3XZs/a2dl7iHPCSwuJRZ9FtUEoojh1Z0GVlb/Tf9yGv8yl0dWZEiFqZJGyse /87a/4fOQ== X-Received: by 2002:a05:622a:4811:b0:52d:3352:f7ac with SMTP id d75a77b69052e-52d4bc69744mr47975431cf.28.1786388965496; Mon, 10 Aug 2026 12:09:25 -0700 (PDT) Received: from localhost ([2603:7001:f100:500:365a:60ff:fe62:ff29]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-52d16337589sm78043431cf.6.2026.08.10.12.09.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 12:09:24 -0700 (PDT) Date: Mon, 10 Aug 2026 15:09:24 -0400 From: Johannes Weiner To: Guopeng Zhang Cc: shakeel.butt@linux.dev, akpm@linux-foundation.org, mhocko@kernel.org, roman.gushchin@linux.dev, muchun.song@linux.dev, cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Guopeng Zhang Subject: Re: [PATCH] mm: memcg-v1: fix memory.memsw.failcnt accounting Message-ID: References: <20260810074247.52747-1-guopeng.zhang@linux.dev> 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=us-ascii Content-Disposition: inline In-Reply-To: <20260810074247.52747-1-guopeng.zhang@linux.dev> On Mon, Aug 10, 2026 at 03:42:47PM +0800, Guopeng Zhang wrote: > From: Guopeng Zhang > > Commit 0e2759afcaf9 ("page_counter: track failcnt only for legacy > cgroups") made failcnt accounting conditional on track_failcnt. It > enabled the flag for memcg->memory, but not for memcg->memsw. > > Consequently, memory.memsw.failcnt remains zero when the memory+swap > limit is hit. Enable failcnt accounting for the v1 memsw counter. > > Reproducer: > > CG=/sys/fs/cgroup/memory/memsw-test > LIMIT=33554432 > mkdir "$CG" > echo "$LIMIT" > "$CG/memory.limit_in_bytes" > echo "$LIMIT" > "$CG/memory.memsw.limit_in_bytes" > > Start a child process in the cgroup and make it allocate and touch 96 MiB > of memory, causing a memcg OOM. > > cat "$CG/memory.memsw.failcnt" > > Without the patch, memory.memsw.failcnt is 0. With the patch, > memory.memsw.failcnt is greater than 0. > > Fixes: 0e2759afcaf9 ("page_counter: track failcnt only for legacy cgroups") > Signed-off-by: Guopeng Zhang Acked-by: Johannes Weiner Sashiko raises a valid point. kmem.tcp.limit_in_bytes is deprecated and will warn if set, but the functionality is still there for the time being. No need to leave it broken until it's removed. Could you add memcg->tcpmem.track_failcnt = !memcg_on_dfl; as well? > --- > mm/memcontrol.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 6939a4fbb991..4ffe5b3733d9 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -4235,6 +4235,7 @@ mem_cgroup_css_alloc(struct cgroup_subsys_state *parent_css) > #ifdef CONFIG_MEMCG_V1 > WRITE_ONCE(memcg->swappiness, mem_cgroup_swappiness(parent)); > memcg->memory.track_failcnt = !memcg_on_dfl; > + memcg->memsw.track_failcnt = !memcg_on_dfl; > WRITE_ONCE(memcg->oom_kill_disable, READ_ONCE(parent->oom_kill_disable)); > page_counter_init(&memcg->kmem, &parent->kmem, false); > page_counter_init(&memcg->tcpmem, &parent->tcpmem, false);