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 98CFFC41513 for ; Mon, 15 Jul 2024 07:33:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7F9C86B0089; Mon, 15 Jul 2024 03:33:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7A97C6B008A; Mon, 15 Jul 2024 03:33:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 670DA6B008C; Mon, 15 Jul 2024 03:33:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 492BE6B0089 for ; Mon, 15 Jul 2024 03:33:21 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 9FAE881435 for ; Mon, 15 Jul 2024 07:33:20 +0000 (UTC) X-FDA: 82341171360.27.B552E9F Received: from mail-yb1-f182.google.com (mail-yb1-f182.google.com [209.85.219.182]) by imf22.hostedemail.com (Postfix) with ESMTP id CF5D3C001B for ; Mon, 15 Jul 2024 07:33:18 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="CSvrOB/K"; spf=pass (imf22.hostedemail.com: domain of flintglass@gmail.com designates 209.85.219.182 as permitted sender) smtp.mailfrom=flintglass@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=1721028779; 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=GB6mgBduP2PALHtsyMGAE3eIsZazmb0VM4xkpaxO1iY=; b=llHs0+cZ8QLBM76CW9T5WdKKNad1eM1eL11E63riY4W00S+/ivcuHxvsfzb2UCTek7w2mh JtDljjSpxNgnb4wMp+un8qtX6tQJMIJhq+qZErx1p5rMz/Pg+yovwsQSzpk8xkXeD2NdqK 6+W9bb/TFREvuFEqXLsKh2u0WlJAfn0= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="CSvrOB/K"; spf=pass (imf22.hostedemail.com: domain of flintglass@gmail.com designates 209.85.219.182 as permitted sender) smtp.mailfrom=flintglass@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721028779; a=rsa-sha256; cv=none; b=iXrhO86ItfJY6gSLaLd9zPTfZ46MOHI0zCSQxJquMsXeyxLadQLmNZdg7BesYBX5yz8SRZ SKYcCd63NgXyZ6Tvpj5xOVcqM0Ve5kOGkfgWLAC/VSEAwUfIshSeI9Zd1JYRlOwC4ozkwP UYLbIeQVbCg/iTx8R9z+xB5IOPQvYZ8= Received: by mail-yb1-f182.google.com with SMTP id 3f1490d57ef6-e057c4885b3so3609237276.3 for ; Mon, 15 Jul 2024 00:33:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721028798; x=1721633598; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=GB6mgBduP2PALHtsyMGAE3eIsZazmb0VM4xkpaxO1iY=; b=CSvrOB/KOEfUBAVk9440YOAyOaWNLti1s5QLKkqnCQmWPucfsSKj/mEngcFzlkxaou bVWXSmodw9h627OZqUEZmOOLuyCRL55jSF6lsrUjkTHwx8GH7QRV+vZO+gbqvMWY9wH/ nHtLniNSqKiD+YNoQP3lfEaK5hDlxxRZHKPROjKsz5M7gNNkqhm5EK3BloFHixppEXQ1 KhQXgEfIL8yQOe9tC+F+597J3i9UQ92Q4tT7Okn24i5bdQIk925EaGSzvOmoHwXhVL0R 8pSUO949naZkKLuM4olkmni3KW/aSt26G7fXtz6iGs63ahnUU+Z6UOh72g8O7pr1QX1+ Ny9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721028798; x=1721633598; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GB6mgBduP2PALHtsyMGAE3eIsZazmb0VM4xkpaxO1iY=; b=JNrLPPNUyp0dbpMutQXaTPKMuG38nDuwShPGOkcP3on7MF9cv8Ia7N14jY9s3yLIqk xE3dpKomlN5YYroSPu14e/FC8PunSyKfFFtmeoSur5APgjmAaSU49bvIm3OFsg0A7iFW cCn9K7mKYBmR95vPhDT33h4INooex2fsftzjpyYOy6mZ044RId81mUrQfVxtnctb87R0 PjrAE8Rz8WiCOutuQ96roix7i6RwLL/INEVmi3vf9X5Dlb4gy36dyYLgLUAArIUG4wjB pr/3Zer53mAiFjXdJ2nWxvzhGH9chlbx9xkwVGl6+vm7atAkwlKWbF3ID587+AvsXdr7 tKhg== X-Forwarded-Encrypted: i=1; AJvYcCUPGAZYzMtDAn+lWI/sxsrJl8pMIfSYQA3kv0dgym+2VgInmeIvl1sYGRUrEDFLTRczpmHlasQiAo9dRE1zx0xdg0Y= X-Gm-Message-State: AOJu0YxPJwElK5Sd/G04rUIDUUurKJpc0hFK6o2ZgBIgaB8xMtVzv8eI y3RTqAZvbzOSkExQFYXtnrm1U8F17Qay03cv3W0OVY4PeuDWFe7RKEv+7xbEpcTOGDnhM6qdS/P o0AaX8JgdLXhrllEOXAuA/glJAE4= X-Google-Smtp-Source: AGHT+IG1jyNDr++HAhaKKVBK3BQ1JTufribeHY6KDIsoK53DdOhOyfgeonYGpLTpASCgz9syqiJvXEpTKmoyb2Wk6fU= X-Received: by 2002:a25:800c:0:b0:e03:6533:136d with SMTP id 3f1490d57ef6-e041b12408amr20545512276.40.1721028797779; Mon, 15 Jul 2024 00:33:17 -0700 (PDT) MIME-Version: 1.0 References: <20240706022523.1104080-1-flintglass@gmail.com> <20240706022523.1104080-7-flintglass@gmail.com> In-Reply-To: From: Takero Funaki Date: Mon, 15 Jul 2024 16:33:07 +0900 Message-ID: Subject: Re: [PATCH v2 6/6] mm: zswap: interrupt shrinker writeback while pagein/out IO To: Nhat Pham Cc: Johannes Weiner , Yosry Ahmed , Chengming Zhou , Jonathan Corbet , Andrew Morton , Domenico Cerasuolo , linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: CF5D3C001B X-Stat-Signature: s3qpck9tgqk7me49qrwtb1a1xxj9uet3 X-Rspam-User: X-HE-Tag: 1721028798-465867 X-HE-Meta: U2FsdGVkX1957tWa9NbYkITsLGGi3RISutaXwNh2qLwv/5RHQUirW/NKt187JZwURlYcHqR34uepfSgI7oD87lUqukSmsBtkIrMcTQjkMMe0UygrA2WM7ay+jtnNaNHep7uKAYDmKrcqo1EFQ4P1dk2Lrq554g6TErgDzXZg9qY+ZizgPJlw0kH4LzF4Bk0aWVUSNNgOhwyh0cj0jReWAgG7SM9kgW8388ATMNet5SaOnAmSz1rk8CxM5w3PJHUGvpasdam6plr0IN3NWlvG3f5yd3IVatWpZoRBCQSVMTqTI4gzWO2/SCekRNPcLDTQntR+w26TWkHAb5q3fvRcjryvMMVVg4gxj4pcadprhxfTrtqFjQqE8lJR58zmKqLzY3AouqJyI1YZdDD8na1ONCKV/jg7VUDqWcoOig3KqJ6j/bEAxe0TlEGXcF56/ymachjxjZqWd5nsbQTXvWk0ETHH36/+OsTPEvxgshWX3fRQo6YfZY0rlOh2o4VMuW9YZhyQ/85x3S910zYvL87U01p9XNfhLspMph8QSgejjGhL+BgljXsFWE5mSGbN1qGKuRtd1J4txVqqZpA7Zpa5v0P51anvMzns20/Rr0xA0BMO1Y30MvYUsEgaAjaMzmOZVKyLTAo2hjUaK/JSmgqdTR1JAiLNd2YBXqiI77W2R3QaMS5ng3eNSZX6LRuWnS9zSOQCI7a03dkcG33ESRTRMU5LEFJ1aazhuLUtAOdERSma/+vxyqUfgKriYOCnysCBNgUSJdwfTkTkCRnacI9cpqewyTWhBNOQ1stSflbj+6N6xZYoWbfeb+i8laAJnAbrDZRZOvWYAKdnfRjJivscyCxFFrLq4JjushncoA7tOydUmxBou1vaBbhZK/tM/9OUUyIeMxEurRwnmRLaUYDd0cXr8TcDctBzS7nZZ9E/+McWy9mLakM5pU5bV4/8+ZVk5U9pk4CEq6dRXyhZuRJ rYxdoIQp NPqrpVBqWWQlXXLew2sJMq7zaF/CvElGZBzUh0GQw/0QiRM1GQ6hQQ3Ex4FlHsGAj2sdUi7qPfeZBN6q0u8PqOjs6ejqDYstgkh/MtKqy3mGSBqdqL8hBep+9omFJk+L+g+/YP4RIEjUusbjhOH3kK90P5aPUqchh7WR9zNjlN93/iwdhVPtF36S4su8ysk0z8iimcgpa8FWNShANauN7govtH3SwcYhq5napCKU2BXeDNwbKlfXmYGPVGqR1cifX8xZ17LaCXmRkVIANLOjsBSYoVOo1OovaEos5Wx+ESFg8aE3CfK8XgeT+PVhmgmtTslVm X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: 2024=E5=B9=B47=E6=9C=8811=E6=97=A5(=E6=9C=A8) 7:10 Nhat Pham : > > > Yet another (less concerning IMHO) scenario is when a cgroup disables > > > zswap by setting zswap.max =3D 0 (for instance, if the sysadmin knows > > > that this cgroup's data are really cold, and/or that the workload is > > > latency-tolerant, and do not want it to take up valuable memory > > > resources of other cgroups). Every time this cgroup reclaims memory, > > > it would disable the global shrinker (including the new proactive > > > behavior) for other cgroup, correct? And, when they do need to swap > > > in, it would further delay the global shrinker. Would this break of > > > isolation be a problem? > > > > > > There are other concerns I raised in the cover letter's response as > > > well - please take a look :) > > > > I haven't considered these cases much, but I suppose the global > > shrinker should be delayed in both cases as well. In general, any > > pagein/out should be prefered over shrinker writeback throughput. > > > > When zswap writeback was disabled for a memcg > > (memcg.zswap.writeback=3D0), I suppose disabling/delaying writeback is > > harmless. > > If the rejection incurs no IO, there is no more memory pressure and > > shrinking is not urgent. We can postpone the shrinker writeback. If > > the rejection incurs IO (i.e. mm choose another page from a memcg with > > writeback enabled), again we should delay the shrinker. > > You are delaying writeback globally right? IOW, other cgroup is also affe= cted? > > Say we are under memory pressure, with two cgroups under reclaim - one > with zswap writeback disabled. The one with writeback disabled will > constantly fail at zswap_store(), and delay the global shrinking > action, which could have targeted the other cgroup (which should > proceed fully because there is no contention here since the first > cgroup is not swapping either). > Thanks, I think I understand your concern. Even if zswap rejected pages, that does not mean we need IO because memory.zswap.writeback=3D0 also disables memory-to-disk writeback... And yes, v2 interrupts the shrinker in this case, which is unnecessary. I'll move the timer updates to page_io.c like this: --- a/mm/page_io.c +++ b/mm/page_io.c @@ -205,6 +205,7 @@ int swap_writepage(struct page *page, struct writeback_control *wbc) folio_mark_dirty(folio); return AOP_WRITEPAGE_ACTIVATE; } + zswap_shrinker_delay_extend(); __swap_writepage(folio, wbc); return 0; This extends the delay only if actual I/O is necessary.