From patchwork Sat Mar 12 07:16:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 12778752 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 D9A28C433EF for ; Sat, 12 Mar 2022 07:16:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2B8098D0003; Sat, 12 Mar 2022 02:16:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 240A08D0001; Sat, 12 Mar 2022 02:16:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0E2218D0003; Sat, 12 Mar 2022 02:16:46 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.26]) by kanga.kvack.org (Postfix) with ESMTP id EE0278D0001 for ; Sat, 12 Mar 2022 02:16:45 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id BB4EF1893 for ; Sat, 12 Mar 2022 07:16:45 +0000 (UTC) X-FDA: 79234876770.14.6BA090E Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by imf13.hostedemail.com (Postfix) with ESMTP id 14BEB20007 for ; Sat, 12 Mar 2022 07:16:44 +0000 (UTC) Received: by mail-ej1-f42.google.com with SMTP id yy13so23486835ejb.2 for ; Fri, 11 Mar 2022 23:16:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id; bh=fCsAW2UJBB6c8M7QlLxk/JpB7LFkDqCihtv/AG+0X8o=; b=gqlsHeWUslWmzUd/Eur6w3QnGn7z2Zwd53xTFvdB8A32ZYPRsfJNBaAwpSKYMaKBN7 Ow2oIrQFQHSV+lmB4JpCjzVpV2lwJ/YqI/9FSKwQDmDfs9VaBrPJeEKgtx5nwB1Lj2x/ 6+bmSn4/Ei6xKx5X/k4isDUc4/6feXGplx3FStYBqaIVKj0l6LGBxLX3sskLSsysS+dz RbUBSKdevPvprvhQXzMqfkOQ7m6kNdlwRCda0DYDQx+tNNXdjB/tImVE6t7B8C5x68HJ wY5JZZhZoFO7SN/y9eB4vA9xiunMKSr3rXaoa0YlR0eGT7jKk3wZgxmcQPxo8jLz5Fn+ TYcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=fCsAW2UJBB6c8M7QlLxk/JpB7LFkDqCihtv/AG+0X8o=; b=DSUQsfIV06vepLnHzsvrfEN1gQB6DoQ0WdFexDS8IsXPbxCoqiiZa/y0GSZHoEnrc6 rrvDowe15AY22jh5uiJwpu8lx6C3uUj59Ic7XipJQykqnzyAsonljJB7jn/6zUOhKl+Y /tZ1C12vCFw3g/4JsE4D6KP/JNFkpGYgqw3r6ymVX509E8zQf2F35tWAplZcvd/UcYrV MhJr1wPxlhNLs+rdWqUAUYaWD2wdWmRaXM46s5clOfr1NFEH21Urvt7QwYM232HV30oQ imy3COKm02ovJtdNFU1zxFwpTXB1I/iTBBjXlupYuHAb1pJAiB9YmdwLCM2Aayn3kSbA unYw== X-Gm-Message-State: AOAM533tjQ4uWxVTX2LBtGNJV60t1EC9gZnHYzsG32mebEcWtmto0pcK skmbtILhhUy/HUVHIGkQ2Xk= X-Google-Smtp-Source: ABdhPJzM8qMnDGTwX/YJSEeKqcXHJnylnQX45G0C/nIhSIh2See/JjfvN6BSKAtcks9RZDlbUar+mg== X-Received: by 2002:a17:907:7ea7:b0:6db:b3c7:95d6 with SMTP id qb39-20020a1709077ea700b006dbb3c795d6mr3155520ejc.480.1647069403462; Fri, 11 Mar 2022 23:16:43 -0800 (PST) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id q15-20020a056402518f00b00416a3194924sm3788805edd.75.2022.03.11.23.16.42 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 11 Mar 2022 23:16:42 -0800 (PST) From: Wei Yang To: hannes@cmpxchg.org, mhocko@kernel.org, vdavydov.dev@gmail.com, akpm@linux-foundation.org Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, Wei Yang Subject: [Patch v2 1/3] mm/memcg: mz already removed from rb_tree in mem_cgroup_largest_soft_limit_node() Date: Sat, 12 Mar 2022 07:16:21 +0000 Message-Id: <20220312071623.19050-1-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 X-Rspam-User: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 14BEB20007 X-Stat-Signature: ep6gbr5qcnqrichepemj671714pumgub Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=gqlsHeWU; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf13.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com X-HE-Tag: 1647069404-158882 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: When mz is not NULL, mem_cgroup_largest_soft_limit_node() has removed it from rb_tree. Not necessary to call __mem_cgroup_remove_exceeded() again. Signed-off-by: Wei Yang Acked-by: Michal Hocko --- mm/memcontrol.c | 1 - 1 file changed, 1 deletion(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index f898320b678a..d70bf5cf04eb 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -3458,7 +3458,6 @@ unsigned long mem_cgroup_soft_limit_reclaim(pg_data_t *pgdat, int order, nr_reclaimed += reclaimed; *total_scanned += nr_scanned; spin_lock_irq(&mctz->lock); - __mem_cgroup_remove_exceeded(mz, mctz); /* * If we failed to reclaim anything from this memory cgroup From patchwork Sat Mar 12 07:16:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 12778753 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 B8ED5C433FE for ; Sat, 12 Mar 2022 07:16:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9475E8D0005; Sat, 12 Mar 2022 02:16:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 8F66B8D0001; Sat, 12 Mar 2022 02:16:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7BE318D0005; Sat, 12 Mar 2022 02:16:46 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0068.hostedemail.com [216.40.44.68]) by kanga.kvack.org (Postfix) with ESMTP id 6B4568D0001 for ; Sat, 12 Mar 2022 02:16:46 -0500 (EST) Received: from smtpin29.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 231758249980 for ; Sat, 12 Mar 2022 07:16:46 +0000 (UTC) X-FDA: 79234876812.29.4EF0C70 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) by imf20.hostedemail.com (Postfix) with ESMTP id AD87F1C002C for ; Sat, 12 Mar 2022 07:16:45 +0000 (UTC) Received: by mail-ej1-f54.google.com with SMTP id r13so23461916ejd.5 for ; Fri, 11 Mar 2022 23:16:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=TJpD8WbIgS+xru6bpF+N+uC+vSCiqZY6PRQI5LvMXoI=; b=OnRswjgsCsJLFDXAhDVynEt+QYId9QLq2eHDAEGp5uy8DDCncYRh8UPekuSANb8xek Uuhz8NXACFvzoNgKCB4ogBbvV5t8gNdEgaIlRNqa5fFzRh1LKQ8qeldQvEsU1MG8zw1L tcTWMUMWZTo+VcEiFj29ZSoZuesvJ5oMfToBXCxntl0z5UxIGq2X2thLpSVzSISfl3D9 aJB3QH2GA3EocBRfi5OMW/l3JuSvo/98FA9zrQorYBY7egSblrVCqiyrdO0wt89FE8/C 4tHdbz4ubwNz8YN1HWJ+u8cZOkBvCxAUJqdor7obk60+IxdbIZBVE+bRuXQnRI4j/EX0 45vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=TJpD8WbIgS+xru6bpF+N+uC+vSCiqZY6PRQI5LvMXoI=; b=Lb5uErfTcSmZ0ikONRH2NFJ9CaCarN3fxwYW+4/ja63UZf6dKR/QACuiCeTvht3LLv 61kGvOJxk0/d2dokkYH7Cb6GgDf+F5OFOY8sF5EuC+uThxt0NF5Fiong8JNtu8z3r9aj Rl1PIol3yWQ1u63S6UVk7RVE0jpWpwBaYMexB0F/O3J/TLS4xkZ3HxaVYbEwY+0FNnPJ xIDCns+LWUPS3FPG18mEmBP3UmhS3qnmKnRDlwdQZIJ/f4P/iqmFRc6l59nvdgRl2H28 lpEgCb7g/563LM6RLVPmoH6wnaEkMFDbqV9pxSvrjG/J9Ard+E1C5I3XMHqrMHWi+B3v wfVw== X-Gm-Message-State: AOAM530s60V5LQal+hOa/E2naJG9ECVzNGEsFeKo7NrwiSS5eCBAuoWy FtrK5dCIzqSdSHJvxg9AbH4= X-Google-Smtp-Source: ABdhPJwOiV2aWkyrs3vCcOFujLCY3MWpms8vOw/gMA0k9/NHKb6WJplYCMpsRJZOnOmN9PpwNKGF/Q== X-Received: by 2002:a17:907:7f1d:b0:6da:74b1:fd65 with SMTP id qf29-20020a1709077f1d00b006da74b1fd65mr11848542ejc.72.1647069404297; Fri, 11 Mar 2022 23:16:44 -0800 (PST) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id h18-20020a1709062dd200b006db26396622sm3875907eji.212.2022.03.11.23.16.43 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 11 Mar 2022 23:16:43 -0800 (PST) From: Wei Yang To: hannes@cmpxchg.org, mhocko@kernel.org, vdavydov.dev@gmail.com, akpm@linux-foundation.org Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, Wei Yang Subject: [Patch v2 2/3] mm/memcg: __mem_cgroup_remove_exceeded could handle a !on-tree mz properly Date: Sat, 12 Mar 2022 07:16:22 +0000 Message-Id: <20220312071623.19050-2-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220312071623.19050-1-richard.weiyang@gmail.com> References: <20220312071623.19050-1-richard.weiyang@gmail.com> X-Rspam-User: Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=OnRswjgs; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf20.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.54 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: AD87F1C002C X-Stat-Signature: bjn8mce7zn7ha4kngh1eqi7m8m4apjo9 X-HE-Tag: 1647069405-871464 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: There is no tree operation if mz is not on-tree. Let's remove the extra check. Signed-off-by: Wei Yang --- mm/memcontrol.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index d70bf5cf04eb..344a7e891bc5 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -545,9 +545,11 @@ static void mem_cgroup_update_tree(struct mem_cgroup *memcg, int nid) unsigned long flags; spin_lock_irqsave(&mctz->lock, flags); - /* if on-tree, remove it */ - if (mz->on_tree) - __mem_cgroup_remove_exceeded(mz, mctz); + /* + * remove it first + * If not on-tree, no tree ops. + */ + __mem_cgroup_remove_exceeded(mz, mctz); /* * Insert again. mz->usage_in_excess will be updated. * If excess is 0, no tree ops. From patchwork Sat Mar 12 07:16:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 12778754 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 6F95FC433F5 for ; Sat, 12 Mar 2022 07:16:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5C65E8D0006; Sat, 12 Mar 2022 02:16:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4B3128D0001; Sat, 12 Mar 2022 02:16:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 305468D0006; Sat, 12 Mar 2022 02:16:47 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0188.hostedemail.com [216.40.44.188]) by kanga.kvack.org (Postfix) with ESMTP id 1EF0D8D0001 for ; Sat, 12 Mar 2022 02:16:47 -0500 (EST) Received: from smtpin20.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id CC20E181CC1B4 for ; Sat, 12 Mar 2022 07:16:46 +0000 (UTC) X-FDA: 79234876812.20.780B41A Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45]) by imf18.hostedemail.com (Postfix) with ESMTP id 69B9D1C0021 for ; Sat, 12 Mar 2022 07:16:46 +0000 (UTC) Received: by mail-ej1-f45.google.com with SMTP id d10so23420193eje.10 for ; Fri, 11 Mar 2022 23:16:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=6eF3CkGTMOIQmVHUtkEwTATvUD+GDDg0zGlDrlu3cRs=; b=LJ8fzFe6HkpMjK3dAG/kkCB3VwjmJ5YokqYQBqn6mRELFnmoDR4ND2YGflHHQEY3cw cHN2GmvSaxTqzUyKiaZ6G8mHq8RfzREKBl/YpsSReGoKIicDRHevo1QbIm1z64ki9ydZ pRhNKC3UotSGcN2JnVtD+VJ7gz7fnGndetV6M4+7G3pGlRMVUfOdoBLqqjJonINME7Lz X1wG7JfWG67Nm3dD3p8y7Vmt+mZiOjMmF9XwDF/9Z2bTX6XZJ88FXOTMfvYNrcmzXyuH UKAMGTiXg31ZO88PFlisMM/+EvoJVtJ60F3IWXVXj7eWcyg3PQBPDPcLj8gastjMjOZT hXMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=6eF3CkGTMOIQmVHUtkEwTATvUD+GDDg0zGlDrlu3cRs=; b=Kj9891V33TslFO+RoZdBiJDmfgbKz3smYKeAWqJd1g03XZXbRLllYvZbI/TrM+XB5k zL9rBIh7csoI60A74Sal7Db+STJSmHU+T6sKq2IcsG0xy44vaSlGPvq2dKq46qoq9xqv lhhiwEKaS597BV/y1vIXRh9nV4GbSQPiUEGEXWyVbqqq77Oo2htpVJCkRG4yrNTmwJ60 s8r1N0etZPSeNVepnfviyBkXliM+y7yjW9pxYowMJEiQ1P+DZHeg2v3jlogDAPm7bKFt syywcwHDiksXS0yuoyfrfglUMUB/C/VkoGIHcJUX9PyH0EdRVslHUnUIC4qNEKfv/uiU GI7Q== X-Gm-Message-State: AOAM531AFAMD3epvCde/o2Kq7Lkrj7tPANiQhIPPYafmFg+WDGrqc5Fg 2g9y19lwoexe40rBP5aAMDA= X-Google-Smtp-Source: ABdhPJwqMXsfiaLvKKPLz6WsxVosaOPmy5L2VlCKhaMPJ2MZj7Bkc+bVrRx/4xwJMxKmu3vU7/oliw== X-Received: by 2002:a17:907:6296:b0:6da:745b:7b40 with SMTP id nd22-20020a170907629600b006da745b7b40mr11567649ejc.750.1647069405200; Fri, 11 Mar 2022 23:16:45 -0800 (PST) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id s18-20020a170906779200b006dbb2c2a847sm1148528ejm.125.2022.03.11.23.16.44 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 11 Mar 2022 23:16:44 -0800 (PST) From: Wei Yang To: hannes@cmpxchg.org, mhocko@kernel.org, vdavydov.dev@gmail.com, akpm@linux-foundation.org Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, Wei Yang Subject: [Patch v2 3/3] mm/memcg: add next_mz back to soft limit tree if not reclaimed yet Date: Sat, 12 Mar 2022 07:16:23 +0000 Message-Id: <20220312071623.19050-3-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220312071623.19050-1-richard.weiyang@gmail.com> References: <20220312071623.19050-1-richard.weiyang@gmail.com> X-Rspamd-Queue-Id: 69B9D1C0021 X-Rspam-User: Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=LJ8fzFe6; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf18.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.45 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com X-Stat-Signature: g375m8y6e7moxoketcpju19iu13b4ku6 X-Rspamd-Server: rspam04 X-HE-Tag: 1647069406-630700 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: When memory reclaim failed for a maximum number of attempts and we bail out of the reclaim loop, we forgot to put the target mem_cgroup chosen for next reclaim back to the soft limit tree. This prevented pages in the mem_cgroup from being reclaimed in the future even though the mem_cgroup exceeded its soft limit. Let's say there are two mem_cgroup and both of them exceed the soft limit, while the first one is more active then the second. Since we add a mem_cgroup to soft limit tree every 1024 event, the second one just get a rare chance to be put on soft limit tree even it exceeds the limit. As time goes on, the first mem_cgroup was kept close to its soft limit due to reclaim activities, while the memory usage of the second mem_cgroup keeps growing over the soft limit for a long time due to its relatively rare occurrence. This patch adds next_mz back to prevent this sceanrio. Signed-off-by: Wei Yang Acked-by: Michal Hocko --- mm/memcontrol.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 344a7e891bc5..e803ff02aae2 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -3493,8 +3493,13 @@ unsigned long mem_cgroup_soft_limit_reclaim(pg_data_t *pgdat, int order, loop > MEM_CGROUP_MAX_SOFT_LIMIT_RECLAIM_LOOPS)) break; } while (!nr_reclaimed); - if (next_mz) + if (next_mz) { + spin_lock_irq(&mctz->lock); + excess = soft_limit_excess(next_mz->memcg); + __mem_cgroup_insert_exceeded(next_mz, mctz, excess); + spin_unlock_irq(&mctz->lock); css_put(&next_mz->memcg->css); + } return nr_reclaimed; }