From patchwork Thu Nov 23 07:19:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Rokosov X-Patchwork-Id: 13465874 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 CEB20C61D85 for ; Thu, 23 Nov 2023 07:20:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A82426B0656; Thu, 23 Nov 2023 02:20:05 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 999626B065A; Thu, 23 Nov 2023 02:20:05 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6D3BB6B0655; Thu, 23 Nov 2023 02:20:05 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 540256B0654 for ; Thu, 23 Nov 2023 02:20:05 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 22D18140E86 for ; Thu, 23 Nov 2023 07:20:05 +0000 (UTC) X-FDA: 81488369970.18.1373B08 Received: from mx1.sberdevices.ru (mx1.sberdevices.ru [37.18.73.165]) by imf14.hostedemail.com (Postfix) with ESMTP id 8154E10000C for ; Thu, 23 Nov 2023 07:20:00 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=salutedevices.com header.s=mail header.b=BctS3ayv; dmarc=pass (policy=quarantine) header.from=salutedevices.com; spf=pass (imf14.hostedemail.com: domain of ddrokosov@salutedevices.com designates 37.18.73.165 as permitted sender) smtp.mailfrom=ddrokosov@salutedevices.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700724001; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=eohC8GA+wehGLdFcqpgwGNVkXeQrwyMu8sDPWJjxuws=; b=MWxeer3cXMYCM/k7dWEUJSXHki0uNw2aWhzknJw/LXbOojWIn5bwTx3IlE8zHCwu7Yy4/B VeyjHp74Kpwdz/ULcayotlMZxPUYJUUfhCg0MArdNa+yVt2yM9Y/Sq5zfp1zIH0WOXK0Zm LdYhl3HNYp6iYTFiwmXHdbo6NdzxiMw= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=salutedevices.com header.s=mail header.b=BctS3ayv; dmarc=pass (policy=quarantine) header.from=salutedevices.com; spf=pass (imf14.hostedemail.com: domain of ddrokosov@salutedevices.com designates 37.18.73.165 as permitted sender) smtp.mailfrom=ddrokosov@salutedevices.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700724001; a=rsa-sha256; cv=none; b=yNunEZ9/zM6cAo4plh7SQz4+Qyo3C2FUnoPo24NmAoSEOLVQRq0IQSl9RyPchGvc46VP1U hkqbcGq2+d89/IbBPvBSh2xGZA6EY/DhgAIMwR2OeFN2dL2SyXySW3/zh7TcWmTmJ/FbfF okd61Elj4pLgIrBKPyB3zmAD3lOKdvs= Received: from p-infra-ksmg-sc-msk01 (localhost [127.0.0.1]) by mx1.sberdevices.ru (Postfix) with ESMTP id A7B06100068; Thu, 23 Nov 2023 10:19:58 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.sberdevices.ru A7B06100068 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=salutedevices.com; s=mail; t=1700723998; bh=eohC8GA+wehGLdFcqpgwGNVkXeQrwyMu8sDPWJjxuws=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type:From; b=BctS3ayvecYTInoSh1lwgOzm2DdEKF2KMLmskK4h6IC4F2Hxd+q09bxZ6mDF+h+d3 ZWP3VPjnhKUJUrC5u7qQA/UvaFCyunHVf7axluxqnKlkUCAkuC8Xw1rO9Etw4+akQ+ ATdW6/hI5INmGcA+ijok1tsYabF5N6AF3dTu0cDBEPzaNRFF+bX2qeEcRh/+z5pBnq WkTQ8NrLhGV6TRrXUSFCH8MOclE2DsEnw3n783nNKXq9I/0VyTCmTFmUmeyaY85vvq LAuwmsJO+MhtQdn8uFdxIT41FLKR19+DQCzZUxd/EATnc0YtZcstXwI0DVbBRYqKBD NoBWQTUKpVf3w== Received: from p-i-exch-sc-m01.sberdevices.ru (p-i-exch-sc-m01.sberdevices.ru [172.16.192.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.sberdevices.ru (Postfix) with ESMTPS; Thu, 23 Nov 2023 10:19:58 +0300 (MSK) Received: from localhost.localdomain (100.64.160.123) by p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Thu, 23 Nov 2023 10:19:58 +0300 From: Dmitry Rokosov To: , , , , , CC: , , , , , , Dmitry Rokosov Subject: [PATCH v3 1/3] samples: introduce new samples subdir for cgroup Date: Thu, 23 Nov 2023 10:19:43 +0300 Message-ID: <20231123071945.25811-2-ddrokosov@salutedevices.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20231123071945.25811-1-ddrokosov@salutedevices.com> References: <20231123071945.25811-1-ddrokosov@salutedevices.com> MIME-Version: 1.0 X-Originating-IP: [100.64.160.123] X-ClientProxiedBy: p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) To p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) X-KSMG-Rule-ID: 10 X-KSMG-Message-Action: clean X-KSMG-AntiSpam-Lua-Profiles: 181550 [Nov 23 2023] X-KSMG-AntiSpam-Version: 6.0.0.2 X-KSMG-AntiSpam-Envelope-From: ddrokosov@salutedevices.com X-KSMG-AntiSpam-Rate: 0 X-KSMG-AntiSpam-Status: not_detected X-KSMG-AntiSpam-Method: none X-KSMG-AntiSpam-Auth: dkim=none X-KSMG-AntiSpam-Info: LuaCore: 3 0.3.3 e5c6a18a9a9bff0226d530c5b790210c0bd117c8, {Tracking_uf_ne_domains}, {Tracking_from_domain_doesnt_match_to}, d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;127.0.0.199:7.1.2;100.64.160.123:7.1.2;p-i-exch-sc-m01.sberdevices.ru:5.0.1,7.1.1;salutedevices.com:7.1.1;lore.kernel.org:7.1.1, FromAlignment: s, ApMailHostAddress: 100.64.160.123 X-MS-Exchange-Organization-SCL: -1 X-KSMG-AntiSpam-Interceptor-Info: scan successful X-KSMG-AntiPhishing: Clean, bases: 2023/11/23 06:48:00 X-KSMG-LinksScanning: Clean, bases: 2023/11/23 06:48:00 X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.0.1.6960, bases: 2023/11/23 04:50:00 #22507336 X-KSMG-AntiVirus-Status: Clean, skipped X-Rspamd-Queue-Id: 8154E10000C X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: y6fz6znothgetdhb67pj1ewbbqnn9wn6 X-HE-Tag: 1700724000-586137 X-HE-Meta: U2FsdGVkX1+lmmpEO//lnz1AOxyxAPRNCxPR94aDNfeTY1+pYj+aywyP9T3FuFRtUivre37kkDuGyTFigUzg2Q9TB837SeLEaDy5xWyqwkoKy3F0DGMN4rdY+oy5n/kk+5EZHubmmpJSEF9yZqJxjBtGIUyeWPWjPGv8quBbHTGJ45tMs5qD+2zfgqUtMYyZWXlMnH5w3ADpm4d/ZC1hoD7pDf1LfkRL61eNSwGUkjq/4qzR3nLcFJhsE1fdwKbDbcEwdBQ4HYZxKQNMBQmskqBJxN9uqWDX8H352NLBc7VbVFsfMgR6hKlWKMCNTFvn8zl8y5wQOTTf06OyQZz0qXBEnCDBOkQy13/FXdtxFVbCVQNMCo+XYeH1czEZ2ksG13ZbGNN4UVu3wb3ZvKGHzMp0X8kV6N+WJ8Mk2UTLeuZzf9t3L8RQzQB3MYOl+4PUgodxqRk5lBQ9D8eEsg7YaiQseRQF/RP2osW9G5JG/gKncVPT4n8WxEay1ZsTEcffT4m1Im18FQVzvILxoUEuiSsfddqdCXL87Rc3gm+QTpou2I1VgahFVxd6RmFvwXXS+hYPVS0mK0JdAALU+sBL5isq+6rZdWDDZGJeEbP7CVLFMVL4pYQY6xVLZ7OtU1oMhv6krJGD9uSX5/+2coNmwe/SfcK2BNBisg7xyoCL5pJJkI0CpLmgdeib0Qg3P4hL3aevvizaneLtJq23wJzyL2//+ZUKBhYk3O2W4o5twWMj8Ux04jp/8cE44kWZTTfNTVFKysfdnbHxdiX5kLjVwpkjtPT2ZmuEm5EuWvaODu1s5QbuPkv0qTEbmXipRGLFSGKSZDndyCJSBl5Ee9Nd0XVh0+MtdNYj9Ce+7wdXcku9+SBlGzlklyWe+CaSX6GJZvC6b5MO/D72EW72O32oa1/fHt3xriTIWhhF/QggNwTExciTvcdx3Cwj30fxzBfvkKXKXYqqy7E4bN5P3Mu Z2b+5EYe E5VNHoyetvzIvsrCBDFINtMHYzXcdJ2XLeM+qXTVnzOXaTLT5v3Mwl4kb++tovg1kLbblqV8dRiLBA6qjuZ4EXcFProzWl8EoTYBzyu5xpLyioYebEEehpX5DIsY7uAFjw9s8Yyk1JBrJaA8ggGnEeFBb/v+URI+afYHE7EeW8OcJRY+qNKrGsSTeKh1s3bKi5m1kKiSONFYGiITRVN2FJk369isGXTkjzl/aSZkZwnANx0vtV9CPqq4cl567alMxWaOXsmZX0HECVDE+79vwWI1uOI2axb3H378IZdwgQ3HVmzQa0hyKo8i7a3zGlyMkYhjYPk8FkO/VLJsAeUXJ187cR9Z/BUc5MxGNvfONnnSljmivMZvGO4oIcjmBZzrY9JCy0f1uZifGYGyj2pRGeLxO4/TgDm8QS7bT9TuqBznd5din+tsAh+x2v6DtBRubaRlrodPIKJMHIEuJoHQDt/aYEnu+WC926J2f90AlE2wdQLk5PVT2l6JTxNRb03wQEPTAM1aqFhXl7T8PRlq+36cv1TKkRpg7fIo9 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000098, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Move the cgroup_event_listener for cgroup v1 to the samples directory. This suggestion was proposed by Andrew Morton during the discussion [1]. Links: [1] - https://lore.kernel.org/all/20231106140934.3f5d4960141562fe8da53906@linux-foundation.org/ Signed-off-by: Dmitry Rokosov --- MAINTAINERS | 1 + samples/Kconfig | 6 ++++++ samples/Makefile | 1 + samples/cgroup/Makefile | 5 +++++ {tools => samples}/cgroup/cgroup_event_listener.c | 0 tools/cgroup/Makefile | 11 ----------- 6 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 samples/cgroup/Makefile rename {tools => samples}/cgroup/cgroup_event_listener.c (100%) delete mode 100644 tools/cgroup/Makefile diff --git a/MAINTAINERS b/MAINTAINERS index d516295978a4..6a0a580c34dc 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -5243,6 +5243,7 @@ L: linux-mm@kvack.org S: Maintained F: mm/memcontrol.c F: mm/swap_cgroup.c +F: samples/cgroup/* F: tools/testing/selftests/cgroup/memcg_protection.m F: tools/testing/selftests/cgroup/test_kmem.c F: tools/testing/selftests/cgroup/test_memcontrol.c diff --git a/samples/Kconfig b/samples/Kconfig index bf49ed0d7362..339c8e2ee749 100644 --- a/samples/Kconfig +++ b/samples/Kconfig @@ -287,6 +287,12 @@ config SAMPLE_KMEMLEAK Build a sample program which have explicitly leaks memory to test kmemleak +config SAMPLE_CGROUP + bool "Build cgroup sample code" + depends on CGROUPS && CC_CAN_LINK && HEADERS_INSTALL + help + Build samples that demonstrate the usage of the cgroup API. + source "samples/rust/Kconfig" endif # SAMPLES diff --git a/samples/Makefile b/samples/Makefile index 0a551c2b33f4..b85fa64390c5 100644 --- a/samples/Makefile +++ b/samples/Makefile @@ -3,6 +3,7 @@ subdir-$(CONFIG_SAMPLE_AUXDISPLAY) += auxdisplay subdir-$(CONFIG_SAMPLE_ANDROID_BINDERFS) += binderfs +subdir-$(CONFIG_SAMPLE_CGROUP) += cgroup obj-$(CONFIG_SAMPLE_CONFIGFS) += configfs/ obj-$(CONFIG_SAMPLE_CONNECTOR) += connector/ obj-$(CONFIG_SAMPLE_FANOTIFY_ERROR) += fanotify/ diff --git a/samples/cgroup/Makefile b/samples/cgroup/Makefile new file mode 100644 index 000000000000..deef4530f5e7 --- /dev/null +++ b/samples/cgroup/Makefile @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0 + +userprogs-always-y += cgroup_event_listener + +userccflags += -I usr/include diff --git a/tools/cgroup/cgroup_event_listener.c b/samples/cgroup/cgroup_event_listener.c similarity index 100% rename from tools/cgroup/cgroup_event_listener.c rename to samples/cgroup/cgroup_event_listener.c diff --git a/tools/cgroup/Makefile b/tools/cgroup/Makefile deleted file mode 100644 index ffca068e4a76..000000000000 --- a/tools/cgroup/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 -# Makefile for cgroup tools - -CFLAGS = -Wall -Wextra - -all: cgroup_event_listener -%: %.c - $(CC) $(CFLAGS) -o $@ $^ - -clean: - $(RM) cgroup_event_listener From patchwork Thu Nov 23 07:19:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Rokosov X-Patchwork-Id: 13465873 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 F1E27C5AD4C for ; Thu, 23 Nov 2023 07:20:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6E9256B0654; Thu, 23 Nov 2023 02:20:05 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 642586B0657; Thu, 23 Nov 2023 02:20:05 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 48A576B0656; Thu, 23 Nov 2023 02:20:05 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 37B646B0654 for ; Thu, 23 Nov 2023 02:20:05 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 0A7BFC0EB8 for ; Thu, 23 Nov 2023 07:20:05 +0000 (UTC) X-FDA: 81488369970.16.A9F897E Received: from mx1.sberdevices.ru (mx2.sberdevices.ru [45.89.224.132]) by imf22.hostedemail.com (Postfix) with ESMTP id 1433AC001A for ; Thu, 23 Nov 2023 07:20:01 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=salutedevices.com header.s=mail header.b=mtmk0lNQ; spf=pass (imf22.hostedemail.com: domain of ddrokosov@salutedevices.com designates 45.89.224.132 as permitted sender) smtp.mailfrom=ddrokosov@salutedevices.com; dmarc=pass (policy=quarantine) header.from=salutedevices.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700724002; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=FqpWkqFlCXy5e8M9JPLBeFC7vxG1fv8P80GWkWslETo=; b=oDZTzYIfB7NCc0DrWkeqotBhIf/uvpTRvW+qOrd/fcpWSsVGYMgIZTvwjw39CrkGqA1rxH GIZDYsV5nPwfQQojX060iR6K/QJYRo76iG4tVwDZrULDya1kKCgSGPlN0v//XQwoqW5c49 ZdNP5LAIo8tTdy58qHlsEupb4G0qzps= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700724002; a=rsa-sha256; cv=none; b=wY61V8ucZ9OF0wbVWySJXnOSN+rfcNIQkSZcNl7kGmv2skjU6JgW5GgjkUktMH57KHWrqY CaOuzh3qYwFHRnshFXof5Cq6GKr/R12rHK6+qCRzF8/mB5pMHSKs0lvBx1wZxm+kvx/Vcq 9QC182DxiB9kR6QcmcTI4kGA8qPXSic= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=salutedevices.com header.s=mail header.b=mtmk0lNQ; spf=pass (imf22.hostedemail.com: domain of ddrokosov@salutedevices.com designates 45.89.224.132 as permitted sender) smtp.mailfrom=ddrokosov@salutedevices.com; dmarc=pass (policy=quarantine) header.from=salutedevices.com Received: from p-infra-ksmg-sc-msk02 (localhost [127.0.0.1]) by mx1.sberdevices.ru (Postfix) with ESMTP id 1044E120071; Thu, 23 Nov 2023 10:20:00 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.sberdevices.ru 1044E120071 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=salutedevices.com; s=mail; t=1700724000; bh=FqpWkqFlCXy5e8M9JPLBeFC7vxG1fv8P80GWkWslETo=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type:From; b=mtmk0lNQIHJ+w3JQvX+Fg7IrkYNKjHPHvktagFO4wXgd6zM21fmy3drWFlgrBaPcQ 8io4+0ZIjsazgOMbX5IP8Y4cxZieQh+II8JQlYRblDDE5AnXsqJvDGh+KjXxpROD4w SOeU2ZAYuA8Km1kJEe3GTaHxnymJMRur9+zYbDGGYryJ+EIe6slEa8TANxfWrhA3iY pXG416DuqQjiGOLtnpu3XWCjsZGXZoo2BRnO4BK8IZvft/Wo9tmX+XHvWaSGsXMkjj IGBsgrrYjs0tGE32PmmBTjO90PDiAD5WftT1YyThe6h4aGdUq04lQbH97YTIsFP/Bi gQuGBh69GI/mg== Received: from p-i-exch-sc-m01.sberdevices.ru (p-i-exch-sc-m01.sberdevices.ru [172.16.192.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.sberdevices.ru (Postfix) with ESMTPS; Thu, 23 Nov 2023 10:19:59 +0300 (MSK) Received: from localhost.localdomain (100.64.160.123) by p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Thu, 23 Nov 2023 10:19:59 +0300 From: Dmitry Rokosov To: , , , , , CC: , , , , , , Dmitry Rokosov Subject: [PATCH v3 2/3] samples/cgroup: introduce memcg memory.events listener Date: Thu, 23 Nov 2023 10:19:44 +0300 Message-ID: <20231123071945.25811-3-ddrokosov@salutedevices.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20231123071945.25811-1-ddrokosov@salutedevices.com> References: <20231123071945.25811-1-ddrokosov@salutedevices.com> MIME-Version: 1.0 X-Originating-IP: [100.64.160.123] X-ClientProxiedBy: p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) To p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) X-KSMG-Rule-ID: 10 X-KSMG-Message-Action: clean X-KSMG-AntiSpam-Lua-Profiles: 181550 [Nov 23 2023] X-KSMG-AntiSpam-Version: 6.0.0.2 X-KSMG-AntiSpam-Envelope-From: ddrokosov@salutedevices.com X-KSMG-AntiSpam-Rate: 0 X-KSMG-AntiSpam-Status: not_detected X-KSMG-AntiSpam-Method: none X-KSMG-AntiSpam-Auth: dkim=none X-KSMG-AntiSpam-Info: LuaCore: 3 0.3.3 e5c6a18a9a9bff0226d530c5b790210c0bd117c8, {Tracking_from_domain_doesnt_match_to}, d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;salutedevices.com:7.1.1;100.64.160.123:7.1.2;127.0.0.199:7.1.2;p-i-exch-sc-m01.sberdevices.ru:5.0.1,7.1.1, FromAlignment: s, ApMailHostAddress: 100.64.160.123 X-MS-Exchange-Organization-SCL: -1 X-KSMG-AntiSpam-Interceptor-Info: scan successful X-KSMG-AntiPhishing: Clean X-KSMG-LinksScanning: Clean X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.0.1.6960, bases: 2023/11/23 04:50:00 #22507336 X-KSMG-AntiVirus-Status: Clean, skipped X-Stat-Signature: 5id3hij4rdcuo6skp4mb8ha73pzfmozt X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 1433AC001A X-Rspam-User: X-HE-Tag: 1700724001-882370 X-HE-Meta: U2FsdGVkX1/wECHK2r1OqnMTL7SQPu4VFWhVnEuIWrZo1joFUg7PvDi7ODC4d35TGrlVc9Z/aCXOO5IlK9YMUD62VUJNfbue4bYUFR1G0msMOvIXscpwl72dKFuoYwfejfv4JrbDOIgQX7w/QiXRCFaWQXMQfb+Ey5IIJaEdWHU1zSPY2dvfEy3rwa4Qch4qwJUbS70SparXkojRFfSAO4ehVpOec1HQgXnA6RZKrglWeAd8dhHh+Ep4kY6sQXoYcYvUkIrBpGgFEWNzDtsjGBi7wtaTNUngxzpxf5Xbs8eZ2skkV0TqpW1zPGuSJNcE11hfDutka8BxW7d/tTkuBmE/2AWoK6seoxqj0gihhgRMNpBlE357MdmRT/FRiB5DNmqrgQOikjOYarQJgAkYiTzpJ3ESkKe7Ko/i5xL1YkdMdLliz2qzwFqsfuCgkoxggftIVJSyyX26w3H5dsY96i/Db0fPOmpMef9QWnlM/+Y54LP71Kpe6Czq68G9+fAfpwRHP6Ecj95Gesu8Ncy4Z16qOh7zvSNCUpBQ6AN5qq6yxrh7a9hj77XPxPsc+NXdrS7sWWrSe2iI0nrYsLa3QJu9ahIqJjr5pysmICI9L8+JJEYsNHhFlK3mfiypF0iOSB8tou+CMV94zl/t8B/ytwCJk5Yzi2rNZY3ZWKkYYaDe5RH9htqydeaMtlpYpHG0vSneKYaT9P8dGIWd9j5QGPRSKvMtG18E1wKTRlEf4uqPOZhwwINrD0m8GPg+ctyP8in5rdgZodM2NwZXIPyb7UJJpPl/C8GgqAOU66soUU5fSRO8pOhmUkBEBiKd8m4nVBMjLet5JWQeR+oSbQvXjOcf9DP32xSCUWAthaAW+zNpb4tDxsm2TlkfXUxiDIo7imSpWD/NDyVsiQjh5glQc2Ehq15JkrkgeCyRixL4mrhASXxp2Vx2G+vCKckKUCAHa/stzHUC6mgahuoWfOF uEVgYweA KEvd0i6oTaOyTyjey/FVcGjLnIwEffPZ/P1H2Lo1+s+VN4Ws/6LtHGLLds9vdhQssdz3gUbqpwCLd7tiB/i1aqZCAUaSwzibvt2f8Pq4REiiHKIbA+xPV1dQuayJfc8FIdtU6SzZOnwYlfMm6TGNXGEBK2et2cO9RZkBocqfsaFlrtwwcn4+9X2DJLGMsMbWG4TE3bHVa3vVZKCtdvBHTeadX4jdXISpe7lJ+Lg50/U1MVVLm2js53/Dt0lmuMqwSBcyX75WanbymD7bHeip7EccwPqtHb8JunS1pm5aUOBA/0W/QAnsexXpzi2VDPEt7LwXCz0B2k+63SpPRJvcFuyE1B1xik+riGOOGq2a4Bg3Lu7Z1Wo1g+LM9wBcFLzfviq3Gnmtehu5fJmU= 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 a simple listener for memory events that handles counter changes in runtime. It can be set up for a specific memory cgroup v2. The output example: ===== $ /tmp/memcg_event_listener test Initialized MEMCG events with counters: MEMCG events: low: 0 high: 0 max: 0 oom: 0 oom_kill: 0 oom_group_kill: 0 Started monitoring memory events from '/sys/fs/cgroup/test/memory.events'... Received event in /sys/fs/cgroup/test/memory.events: *** 1 MEMCG oom_kill event, change counter 0 => 1 Received event in /sys/fs/cgroup/test/memory.events: *** 1 MEMCG oom_kill event, change counter 1 => 2 Received event in /sys/fs/cgroup/test/memory.events: *** 1 MEMCG oom_kill event, change counter 2 => 3 Received event in /sys/fs/cgroup/test/memory.events: *** 1 MEMCG oom_kill event, change counter 3 => 4 Received event in /sys/fs/cgroup/test/memory.events: *** 2 MEMCG max events, change counter 0 => 2 Received event in /sys/fs/cgroup/test/memory.events: *** 8 MEMCG max events, change counter 2 => 10 *** 1 MEMCG oom event, change counter 0 => 1 Received event in /sys/fs/cgroup/test/memory.events: *** 1 MEMCG oom_kill event, change counter 4 => 5 ^CExiting memcg event listener... ===== Signed-off-by: Dmitry Rokosov --- samples/cgroup/Makefile | 2 +- samples/cgroup/memcg_event_listener.c | 330 ++++++++++++++++++++++++++ 2 files changed, 331 insertions(+), 1 deletion(-) create mode 100644 samples/cgroup/memcg_event_listener.c diff --git a/samples/cgroup/Makefile b/samples/cgroup/Makefile index deef4530f5e7..526c8569707c 100644 --- a/samples/cgroup/Makefile +++ b/samples/cgroup/Makefile @@ -1,5 +1,5 @@ # SPDX-License-Identifier: GPL-2.0 -userprogs-always-y += cgroup_event_listener +userprogs-always-y += cgroup_event_listener memcg_event_listener userccflags += -I usr/include diff --git a/samples/cgroup/memcg_event_listener.c b/samples/cgroup/memcg_event_listener.c new file mode 100644 index 000000000000..a1667fe2489a --- /dev/null +++ b/samples/cgroup/memcg_event_listener.c @@ -0,0 +1,330 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * memcg_event_listener.c - Simple listener of memcg memory.events + * + * Copyright (c) 2023, SaluteDevices. All Rights Reserved. + * + * Author: Dmitry Rokosov + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MEMCG_EVENTS "memory.events" + +/* Size of buffer to use when reading inotify events */ +#define INOTIFY_BUFFER_SIZE 8192 + +#define INOTIFY_EVENT_NEXT(event, length) ({ \ + (length) -= sizeof(*(event)) + (event)->len; \ + (event)++; \ +}) + +#define INOTIFY_EVENT_OK(event, length) ((length) >= (ssize_t)sizeof(*(event))) + +#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0])) + +struct memcg_counters { + long low; + long high; + long max; + long oom; + long oom_kill; + long oom_group_kill; +}; + +struct memcg_events { + struct memcg_counters counters; + char path[PATH_MAX]; + int inotify_fd; + int inotify_wd; +}; + +static void print_memcg_counters(const struct memcg_counters *counters) +{ + printf("MEMCG events:\n"); + printf("\tlow: %ld\n", counters->low); + printf("\thigh: %ld\n", counters->high); + printf("\tmax: %ld\n", counters->max); + printf("\toom: %ld\n", counters->oom); + printf("\toom_kill: %ld\n", counters->oom_kill); + printf("\toom_group_kill: %ld\n", counters->oom_group_kill); +} + +static int get_memcg_counter(char *line, const char *name, long *counter) +{ + size_t len = strlen(name); + char *endptr; + long tmp; + + if (memcmp(line, name, len)) { + warnx("Counter line %s has wrong name, %s is expected", + line, name); + return -EINVAL; + } + + /* skip the whitespace delimiter */ + len += 1; + + errno = 0; + tmp = strtol(&line[len], &endptr, 10); + if (((tmp == LONG_MAX || tmp == LONG_MIN) && errno == ERANGE) || + (errno && !tmp)) { + warnx("Failed to parse: %s", &line[len]); + return -ERANGE; + } + + if (endptr == &line[len]) { + warnx("Not digits were found in line %s", &line[len]); + return -EINVAL; + } + + if (!(*endptr == '\0' || (*endptr == '\n' && *++endptr == '\0'))) { + warnx("Further characters after number: %s", endptr); + return -EINVAL; + } + + *counter = tmp; + + return 0; +} + +static int read_memcg_events(struct memcg_events *events, bool show_diff) +{ + FILE *fp = fopen(events->path, "re"); + size_t i; + int ret = 0; + bool any_new_events = false; + char *line = NULL; + size_t len = 0; + struct memcg_counters new_counters; + struct memcg_counters *counters = &events->counters; + struct { + const char *name; + long *new; + long *old; + } map[] = { + { + .name = "low", + .new = &new_counters.low, + .old = &counters->low, + }, + { + .name = "high", + .new = &new_counters.high, + .old = &counters->high, + }, + { + .name = "max", + .new = &new_counters.max, + .old = &counters->max, + }, + { + .name = "oom", + .new = &new_counters.oom, + .old = &counters->oom, + }, + { + .name = "oom_kill", + .new = &new_counters.oom_kill, + .old = &counters->oom_kill, + }, + { + .name = "oom_group_kill", + .new = &new_counters.oom_group_kill, + .old = &counters->oom_group_kill, + }, + }; + + if (!fp) { + warn("Failed to open memcg events file %s", events->path); + return -EBADF; + } + + /* Read new values for memcg counters */ + for (i = 0; i < ARRAY_SIZE(map); ++i) { + ssize_t nread; + + errno = 0; + nread = getline(&line, &len, fp); + if (nread == -1) { + if (errno) { + warn("Failed to read line for counter %s", + map[i].name); + ret = -EIO; + goto exit; + } + + break; + } + + ret = get_memcg_counter(line, map[i].name, map[i].new); + if (ret) { + warnx("Failed to get counter value from line %s", line); + goto exit; + } + } + + for (i = 0; i < ARRAY_SIZE(map); ++i) { + long diff; + + if (*map[i].new > *map[i].old) { + diff = *map[i].new - *map[i].old; + + if (show_diff) + printf("*** %ld MEMCG %s event%s, " + "change counter %ld => %ld\n", + diff, map[i].name, + (diff == 1) ? "" : "s", + *map[i].old, *map[i].new); + + *map[i].old += diff; + any_new_events = true; + } + } + + if (show_diff && !any_new_events) + printf("*** No new untracked memcg events available\n"); + +exit: + free(line); + fclose(fp); + + return ret; +} + +static void process_memcg_events(struct memcg_events *events, + struct inotify_event *event) +{ + int ret; + + if (events->inotify_wd != event->wd) { + warnx("Unknown inotify event %d, should be %d", event->wd, + events->inotify_wd); + return; + } + + printf("Received event in %s:\n", events->path); + + if (!(event->mask & IN_MODIFY)) { + warnx("No IN_MODIFY event, skip it"); + return; + } + + ret = read_memcg_events(events, /* show_diff = */true); + if (ret) + warnx("Can't read memcg events"); +} + +static void monitor_events(struct memcg_events *events) +{ + struct pollfd fds[1]; + int ret; + + printf("Started monitoring memory events from '%s'...\n", events->path); + + fds[0].fd = events->inotify_fd; + fds[0].events = POLLIN; + + for (;;) { + ret = poll(fds, ARRAY_SIZE(fds), -1); + if (ret < 0 && errno != EAGAIN) + err(EXIT_FAILURE, "Can't poll memcg events (%d)", ret); + + if (fds[0].revents & POLLERR) + err(EXIT_FAILURE, "Got POLLERR during monitor events"); + + if (fds[0].revents & POLLIN) { + struct inotify_event *event; + char buffer[INOTIFY_BUFFER_SIZE]; + ssize_t length; + + length = read(fds[0].fd, buffer, INOTIFY_BUFFER_SIZE); + if (length <= 0) + continue; + + event = (struct inotify_event *)buffer; + while (INOTIFY_EVENT_OK(event, length)) { + process_memcg_events(events, event); + event = INOTIFY_EVENT_NEXT(event, length); + } + } + } +} + +static int initialize_memcg_events(struct memcg_events *events, + const char *cgroup) +{ + int ret; + + memset(events, 0, sizeof(struct memcg_events)); + + ret = snprintf(events->path, PATH_MAX, + "/sys/fs/cgroup/%s/memory.events", cgroup); + if (ret >= PATH_MAX) { + warnx("Path to cgroup memory.events is too long"); + return -EMSGSIZE; + } else if (ret < 0) { + warn("Can't generate cgroup event full name"); + return ret; + } + + ret = read_memcg_events(events, /* show_diff = */false); + if (ret) { + warnx("Failed to read initial memcg events state (%d)", ret); + return ret; + } + + events->inotify_fd = inotify_init(); + if (events->inotify_fd < 0) { + warn("Failed to setup new inotify device"); + return -EMFILE; + } + + events->inotify_wd = inotify_add_watch(events->inotify_fd, + events->path, IN_MODIFY); + if (events->inotify_wd < 0) { + warn("Couldn't add monitor in dir %s", events->path); + return -EIO; + } + + printf("Initialized MEMCG events with counters:\n"); + print_memcg_counters(&events->counters); + + return 0; +} + +static void cleanup_memcg_events(struct memcg_events *events) +{ + inotify_rm_watch(events->inotify_fd, events->inotify_wd); + close(events->inotify_fd); +} + +int main(int argc, const char **argv) +{ + struct memcg_events events; + ssize_t ret; + + if (argc != 2) + errx(EXIT_FAILURE, "Usage: %s ", argv[0]); + + ret = initialize_memcg_events(&events, argv[1]); + if (ret) + errx(EXIT_FAILURE, "Can't initialize memcg events (%zd)", ret); + + monitor_events(&events); + + cleanup_memcg_events(&events); + + printf("Exiting memcg event listener...\n"); + + return EXIT_SUCCESS; +} From patchwork Thu Nov 23 07:19:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Rokosov X-Patchwork-Id: 13465875 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 66716C5AD4C for ; Thu, 23 Nov 2023 07:20:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D3EBD6B0655; Thu, 23 Nov 2023 02:20:05 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CF3646B0658; Thu, 23 Nov 2023 02:20:05 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A7E8D6B0655; Thu, 23 Nov 2023 02:20:05 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 7DD826B0656 for ; Thu, 23 Nov 2023 02:20:05 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 5C2F9140EB8 for ; Thu, 23 Nov 2023 07:20:05 +0000 (UTC) X-FDA: 81488369970.14.FF05BF1 Received: from mx1.sberdevices.ru (mx2.sberdevices.ru [45.89.224.132]) by imf03.hostedemail.com (Postfix) with ESMTP id 739CA2001B for ; Thu, 23 Nov 2023 07:20:02 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=salutedevices.com header.s=mail header.b=orKhJIw6; dmarc=pass (policy=quarantine) header.from=salutedevices.com; spf=pass (imf03.hostedemail.com: domain of ddrokosov@salutedevices.com designates 45.89.224.132 as permitted sender) smtp.mailfrom=ddrokosov@salutedevices.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700724002; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=4xqDYEZxoQBKfiroxVAcCaTQ0QNc/WhY15vgNkVDJCI=; b=gw4p7njzKXP6cehss8u8XzZAaMKph8PqDAEMU/wquqfrG9v+E3HIIvb8ejvjklmA/kjO3e u4/3MZ9xiI8y9fptTfOIxI+JJQTROpNq+iWBYrAidaM0N5j10QcvRoREBF0FOVnzXSDkt2 SaxKyF8tIDXd3Fcz2WGEoQK6qXEkj1E= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=salutedevices.com header.s=mail header.b=orKhJIw6; dmarc=pass (policy=quarantine) header.from=salutedevices.com; spf=pass (imf03.hostedemail.com: domain of ddrokosov@salutedevices.com designates 45.89.224.132 as permitted sender) smtp.mailfrom=ddrokosov@salutedevices.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700724002; a=rsa-sha256; cv=none; b=FjQxeeaKKbFAFIoNLMqHHFC6rhfcRVLmKTOL8HeMLec3OTlBHYa+zTWiafh5uH0tLKfYQj SYgO5VAqBWzI13f8D+FgMNI6S/ZFhl0HBSVJ86EAs63RFPdOw0Z+lAXpCk8Osa3HMvBr6M knrBDEKhaPd2IG192wuEi8QnATA64uc= Received: from p-infra-ksmg-sc-msk02 (localhost [127.0.0.1]) by mx1.sberdevices.ru (Postfix) with ESMTP id E26FC120007; Thu, 23 Nov 2023 10:20:00 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.sberdevices.ru E26FC120007 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=salutedevices.com; s=mail; t=1700724000; bh=4xqDYEZxoQBKfiroxVAcCaTQ0QNc/WhY15vgNkVDJCI=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type:From; b=orKhJIw62iEDOIX8Eo122DiZ9ABea2OkrpyBXvy1q4BEINmqjrEPfxqvpJkzoASye 0k8ivVu56ck2hQ0OK9iFWoM880QCHg1z7W1Mzbrd2SogdxqsCknmIyee6eYAPbj6I/ 1Q1F3vSHK8twKbcd49ZNuDdAW7PlZve+cJ1CKoJ/6OsIdFMoJggTEAN50uNNqekbGA 4o9ofIP2//am+lWImoqWaX/icU1NWCKq6US4qJOYp7j/UgAoibUojuHxAi6v8u1URz Aj8Ht6iZb7myhpul2Fm2YRflSvyOLw9dJFTCZ6aeWhmMF9AGl4yKgCweZWaoLm+W1v 0cSEpdgm0QtOw== Received: from p-i-exch-sc-m01.sberdevices.ru (p-i-exch-sc-m01.sberdevices.ru [172.16.192.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.sberdevices.ru (Postfix) with ESMTPS; Thu, 23 Nov 2023 10:20:00 +0300 (MSK) Received: from localhost.localdomain (100.64.160.123) by p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Thu, 23 Nov 2023 10:20:00 +0300 From: Dmitry Rokosov To: , , , , , CC: , , , , , , Dmitry Rokosov Subject: [PATCH v3 3/3] mm: memcg: add reminder comment for the memcg v2 events Date: Thu, 23 Nov 2023 10:19:45 +0300 Message-ID: <20231123071945.25811-4-ddrokosov@salutedevices.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20231123071945.25811-1-ddrokosov@salutedevices.com> References: <20231123071945.25811-1-ddrokosov@salutedevices.com> MIME-Version: 1.0 X-Originating-IP: [100.64.160.123] X-ClientProxiedBy: p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) To p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) X-KSMG-Rule-ID: 10 X-KSMG-Message-Action: clean X-KSMG-AntiSpam-Lua-Profiles: 181550 [Nov 23 2023] X-KSMG-AntiSpam-Version: 6.0.0.2 X-KSMG-AntiSpam-Envelope-From: ddrokosov@salutedevices.com X-KSMG-AntiSpam-Rate: 0 X-KSMG-AntiSpam-Status: not_detected X-KSMG-AntiSpam-Method: none X-KSMG-AntiSpam-Auth: dkim=none X-KSMG-AntiSpam-Info: LuaCore: 3 0.3.3 e5c6a18a9a9bff0226d530c5b790210c0bd117c8, {Tracking_from_domain_doesnt_match_to}, d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;salutedevices.com:7.1.1;100.64.160.123:7.1.2;127.0.0.199:7.1.2;p-i-exch-sc-m01.sberdevices.ru:5.0.1,7.1.1, FromAlignment: s, ApMailHostAddress: 100.64.160.123 X-MS-Exchange-Organization-SCL: -1 X-KSMG-AntiSpam-Interceptor-Info: scan successful X-KSMG-AntiPhishing: Clean X-KSMG-LinksScanning: Clean X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.0.1.6960, bases: 2023/11/23 04:50:00 #22507336 X-KSMG-AntiVirus-Status: Clean, skipped X-Rspam-User: X-Stat-Signature: a9xre8sy1nu34akbfsh4mr6ot48roimg X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 739CA2001B X-HE-Tag: 1700724002-11810 X-HE-Meta: U2FsdGVkX19Gtg9vyu0R1FrCg7gR4rn+H9NUhWJ5R6O/yuxdHSGNrWN+a4Tx2yx8DwOfdreb2OStEHb0SWdc2iDUBe9bxrmCjb10h5/2P/7s5mm8hzFQtLyfsYgjZFwS4iNnbxnTNqkjNg4/h/gZklSK3Z9O/i9N6lhrdz54/pD7T7Zyv5bWTDHXR2z1W0dMaVq+piQDXOH7Z4KQokL2H84WFyZdH6HNdI2lSH1T78TLguekDzqpwTf+qReI6GSIS0hpabwqHV9cuBFxljsUuM3fQfSoMhHKCNXGAwTDv3uwBm/8u+tiRFOfoNYQ5eqXVG4egeAVF7mq8k46Z09FsY4YTQD/oUXHAROMoLhnjivws8BsomruQCbWxGpOIifq9oGOjEGgDXvljJGvDFdmpFB9G/eOmvMQMii5rW0E+vGZELgmUL4/epsKoUbXe5I1SRLzxMdqsf3OLy7mv+6631GDV0DWOgDEan14b+B/GTr+aNxeK37QEy/4bVrvfsn4b6DXpYNMb2Ndbu1gDSJABtsR1N6JP2LdyBuSBCk/jR6QacyoyCfghs8KikvmH0B+sEYyKmQH1zoA0UygFPNyHNzq/XGVf388KATQy1Ajn+1FiqbEzey2e0+z7+iyyBF/tNijz85Pbf/2KqaXcgeh5ccYgF41ZCy3F1YukXQZVPUqY6mnuTtMzLPk8E/1ssX5IK1e8TQX9EBldaBMIL5dlJ4TGEdQCA2fwGLekdER4sh0XqWaOcSlG5aragCsAPk3Y3MjlUSA2NmNHinm+cQG3mTN4bu3GqfqaODbEGRHrr000CI9ibmhTF/aJUFOQpKbj3Qa9ztfXcEVkZL8FqcLXOJyhbaGHDbar82LZn3hWAWUP21TizwwjqsKGDPuuqzJQk8eIA+oidwonK7U5P1kglONupKhUAfYxLHrNwDZihpgE8cVDQH+UUXBWSTgxCrImteidFHuPU3SEa4uXic o57uNRLs dqnZp/Eo4UOo0/Js3W8lBgxIcsqQ17jRGEtattbGqhRnzosqQXpNImLKIe1lKWoHfXxPzOaUr3n3fBzphTyLbyTEFj826vbnlbu0g0yOmHup7j/KObUr8FST1NSYSCgLQ7XDDdwvihw6qaF9B5QUTBk4z8/XM99BE92wk2DE/v4ZsEcSGMBOBEgcUHute7WQYIjsuz1hR6sBj5l0hFd2D5tu3AVDwEkp6Qy72MuIGSETMHG7xqWg4dSXPlZJOT8jkS+bmbpcHSnoZMq2e+UB6serZDrzzyonxrcPIrp1slY4Na0o272YK7beUTP8z2kt4ZMc9HfpJk+anVwwG6FgSX+GNm0GBbN2w8fuR/o6spnG6QAY= 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: To maintain the correct state, it is important to ensure that events for the memory cgroup v2 are aligned with the sample cgroup codes. Signed-off-by: Dmitry Rokosov --- mm/memcontrol.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index e8ca4bdcb03c..a75c4584f58f 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -6555,6 +6555,10 @@ static ssize_t memory_max_write(struct kernfs_open_file *of, return nbytes; } +/* + * Note: don't forget to update the 'samples/cgroup/memcg_event_listener' + * if any new events become available. + */ static void __memory_events_show(struct seq_file *m, atomic_long_t *events) { seq_printf(m, "low %lu\n", atomic_long_read(&events[MEMCG_LOW]));