From patchwork Wed Mar 19 06:41:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jingxiang zeng X-Patchwork-Id: 14022137 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 18B28C35FFA for ; Wed, 19 Mar 2025 06:42:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 21546280006; Wed, 19 Mar 2025 02:42:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1C68A280001; Wed, 19 Mar 2025 02:42:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0674A280006; Wed, 19 Mar 2025 02:42:34 -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 DB9CB280001 for ; Wed, 19 Mar 2025 02:42:34 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 187F51219FB for ; Wed, 19 Mar 2025 06:42:36 +0000 (UTC) X-FDA: 83237357112.11.5BA1243 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) by imf13.hostedemail.com (Postfix) with ESMTP id 32E7B20009 for ; Wed, 19 Mar 2025 06:42:33 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="ORex/N5D"; spf=pass (imf13.hostedemail.com: domain of jingxiangzeng.cas@gmail.com designates 209.85.214.179 as permitted sender) smtp.mailfrom=jingxiangzeng.cas@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742366553; h=from:from:sender:reply-to: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:in-reply-to:references:references:dkim-signature; bh=eDGgoAuFU1j/4cPuHxdFsXeRUQzRKuxaJDEI2tA88sE=; b=IwKxQgp0m/b/LO2Acj7y5TQ3yRHSjnUKnxjOztIkmYYqdq+71xQvvkVNOQGHzd7M+mejNb HMppAUVvrWcYDyhI27iqvdj3mjMzHS+E1i/Rt/J+8x+49fuqtSbFC1H4c5JRrDcmiPbyLY AnW5M8Cx/W2xQCmvecGPiBelJHxzKl0= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="ORex/N5D"; spf=pass (imf13.hostedemail.com: domain of jingxiangzeng.cas@gmail.com designates 209.85.214.179 as permitted sender) smtp.mailfrom=jingxiangzeng.cas@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742366553; a=rsa-sha256; cv=none; b=ij9WBaBcnaCE5CXuIUnAah5smk2sLPCtSX5W7H9YupVBNoQcQfUrt1qwKEa236RsRU3HFO mwRhTrcQmAH1QiEOhqsImD5r42DuQrQiGyGTWehupaQFCxQJaJBtHKFtBMaMu6u01hbHHE u2cFdChHRjxk4161pn9Ke6ehcvB5VxM= Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-22548a28d0cso24194365ad.3 for ; Tue, 18 Mar 2025 23:42:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742366552; x=1742971352; darn=kvack.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=eDGgoAuFU1j/4cPuHxdFsXeRUQzRKuxaJDEI2tA88sE=; b=ORex/N5DP6hoSvXJ41pyf6Ql/kql3Gi4TQNWjd4/uFSMB/nTNbZBI4aKx9qSYz31E/ 4/033v6xJyKZIWyrztRVrvaGlKwYVmgOGPPYdUH4BadSZeYfgHhueoybQpQLUnxlF1mQ 3tns4MjWLbJA33iPfT72vFxC8Eb9tWgzVZu+ItL9sXeqF8M6yOfPDUpMYtaMNIE5zwhO BwENWdTk0abFlJpjdDSEdNRhsiJljhH6IuzvNP85ZSZLfb2fxSTF+t6IJ0Ed4OSYEllW avR2OASQcT4k3rwhrf/7ET2AYkl5QgmFzPL9BoICwBGmE5bYv+kQwGVlQe7LskZUkD4U zaew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742366552; x=1742971352; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=eDGgoAuFU1j/4cPuHxdFsXeRUQzRKuxaJDEI2tA88sE=; b=Y3eVDm/P4/zATdzvsKSVVo2IkBrrXDmm1rI+pUWRbEd5k62rq2C+R+8Y7XXMnOxvag 54CzG4C12mmipFNPKOZlWFHLv7CUC3QiAr6u7HSiIxnFwHa9ONaN6OqBIYujA4rU6UA+ i0xPoA/bSrG9ro93mg4v+0PIml+tb015bV5u4tfdTiHz1KdjXdWs6MIkV5Im+TmDkYYm RLO7FNaMcszrF1PliN7KKxQKQHP7pAxAgr9FHaWOq87AUjy1tJln+mb5FaH1OwB5YWYN 2HqnCaQEQoy4TeWtOmYvx1Z9bef1maYWcR+PZM/ww6PgQ8VbDVO8mUYrJ6rdsAHbDfmM n3/w== X-Gm-Message-State: AOJu0YyqSIH63g8ITWbWGGg9rQrlp6HEUwoUggIDc0FIToAo5eYrRAtL 9FOKHjiC4R3NE1rgGpYNoodLQ5zpEOSDarlPU8Wb7l+WeRUMUD5Y X-Gm-Gg: ASbGncsH2WFb8FONNSBTT6qPdvS+kepbrK8gHUlaBCTgfDN6qs0ndgSOJkigM1cQRLB PY3HJ1H+teq/JQnmirv656gzPbMbsgQwuQSfEwVLMlRnUMHCXeDlaVi9OKPtl2OQ/cmQVzgIqX5 7O4kujUnQSoIRAZbJISyZ7cFhhZ81jGyGOENOBZheHZqLuCUGDDycW23HZFLS+rdXB0i85+gdQ1 LXOPAq2+GvDny+hDZtoQiwZ7PTBSSHunvZMbEDzclLGvEiOhsOZvrcPyrgI0P8r5qYUAaxsNzXC 0EdeQ5wsPeOBE+IL6PA7OZm0TGFU8nAg2/3EwrfeLk5xiefRRlVtCpJUtaLYhKXqF1aAD0f5fcx hVBkoeeFBnmlc8Q== X-Google-Smtp-Source: AGHT+IFAyKOiSRtBqjl5fZO4kWvi3a/4Npr3QIWJv0iu9jfu+/+dq5oOshJJhEmDYcMoWP8ZUFn2hg== X-Received: by 2002:a17:902:f688:b0:220:e9ef:ec98 with SMTP id d9443c01a7336-22649935c2cmr20608265ad.19.1742366552101; Tue, 18 Mar 2025 23:42:32 -0700 (PDT) Received: from localhost.localdomain ([14.116.239.35]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-225c68a4876sm106191835ad.70.2025.03.18.23.42.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 23:42:31 -0700 (PDT) From: Jingxiang Zeng To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, hannes@cmpxchg.org, mhocko@kernel.org, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, kasong@tencent.com, Zeng Jingxiang Subject: [RFC 3/5] mm/memcontrol: do not scan anon pages if memsw limit is hit Date: Wed, 19 Mar 2025 14:41:46 +0800 Message-ID: <20250319064148.774406-4-jingxiangzeng.cas@gmail.com> X-Mailer: git-send-email 2.41.1 In-Reply-To: <20250319064148.774406-1-jingxiangzeng.cas@gmail.com> References: <20250319064148.774406-1-jingxiangzeng.cas@gmail.com> Reply-To: Jingxiang Zeng MIME-Version: 1.0 X-Stat-Signature: jm5afuuy3yxscgp9ycg4a5ibkargo3ui X-Rspamd-Queue-Id: 32E7B20009 X-Rspam-User: X-Rspamd-Server: rspam09 X-HE-Tag: 1742366553-123755 X-HE-Meta: U2FsdGVkX184FnNhFEWt1820B/2dNndkDe8Az9okN69L3hxmzAy0RUW/t/OmJp6+MYOR8/OBhZzGu0R+brI4p/sw45f7EmqcTQXGZBlqlffdF4ExyZRoOvbIOvYTq21Jyqs+nYb8j06SGMt42QJAAzZQirjAzI3dLSfKAtpWFPsaT7quPWwKnSYflFqEPRU9haaUWUFNRtwyyTzgwfiU6pbuE6FuLH6jrItlRho6rOqE/5eU3sW+INWdRdIlpvahPsdjwyduDQ9yKO40goV3DvQ0HLHghd8qRXBB6Mq/iNxITS8vwykeIgEBhIu1GjgDATC00IeSLxNo6GenVGwYMqtNhR/PR8lzpfI5YEiVN1r0qD3Da/Q5t5LpScmLOvHGBgFeCLQ4a5nCsiUDWZ8N8heZiOf3qPKAs4V2BZhjcQxQ08vB2rRaqmdMqwPAuYaEmyiULoBQ53kOrOYchzu5l5P/2gt81fz4k5g+nm6JfK1GvBtpNr3Fip7U0ZqXEsF/p2GG75S5oQBA6+/ckB/AUVE7xAk5qH+452muv/KxAPZ48Wl8miLJN9GnaVNCfGjQUuA5dTkLFmkbBdvYCGcPY3KSGJQ1FCmxJKngVKM8hQngAcsEG9VMfA1dn5NrQA20TioUn83x6UcdBOHmEd4AgnQN+xYR8AN231uSUnE8TrRYbkf7/U1zkTwHF3tsgFeJNOjxlMj+N5Tf0SvpJTUR23KxSteZlOyQLT0MhbM/D9eeRsRYTXT4pAR3CmGNVcZd89tshT2sujrth8aNjGghkc/fkTMrkZNnEkljJcuPt42f99jM4ITusz4c9rD5ZUdpE3E7IqmAHEaXhQxBD4b+0vgngGWoj9tqX2YM4hVecY3rOQqA/tzwJBdpkdSlysL3jrCrqrcIiMzpwaw7ylHL3tk5S0zzWU812bXE8NULOAgn0k6lv2Z2v7zFpg7b3C3qLE8/BxglPXoBAelmrdZ hTAhivSy 1c35YhQO4dFThX81gEi4xaiRsEQy8po6NXp4dJVzrrFUmPycWwgPyFvJeIaJcM6FSUwJSqrDEV81vKu9oqeXbB4mZDsUcpTTZsy6kvg6iNaS9hRS2iPFpd2ZMymLvMx50+PWlVXox4nwjETL7mNS/tmVRRQFglHPNquXWjkexLs55I0TLKUdxPcjhqJjlb45OLWSs21+sE7af3GmjRKJ+oe7eU6IT8v+8iI2NMB4KlcnB17LmQCJh7+H2gRLEJT+HfrW4W5067niZRY+0pgIenARJST/qhU8Qu2R0o9mTxFYUwlAkEdPs/JRgAZTe7078NALLVVVz2Lm7Lmrl2903843fZV9iN+4GBKJLWIZeBs+unxdg2HrYI0Hac+s5KHZRR7EgRt5j7PhFQF4xgYoh0B+x4CgPn7SyPDck9SXUwf916BGaHtZGcOmF01SfphFf4hK//H664kCs/7TXzTO1RAC4O0/ufGZj2F5nRi/itgc+sPItntG78YGmO3RNopKl3Mzhwk/FkDRIQ5rNPBsNr4V9RwzCwKXIFBHvWe0EDH/iFwWxbZtw40o7A3GMCR/R6m2pioJ8YGmWe4GObFsB6+Mz7ItLrif4mxsy 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: From: Zeng Jingxiang When memory recycling is triggered by the hard watermark of memsw, anonymous pages do not want to be recycled any further. This is consistent with the processing method of cgroup v2. Signed-off-by: Zeng Jingxiang --- mm/memcontrol.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index c1171fb2bfd6..623ebf610946 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5072,14 +5072,21 @@ void __mem_cgroup_uncharge_swap(swp_entry_t entry, unsigned int nr_pages) long mem_cgroup_get_nr_swap_pages(struct mem_cgroup *memcg) { + struct page_counter *pg_counter; long nr_swap_pages = get_nr_swap_pages(); - if (mem_cgroup_disabled() || do_memsw_account()) + if (mem_cgroup_disabled()) return nr_swap_pages; - for (; !mem_cgroup_is_root(memcg); memcg = parent_mem_cgroup(memcg)) + for (; !mem_cgroup_is_root(memcg); memcg = parent_mem_cgroup(memcg)) { + if (do_memsw_account()) + pg_counter = &memcg->memsw; + else + pg_counter = &memcg->swap; + nr_swap_pages = min_t(long, nr_swap_pages, - READ_ONCE(memcg->swap.max) - - page_counter_read(&memcg->swap)); + READ_ONCE(pg_counter->max) - + page_counter_read(pg_counter)); + } return nr_swap_pages; }