From patchwork Wed May 17 03:20:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?56iL5Z6y5rabIENoZW5na2FpdGFvIENoZW5n?= X-Patchwork-Id: 13244120 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 839C1C7EE2D for ; Wed, 17 May 2023 03:20:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E4CA4280001; Tue, 16 May 2023 23:20:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DD603280002; Tue, 16 May 2023 23:20:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BD887280001; Tue, 16 May 2023 23:20:50 -0400 (EDT) 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 ACFAA280002 for ; Tue, 16 May 2023 23:20:50 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 81BA280410 for ; Wed, 17 May 2023 03:20:50 +0000 (UTC) X-FDA: 80798295060.13.D8E673F Received: from mx5.didiglobal.com (mx5.didiglobal.com [111.202.70.122]) by imf24.hostedemail.com (Postfix) with SMTP id 3ECCF18000D for ; Wed, 17 May 2023 03:20:46 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf24.hostedemail.com: domain of chengkaitao@didiglobal.com designates 111.202.70.122 as permitted sender) smtp.mailfrom=chengkaitao@didiglobal.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684293647; 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; bh=uUfY6EWcCpbDCnL+pHelbEMPKYlVsb5Fcav8YIeRDdc=; b=r5F1akbgQW5GVFyfH5nUlzyl5gLHUHyI3DnO6l4TzyHbogs8R7lSxNmvNDNzF0/3Sss0zY ieC3lKF9woW/Hgfh1wtBiizHa9kqgivQJiXcMOyQQTvGnQRxyY/atdr8mrJira+/bSMuCN 0rO4MtBZbHtEtQyLVml5x9RZtiWjxq0= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf24.hostedemail.com: domain of chengkaitao@didiglobal.com designates 111.202.70.122 as permitted sender) smtp.mailfrom=chengkaitao@didiglobal.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684293647; a=rsa-sha256; cv=none; b=Giz0FvFPrQ+l/XMNDcRDoytxZSB/QQau4IawjHYjFEAd+rFwannnbR1O/7IxSwCoult1zO nFVuAh36hNaNG56NX6gFNvuGZqqGPWpPiz7WxDrVby3WzrFp56B8F7xuYtAI5pfJS/KgSk INo+3Mti6pk+wcY/Gtm99Qp5URbzY30= Received: from mail.didiglobal.com (unknown [10.79.71.35]) by mx5.didiglobal.com (Maildata Gateway V2.8) with ESMTPS id EE655B003507E; Wed, 17 May 2023 11:20:43 +0800 (CST) Received: from localhost.localdomain (10.79.71.101) by ZJY03-ACTMBX-05.didichuxing.com (10.79.71.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Wed, 17 May 2023 11:20:43 +0800 X-MD-Sfrom: chengkaitao@didiglobal.com X-MD-SrcIP: 10.79.71.35 From: chengkaitao To: , , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v4 2/2] memcg: add oom_kill_inherit event indicator Date: Wed, 17 May 2023 11:20:32 +0800 Message-ID: <20230517032032.76334-3-chengkaitao@didiglobal.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: <20230517032032.76334-1-chengkaitao@didiglobal.com> MIME-Version: 1.0 X-Originating-IP: [10.79.71.101] X-ClientProxiedBy: ZJY02-PUBMBX-01.didichuxing.com (10.79.65.31) To ZJY03-ACTMBX-05.didichuxing.com (10.79.71.35) X-Stat-Signature: sp5xpuqthrufc6q6cmtkcd9pjnbjfwyh X-Rspam-User: X-Rspamd-Queue-Id: 3ECCF18000D X-Rspamd-Server: rspam07 X-HE-Tag: 1684293646-288490 X-HE-Meta: U2FsdGVkX18eZK7o9NfCAtTAuPIEiNcaHgFa5IDC9dt8aNFwgfRnl4nSuEQmo5ROIVE+VyqUPQZoMJT7cWBNflEua3DP3Z2if1KuZtqqw/pR2QRaWCN2QnC+t+E0kaDR5dGs1TVgKzQMCE92FEF6FaI4tdMSnhLb9QWrkD3DA1D87TisZL5OP7IzPSkJAzS+VWXiDU57bljXZNuCFFmDSrjCiLlLYP0/9x1C4IAZAzN6cEi7zqcxP17Do5ryk3Nt5oHStQS3+1Z7k+AR91SEXMDPkrPW3Fq/8fj5l3szyZEecQ7sM6I0EBMmgLkwlMDboMqC7FMfxP5yRFCT/lHRSFlP9pb9QCAFDh5BgNmOmE5BuY9EeZ4GlnzCM5N4fcsJM56Il4Dlj1Dtwqf/0j/SLZNGEexYKfvxTvklqNyiw0ZOXZF3gtTx5c4x/rcFaUfBG/nVc+FcoMqoI5Io7LBuLz40I4Kcz2kJ5D/FXqgxmQUWriDmZEWq7SkAX9O9oWhHj0Ysn8hbhzmQlcxQa/7PKhXdHPfLzh6xgGbMca06TWu5NPGr8Va3Q/8zCvph0CjQSb6PhuIz+wPDPn/DK0mUOh4PZ26TX8De9GrHe+ubjY1EyjykwiS3q+dTf691wBcefLs5xMsC7j/7nAxaEj8ZMAj65vryPOWIXFpEoc39B08/i5TEVEbiT7oiVZ2JWbs7TBy7FkCwIq8XqyUL7CscEX/GIH6RapU1kKXCtPSq1Xc8eI2MfcA3jVqKs7cQnJFxckA6i9eLZdV/7kFAOWgxjhIfJBXpltpOko3ILG4eopLHmuIX7AzeeyaV+t5U0zhOqIT5ZmILNkG6ViTFpMJAvQ4H2ri+6NGB/h8+HNMUwH8A2R6ayiA0UI7HIocH3ivgLeCyCWIYcgKtUyOBPRJv1dUVu7W5MIQHBFHghMMbMvpbZI7KVq+VP7AlOLIg+X8iHkNR3pUZRyrBQls9tcA xReJ7XlW LpFKlGFt8YewqcanR9+7/zbVz0zEEcsbHN/ggbwwT9/Denz+Py4CNeOSzx3Jkv75VQuYQKT9SMkyHDao7x7HRPNmOSRs1Pobztv03p9hSMx0VXrqcdRRJu6tCt73AkXIMVAMShW2AdX0CC4bwtlgFXea64O9Z+Ts8EhetvskTiHD/3yQP0PX5Z2wL0X9MrFmbUuQ/dAUWJrxgCBlU2fs042KLUU/f8Rek1R597peIazPU8YY= 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: From: chengkaitao Oom_kill_inherit can reflect the number of child cgroups selected by the parent cgroup's OOM killer. We can refer to the proportion of the indicator to adjust the value of oom_protect. The larger oom_protect, the smaller oom_kill_inherit. Signed-off-by: chengkaitao --- Documentation/admin-guide/cgroup-v2.rst | 4 ++++ include/linux/memcontrol.h | 1 + mm/memcontrol.c | 6 ++++++ 3 files changed, 11 insertions(+) diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst index 51e9a84d508a..e6f56443d049 100644 --- a/Documentation/admin-guide/cgroup-v2.rst +++ b/Documentation/admin-guide/cgroup-v2.rst @@ -1358,6 +1358,10 @@ PAGE_SIZE multiple when read back. The number of processes belonging to this cgroup killed by any kind of OOM killer. + oom_kill_inherit + The number of processes belonging to this cgroup + killed by all Ancestral memcg's OOM killer. + oom_group_kill The number of times a group OOM has occurred. diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 23ea28d98c0e..d7797f9a0605 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -46,6 +46,7 @@ enum memcg_memory_event { MEMCG_MAX, MEMCG_OOM, MEMCG_OOM_KILL, + MEMCG_OOM_INHERIT, MEMCG_OOM_GROUP_KILL, MEMCG_SWAP_HIGH, MEMCG_SWAP_MAX, diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 8ee67abb415f..cf3cacf26cec 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -2129,6 +2129,10 @@ struct mem_cgroup *mem_cgroup_get_oom_group(struct task_struct *victim, if (memcg == oom_domain) break; + /* we use oom.group's logic to update the OOM_INHERIT indicator, + * but OOM_INHERIT and oom.group are independent of each other. + */ + memcg_memory_event(memcg, MEMCG_OOM_INHERIT); } if (oom_group) @@ -6622,6 +6626,8 @@ static void __memory_events_show(struct seq_file *m, atomic_long_t *events) seq_printf(m, "oom %lu\n", atomic_long_read(&events[MEMCG_OOM])); seq_printf(m, "oom_kill %lu\n", atomic_long_read(&events[MEMCG_OOM_KILL])); + seq_printf(m, "oom_kill_inherit %lu\n", + atomic_long_read(&events[MEMCG_OOM_INHERIT])); seq_printf(m, "oom_group_kill %lu\n", atomic_long_read(&events[MEMCG_OOM_GROUP_KILL])); }