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 21390C10DCE for ; Wed, 6 Dec 2023 19:45:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8040F6B0078; Wed, 6 Dec 2023 14:45:01 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7B4116B007B; Wed, 6 Dec 2023 14:45:01 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 67C0E6B007D; Wed, 6 Dec 2023 14:45:01 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 584D86B0078 for ; Wed, 6 Dec 2023 14:45:01 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 365741A026A for ; Wed, 6 Dec 2023 19:45:01 +0000 (UTC) X-FDA: 81537421602.13.D9CA940 Received: from mail-pg1-f175.google.com (mail-pg1-f175.google.com [209.85.215.175]) by imf04.hostedemail.com (Postfix) with ESMTP id 58CC94001A for ; Wed, 6 Dec 2023 19:44:59 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="g/c5MXwE"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.215.175 as permitted sender) smtp.mailfrom=nphamcs@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701891899; a=rsa-sha256; cv=none; b=hXyaXabwLul2YSmOlz+iTBJLg9doovFvqpt8ETjdYhnXVGH6ue6PiTA+y+9P+YmaFLHiMy MdmgzTwDXZEbvGWMQTGeOErUtsSkN33zBtdlmuaEVA8gRmg6irH883f+TLr7olbDvjMQL7 wHHYVEH6KBqZiRlhzJCr0zVm95mHpM0= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="g/c5MXwE"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.215.175 as permitted sender) smtp.mailfrom=nphamcs@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701891899; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=34Cie9O+2NEe6JD/tiGhw5O8IQAQcami9IqZS5J2OMw=; b=hedbXbDRMdam9sKTaH52wcki3cPwXtNnF5GoeHxEA7qQ2C2ExH7Mltc3ifwn75n0aK5kJr aBTJDhiIXvw2I+7djsizsPXECOjsnqekjCxJ2CirfdEvV/z9mPrfP+GdfGrnrrfFgDcM7+ ZN91s1iPMLxgvrQ6IK39S9h3XCsAiAo= Received: by mail-pg1-f175.google.com with SMTP id 41be03b00d2f7-5c239897895so82572a12.2 for ; Wed, 06 Dec 2023 11:44:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701891898; x=1702496698; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=34Cie9O+2NEe6JD/tiGhw5O8IQAQcami9IqZS5J2OMw=; b=g/c5MXwEL98tozsW9mV2GDpRflyqow0WEv1NBdyJz80vwlLkN0FNoqZcfLsb/TnLqb Xc4BZTx8NRTr0HKqt7SRSJ2BvJLiWZ23yWXn80ZpNkFKbL5FvyJk0TQRGZCnzrRM/bvP wKzy865CT2o3sAy9+MerqSpkSEy6DuQ7Faju12QtE4x45CqLCtbH0mQMwfpjN8ZiUAQJ K6PBj8oF7lcpbCvzsHMWCZlGibsPx2cEzk37q9Kxux9PIZwux34RG0biK0kIanMRlcqQ iaRvkOZc1aMMg5OAzqfcGbuFNXiq/VEkvXyWylgfigIRXiS88LDF22hv1y6z8t69yzVR p09Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701891898; x=1702496698; h=content-transfer-encoding:mime-version: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=34Cie9O+2NEe6JD/tiGhw5O8IQAQcami9IqZS5J2OMw=; b=tAEUc9ZFGw9PI6fwK+t6XlqEgXZhDDhU6uoANJp8d7Hb0TTbC/aiyMCF8GCOiQBlu+ 1VtNSoNDUmPVBhIJgvgg/C8jkLYdJ31/mYYNhv3AdB26kYsBQxEjm8SRq+EmGYQ4Yl28 r/Mb4bsYO0q1Gqv02jh5iw0Y8pDJE8I5RgvfQludGo1kGldT0Fb3mIrAcyx29ios66uN IupFaMgUgIn7NWUDKSAjO8Zwaek0NPfjqEpzRp8hVuUji93/IUIDQZ6hMbRP4hzZX1hr /H6xZwHb6PqbcXiliNsEUWCLz3/xrRYU2/HFnpeM7a7J2llt3kNEUaoCQGcaoaNnO+Md NK9w== X-Gm-Message-State: AOJu0YwmmLgGLXqjGomasneBN2lz4j6skUYa9JOpBMiN9YJoetChxkxN PXaV2hFWxovW5A1cPv/D+ms= X-Google-Smtp-Source: AGHT+IGCtzIwuVYyOHM8v9z5Osc7F7Eb1bhTqHBysTeh63PqYeFOGQLL51YX7AuhnxO6tltAWmC3dg== X-Received: by 2002:a05:6a20:be9e:b0:18f:97c:4f58 with SMTP id gf30-20020a056a20be9e00b0018f097c4f58mr993500pzb.100.1701891898163; Wed, 06 Dec 2023 11:44:58 -0800 (PST) Received: from localhost (fwdproxy-prn-001.fbsv.net. [2a03:2880:ff:1::face:b00c]) by smtp.gmail.com with ESMTPSA id s9-20020a056a00178900b006ce91d27c72sm344920pfg.175.2023.12.06.11.44.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Dec 2023 11:44:57 -0800 (PST) From: Nhat Pham To: akpm@linux-foundation.org Cc: hannes@cmpxchg.org, cerasuolodomenico@gmail.com, yosryahmed@google.com, sjenning@redhat.com, ddstreet@ieee.org, vitaly.wool@konsulko.com, mhocko@kernel.org, roman.gushchin@linux.dev, shakeelb@google.com, muchun.song@linux.dev, chrisl@kernel.org, linux-mm@kvack.org, kernel-team@meta.com, linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, shuah@kernel.org Subject: [PATCH v8 6/6] zswap: shrinks zswap pool based on memory pressure (fix) Date: Wed, 6 Dec 2023 11:44:56 -0800 Message-Id: <20231206194456.3234203-1-nphamcs@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231130194023.4102148-7-nphamcs@gmail.com> References: <20231130194023.4102148-7-nphamcs@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 58CC94001A X-Stat-Signature: n3ecs5ebq94ixrihon4kshymguyiyb4s X-HE-Tag: 1701891899-342504 X-HE-Meta: U2FsdGVkX1/4tzhy+9O9JBVrtmQ3CAirK/wCEq126WbbX6Ja987JlHdE8CcHGQ+xWlxZicXKRPfaFRrp98FuJHbirgx98iRfB2skBU2tPYfBdjAEa1ys7w1EiCoAAtLF0LH4oAN/+fAdks/4yVvblBAdP6e0oNLTRwUXunrlJ8ye1Kr+3WXb9x6AJXQ6/M+aFWGSntnbO41NaiG2C9tDWEmKEedSe+hFuGumgQPTDzMinE8UH0KlKD1c/hCzvkA/pM22+cQHm9GwOcg5YstYVxAagqRhuM8UOcrvLpnDCuraUnZiVmjx0ArfRH2OYqdM/7Zuu+48D9LmEU6cpu2tPQy+//jzl+XjlO0G/d16XBu8axhpXeNeZ7qdjY6MdBxp5Rmejbf6rMYVzkTbDOmGti5gtZe/ffQBTHwMxfACrwDWrYHwLANZtNcO0jJuUscKloa9L9nY4Qg7XYIFXJEvFPg9PrsEepyTuYP3zjdkMTCB0MdkZzE93ff6ZPVoXlJmv6b7hFfoOGP0fT4NhTL5xuXjVFBzqFpKsKqm8Kz6dECaV0qz7aGsBBTAEy02Cwv5OUW9w4/+YUT1tLJUrBUSm4LzkUbaoVBps0KMN/Z6SI1X9Hsb0p5luPE3PeM5R31jY3UP/FpXVwt0g/lh4YqpXy5ehn8WIGH8OYttLbFe8Px/1dTRRsi3pZ2YXY2w3n7KNX40VhdLQg8vDhyeWq5gy6bnuxSMpsME8cuJRW7/sfoeQpuG6aTNxRvPBKL+4YO1HXRGs3WQdMLfF6aw8SKpvSKMKLtvxCGFcXMoC08vI5vPlJvDNmWYOjZ02Sz1T3dmVQFy3VV8ha9U0xKJpFngMjqbHw+XDth1n4f0MqoRodlFImnXvQAOY3y6nD0KzuWuVEMv9wvnb/WjfXn7diPTcyVkxc5QtoLAIfcUJaQJN19+HIN/thWryBT4dYx+6sBROlSzON9TsK6RR9PhdMt D3d8T6PY vH1dBFpjps40B+iC3DGquos0GsIILfds9rnUiIcxAawQIHOL43aZXcU1yVhio4KrM708gugzk6fBllCufI1DPhEZbNGWMcTS2P0rxk7BH2x39P5YSCaXqSPUgVQXF0MiYwE2vXo2veofo2Fc1xrzST8Vl2NgNpTn0mLlFuaa/mj4zAAupSGltAZht0qMbO2WQ8+lxjdWlXdRpHcsZ4F3qDGnCxltWriWETxdoceQLiLPAyVNnjW/sUDnOnALVGOlV4CeXy9ikRuSDB8N6paDK+41HjKZ4+qn7/1J8+2F33IT2XzhzZJaIoTOLyjosGBXP463l+aP8aSdI43f1ZTnxWvxOx6DDhGvCZcr0aZFq9M9vEbsycqGErfT9aDoaQ4vo6xu/4nid6AFFW6LFR2OHr8VuJbPl76DFxEVCb0/MAUYLlG1oq+UYrXTJAM4fNFQD7S2Vh+5k/asRVqk= X-Bogosity: Ham, tests=bogofilter, spamicity=0.009551, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Check shrinker enablement early, and use a less costly stat flushing. Suggested-by: Yosry Ahmed Suggested-by: Chengming Zhou Signed-off-by: Nhat Pham --- mm/zswap.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/mm/zswap.c b/mm/zswap.c index 27c749f6c1ba..d8ecd79120f3 100644 --- a/mm/zswap.c +++ b/mm/zswap.c @@ -596,13 +596,17 @@ static unsigned long zswap_shrinker_scan(struct shrinker *shrinker, struct zswap_pool *pool = shrinker->private_data; bool encountered_page_in_swapcache = false; + if (!zswap_shrinker_enabled) { + sc->nr_scanned = 0; + return SHRINK_STOP; + } + nr_protected = atomic_long_read(&lruvec->zswap_lruvec_state.nr_zswap_protected); lru_size = list_lru_shrink_count(&pool->list_lru, sc); /* - * Abort if the shrinker is disabled or if we are shrinking into the - * protected region. + * Abort if we are shrinking into the protected region. * * This short-circuiting is necessary because if we have too many multiple * concurrent reclaimers getting the freeable zswap object counts at the @@ -611,7 +615,7 @@ static unsigned long zswap_shrinker_scan(struct shrinker *shrinker, * objects (i.e the reclaimers will reclaim into the protected area of the * zswap LRU). */ - if (!zswap_shrinker_enabled || nr_protected >= lru_size - sc->nr_to_scan) { + if (nr_protected >= lru_size - sc->nr_to_scan) { sc->nr_scanned = 0; return SHRINK_STOP; } @@ -633,8 +637,11 @@ static unsigned long zswap_shrinker_count(struct shrinker *shrinker, struct lruvec *lruvec = mem_cgroup_lruvec(memcg, NODE_DATA(sc->nid)); unsigned long nr_backing, nr_stored, nr_freeable, nr_protected; + if (!zswap_shrinker_enabled) + return 0; + #ifdef CONFIG_MEMCG_KMEM - cgroup_rstat_flush(memcg->css.cgroup); + mem_cgroup_flush_stats(); nr_backing = memcg_page_state(memcg, MEMCG_ZSWAP_B) >> PAGE_SHIFT; nr_stored = memcg_page_state(memcg, MEMCG_ZSWAPPED); #else @@ -643,7 +650,7 @@ static unsigned long zswap_shrinker_count(struct shrinker *shrinker, nr_stored = atomic_read(&pool->nr_stored); #endif - if (!zswap_shrinker_enabled || !nr_stored) + if (!nr_stored) return 0; nr_protected = -- 2.34.1