From mboxrd@z Thu Jan 1 00:00:00 1970 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 E422EC3DA70 for ; Mon, 22 Jul 2024 23:56:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2BA3B6B007B; Mon, 22 Jul 2024 19:56:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 26A256B0083; Mon, 22 Jul 2024 19:56:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 15A086B0085; Mon, 22 Jul 2024 19:56:04 -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 ED5666B007B for ; Mon, 22 Jul 2024 19:56:03 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 8F95A161AC1 for ; Mon, 22 Jul 2024 23:56:03 +0000 (UTC) X-FDA: 82369049406.03.02E2C09 Received: from m47-110.mailgun.net (m47-110.mailgun.net [69.72.47.110]) by imf16.hostedemail.com (Postfix) with ESMTP id CC53C180004 for ; Mon, 22 Jul 2024 23:56:01 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=relay.vimeo.com header.s=mailo header.b=tb5lLGei; spf=pass (imf16.hostedemail.com: domain of "bounce+ea57f2.9d2a1c-linux-mm=kvack.org@relay.vimeo.com" designates 69.72.47.110 as permitted sender) smtp.mailfrom="bounce+ea57f2.9d2a1c-linux-mm=kvack.org@relay.vimeo.com"; dmarc=pass (policy=reject) header.from=vimeo.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721692515; h=from:from:sender: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:references:dkim-signature; bh=cfXqvTLoWpZvf03R69ICFZ0UrMEoFs1/qsNUNtZDS1o=; b=U2rXN6PBJEvXknOZnkjYtT6XjNl87iQ6uxIQRZO6Wyd6AWUWW3uTyrM72bM3Z461uQZSgG 3v+J6FVEsnyeVCmmY5PZPIXJM9FqGazfrTZK/lh21pAhFG6Gjj/VVUNySYoz5bxMYxx0L4 SeR/w22wVC6Q4/3xiZgTa9YHHcdGI3g= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721692515; a=rsa-sha256; cv=none; b=698tEzOddUVU+W24D6jfTl1hApUSCxxrd1U61MO9MjNdTjpxdvTYjzA+FlfWqxyH2cDLLp nJWrYhu9mHSFgOKhCb16Qe6tMJQqdWlZHpDv/lyFuqyKkLg967KH+waeDKCBCRc6xiLK7B rQG7IHJ2TqceJH9TxnnQYzQD/LwPs+M= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=relay.vimeo.com header.s=mailo header.b=tb5lLGei; spf=pass (imf16.hostedemail.com: domain of "bounce+ea57f2.9d2a1c-linux-mm=kvack.org@relay.vimeo.com" designates 69.72.47.110 as permitted sender) smtp.mailfrom="bounce+ea57f2.9d2a1c-linux-mm=kvack.org@relay.vimeo.com"; dmarc=pass (policy=reject) header.from=vimeo.com DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=relay.vimeo.com; q=dns/txt; s=mailo; t=1721692560; x=1721699760; h=Content-Transfer-Encoding: MIME-Version: Message-Id: Date: Subject: Subject: Cc: To: To: From: From: Sender: Sender; bh=cfXqvTLoWpZvf03R69ICFZ0UrMEoFs1/qsNUNtZDS1o=; b=tb5lLGeiLNJZdwGajY/q6+HJ/mpFKhqoK3u/d8JZ3rFEfiwK9zmcjPuuO1RGHEiAdiiv8t40CuWACLjVyn532d6eGp4cTLdtqh9iyMGjPCMpzPz8jvRW1JGdrNWhTCYlag5WUD1xl6lORjIBlPstkej8wegOh7XvUnKJVgr4P+k= X-Mailgun-Sending-Ip: 69.72.47.110 X-Mailgun-Sid: WyI5NTRmYiIsImxpbnV4LW1tQGt2YWNrLm9yZyIsIjlkMmExYyJd Received: from smtp.vimeo.com (215.71.185.35.bc.googleusercontent.com [35.185.71.215]) by 2e1dd017df26 with SMTP id 669ef19042584033c1a590aa (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Mon, 22 Jul 2024 23:56:00 GMT Received: from nutau (gke-sre-us-east1-main-4c35368b-g75q.c.vimeo-core.internal [10.56.27.204]) by smtp.vimeo.com (Postfix) with ESMTP id 9DB5865C5B; Mon, 22 Jul 2024 23:55:59 +0000 (UTC) Received: by nutau (Postfix, from userid 1001) id 34D7BB4117E; Mon, 22 Jul 2024 19:55:59 -0400 (EDT) From: David Finkel To: Muchun Song , Tejun Heo , Roman Gushchin , Andrew Morton Cc: core-services@vimeo.com, Jonathan Corbet , Michal Hocko , Shakeel Butt , Shuah Khan , Johannes Weiner , Zefan Li , cgroups@vger.kernel.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: mm, memcg: cg2 memory{.swap,}.peak write handlers Date: Mon, 22 Jul 2024 19:55:52 -0400 Message-Id: <20240722235554.2911971-1-davidf@vimeo.com> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: n3p4fioq91ijj4md4sd6qefbcyqtb39a X-Rspamd-Queue-Id: CC53C180004 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1721692561-676333 X-HE-Meta: U2FsdGVkX19XFBEwPUo6H+8NvMlXRQqIYMAVrG9Qn6VQBQ2zvsDKAvdrEHX9zKGaWpxlIIRuR8DspKpZ4hFYVZQR03K1rOnnWVmPbAux3dYlAh7bA35RpeVizukENYaOm80zCzoleCWZQ9STQHTxOSyLfY5zlvuU8L2PwJHtzB8EP0aeybGQtAxFGmGT8nff+TsxVQ9GAi9zzd1QYvoiMFVkpj6SSSKTkafHoQ2ObrHNC8Y2PWssclkrZKvrmCNYeQ7/BCohCBo7xM/AX6gpK8kWKLbxR7mTPC395o93np0RkLzucyG8+P3zDHbpXHBnol1soiKm1Ppl71rAho5QqrCp+NgeAc2E4R0fJViZY6WPllXk9OShI8Jo/iPurr35KItK4C7DvBsC/Qdo6Qgc6JKifZOUhPTJFgxWZZ2MCELhiuZSRHdQoEXYPD/rHzo37ZnRnCljMf/j2nbSW8hlUZU2v7r0y0ypVo4sEK4uv9ajL5sln0iKq7qB+s1fFb/oPrIlogSCfm+gap/Xy6YRHbHo6XR7e98PxIg7gnEka82laLcAt73sLBQbINetmNBjCmEPu7cLCfWywK9ZumGh/VJdeF6U4bLGtRQpdeEWcVkOAlWA0BrMeynFhdGMzZGjqh6F8PY76zbIQ6vpTrQcLuhPY52w/GunFiYwLWkgL1ZeW4Yuc5gE2so3MMI93PTefBlpe1qjHQQYIJjMtiUSB67Um6hA4IulneMiYIWK/g9kh/LBRq31Cgq09SBLdO4Zgbwggjk+tBN3IZdjtztdRjFDFFXckMCNI/18MBkE/6lzDo5DSCyWcVsfzJoQY1i++dar7jftiERPYdGoGJGi3rTFlqyjexayLnREJVc1lbbtDLI/+M+U57wNdlq8C3OkGUO0ANKoTxRl9Yee37pZH9xSwbk4cgVnA0MNtMhKYTxMaTXiE++VXLbM11znhthg7PY9Ins8dtJWUQuWPG5 kfpuj4F0 /c0LRzQ/a/e7XqASQxtWl6IL4jKuh3JSRg4AC69uA6EJ3dp6k00xPz2nyWsGyPbnxlZKvAmOab5M/Hy86s64/WL1TD8LP2UrFEQdhp4gAju/u1SkVWbZSC33t3lL8ps4nhCMpESekI8YlDQSVWqQR0YDiOe73Z5V+5b8JTD37iDb/NDAMxQpgnWpbbJjEWN+hGJx526smhAKLobEIlmPQbXxEnIf/qeBVmH59H/eNg/4ScO1xZuHsnHk5YjN7DvgK2TYfh2sxB9n8H51HihZLd4/qPe5w9uzcyapjEGynOeURE1+RKUa+X7LFQrPEDEEI/UcJDvbB+/XiUc6SwYK+08pwPXonjriYCRoECWGHNWhDEslDNJjaelouZ70iizFrYjrGVT5XBMnFBF1e5oinL/1LOAE69mRIBsK+R0OB9dB/nLlILMpfRExYDLeTxo197xgk5MdHlI4P90MiJLSE3YCWYM24qNEcBVRIFAiBEUGFjg6bumwXJ2dfYnDGQ/4oB7i55yZnMFITUAYuKpDDu7n/VWm/W+laNkqL 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: This is an updated patchset following some excellent comments from Roman and Longman. [1] As suggested, I've broken this into two commits: 1) with the implementation changes 2) extending the tests tests I haven't been able to induce anything problematic, but I'm a bit unclear as to whether there's reference counting on cgroups such that we don't need to handle the case where the cgroup is freed before the one of the peak files is closed. Documentation/admin-guide/cgroup-v2.rst | 26 ++- include/linux/cgroup.h | 8 + include/linux/memcontrol.h | 5 + include/linux/page_counter.h | 11 +- kernel/cgroup/cgroup-internal.h | 2 + kernel/cgroup/cgroup.c | 7 + mm/memcontrol.c | 129 +++++++++++++-- mm/page_counter.c | 36 ++++- tools/testing/selftests/cgroup/cgroup_util.c | 22 +++ tools/testing/selftests/cgroup/cgroup_util.h | 2 + tools/testing/selftests/cgroup/test_memcontrol.c | 227 ++++++++++++++++++++++++++- 11 files changed, 444 insertions(+), 31 deletions(-) [1]: https://lore.kernel.org/cgroups/20240722151713.2724855-1-davidf@vimeo.com/T/ Thank you for your efforts and reviews, David Finkel Senior Principal Software Engineer Vimeo Inc.