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 F3AF8C27C55 for ; Mon, 10 Jun 2024 17:32:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6CD426B0095; Mon, 10 Jun 2024 13:32:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 655586B0099; Mon, 10 Jun 2024 13:32:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4CFB56B009A; Mon, 10 Jun 2024 13:32:17 -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 290A56B0095 for ; Mon, 10 Jun 2024 13:32:17 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id D8684120E3C for ; Mon, 10 Jun 2024 17:32:16 +0000 (UTC) X-FDA: 82215672672.17.73CFF6D Received: from mail-lf1-f41.google.com (mail-lf1-f41.google.com [209.85.167.41]) by imf26.hostedemail.com (Postfix) with ESMTP id 085CC140007 for ; Mon, 10 Jun 2024 17:32:14 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ogG4iQ4J; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf26.hostedemail.com: domain of yosryahmed@google.com designates 209.85.167.41 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718040735; 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=imSBpkTzzqUmvIsygsJYdm0FauCtvu9Q1kXsJDVsYp0=; b=MxBiooGxrhQwHjl5dcFeFi5/Hmeuv3W4nHmjT6dmaR5xhP5FSh+b7611hgD2AJcaR8FcPn Tr0H/tjKo26jO9rWcU3p8wJPHzWjQQOAKU0w5F/R8rF+iswNH0bNVHFCfJ0+0DA5hqHsgl /65AX8/a1aGwY2NDCHvm64RqAkzfsD8= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ogG4iQ4J; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf26.hostedemail.com: domain of yosryahmed@google.com designates 209.85.167.41 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718040735; a=rsa-sha256; cv=none; b=vrLkzTNUSs0mHsaOgYHMLiBSFMvV/o/fdjwD5WWGmWaZIawHi2iQXmu7J96est9vKq7+XB RdALvuZQizNEbFDOa64nyWZcWgPkRAWpawyiS/Wg7v8RLqp1DanINHrdBV6zjfOyW97r3n 8axz9quwfm5MKD5Noz5Qd0zj04Phtb0= Received: by mail-lf1-f41.google.com with SMTP id 2adb3069b0e04-52c82101407so3346111e87.3 for ; Mon, 10 Jun 2024 10:32:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1718040733; x=1718645533; 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=imSBpkTzzqUmvIsygsJYdm0FauCtvu9Q1kXsJDVsYp0=; b=ogG4iQ4Jisx4vDKaorvPhtsuSWBKWpOkpK2bD/INhZTDYO8yNBdbIU7d2RMxbHAEzn fJ9gOjJ8jDOP/Px3OjZl0OxVx3YOh9nUudRkKMkLEU+f0OtzUuOoGIuwuYJT/UyRSud8 fn5HSra+joocRumAVpNy1euRLgZk/YPzBlzLg2oIDSpb17y6Ugd4SCbJH6nScc1QOVu2 k840/sGrjdqdX6IU1SROPWyZDINMlbCOuknM/JPQKirzr3dzl9ZiR+Qrrt3/CN/Uaf78 CSGBX8wPIIkhDF3CL4BhBs7K9FJvj0wZFLQOSEYMrXmCsnxKid/rrAZ8n2Qk8cBhVc38 h3lA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718040733; x=1718645533; 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=imSBpkTzzqUmvIsygsJYdm0FauCtvu9Q1kXsJDVsYp0=; b=cN4pfVzSve3A4KK7P9FSpD8QtRgQzVKKcLOVCCBjfeM9xhmhLOUBdsYK34SmNfFnBr 30TloIacTcCFUIZiSIqn/LKZYrejwRnVh8K/JatBe7VsyazeN3przFhKM+YTiP4DdtlN gq22BR0rW7NB1rMH0WD/RJ8uS0U4KruZERoonhQV6DbmDW3DmupHDffBlbP4H6d8MC5K jUENp5f+NWMrNaQomx9+5pXph4oGkLokmZUkBtbGdbQolMEZ1SWNCFfvCa1IZChgfO11 F2NmjSOINRUxGwO+5lvmwVUBmVsJVAHqyTdkvEAD/keATIUJH0FHWVfOmGUA8ScXvH53 9ABg== X-Forwarded-Encrypted: i=1; AJvYcCW6RxfNyrYXddP2CiEY/tB/jZHYFRdcXDNzuOTp+k7NgdAQ89aCZIJ3DqK726bUqjOIn7QHK9C7c7pooq+jg6X+jHg= X-Gm-Message-State: AOJu0Yyv0h3SICt9X0BzU7nR0egycUlPFjR8U+aRFv/zjs78dNPAOUay uOez4WF5sGutorAKiK83RgkX/suzgnicxoMG0ixmrmqwz63dPJvz5wenOSLOP3ep4LD0q5jMODu 0YI6BxrJR9x8WM7W98jxvZAcirtY9hay/iuOpZHjQOnfOr7VTEDHjAhM= X-Google-Smtp-Source: AGHT+IFSeNMKWqrQLXEOHa+5P7nb/xJZqIvzN2fuHP58NLsfwKlgg+SFRKV2Ukoyl2SaooUYc/qwxk+POkSzk7Jmi8U= X-Received: by 2002:a05:6512:10cd:b0:52c:804e:e831 with SMTP id 2adb3069b0e04-52c804ee8a9mr6407306e87.47.1718040732869; Mon, 10 Jun 2024 10:32:12 -0700 (PDT) MIME-Version: 1.0 References: <20240610143037.812955-1-usamaarif642@gmail.com> In-Reply-To: <20240610143037.812955-1-usamaarif642@gmail.com> From: Yosry Ahmed Date: Mon, 10 Jun 2024 10:31:36 -0700 Message-ID: Subject: Re: [PATCH] mm: Do not start/end writeback for pages stored in zswap To: Usama Arif Cc: akpm@linux-foundation.org, willy@infradead.org, hannes@cmpxchg.org, nphamcs@gmail.com, chengming.zhou@linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@meta.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 085CC140007 X-Stat-Signature: 7hawokmzsyno3dchorqstq789h6ew9oj X-Rspam-User: X-Rspamd-Server: rspam04 X-HE-Tag: 1718040734-512474 X-HE-Meta: U2FsdGVkX19vweqAOeSYFsZWbKntiT1oLQkR/Pa/hGdh5LoU1JnzgcJ76qi3ZWkqlVG6UuQm5geFvZsLRiC8IE4gM2Ej/RuqVMyBTcHqXTV4V55ToR8m5uG3Z9SIw/lhzuc37vcyWDA3qIW9xKnVuTVhRT27Shv8l5qaQzVl4A1SNR6+9k/k4LmrQrb7nBS3ir/TCYgc1ONWNK3FtqMkvkLXbqk5ERCDTVeyo48dLveE4SEkMFOIdKWSsYAsQoDbx036CplX6Z2YnbrtpPm4fqfPOiBY25BGbGX2zzUVf1Gspkd7JkfiwUO8lH+SPI6lVLGfHT8rovF+vbVTPScKsHXNPH5nhCax6ZTIedGt4w9qiTaiuWwoe2fBBehzAtLsmqnyyeUK9FPSNOKCmZLDAy6cKTVuuDxgA2MbXEPpjWYtU4Gt7/4V4C0KviDU9XQ5UtL+RczvBxKq4q8LMTDx343blUKw4konueFbvEF/Y1ajefcjRxYIRRMIsh/inmKY19/2ylymvZY8ZMr8waJAs047j3+WzdXhogeGIvcH1jk5Ne1qCpHcLrgVIQWoI+af2y6gEjTjhSgEpRmMaIcQoy5F39UpCMPYChOuVLtrhqnIuQxUY68jvFahDnjWddc33OV+RzWseTP7Xn+krkSeYzy6OtWrwUZxEx+W2gNCf11uT+voTj1rISBYtZrpc2S3KBCJvG2Qgs/9uE8ZJXr0ogQTOBvQj8/Yk+6QsjptnZyK18L83D+U2sxfYvzV8dP0sSmMyTQgQ7UJ0DZfm2RqCj5age4sqlA22rSlpeNLDmf/4VILQNkvgak1j84jz0GQnaU1nt7s6rW3GT8WFrkArKXO1q1wTS9tfUnpST1yohJAXfvgQ8EO4hYrAowtxuUG5fVVWLnfbmLOKJwSMLrzU8rvNpZzEV30JGwl+qE/7Z8j2/ZCQPY7xLnt3lYVmDCMw0iY8mG9IMuPQqbdwpb Ojwj9LQ5 xrOQAo6456tRcoRgU0K4HUPQ+cpt5CTV5sccogYgLbLRfgGS6LsL8guxvulFJ8OgneNbp/XujanNAkfM1nsels0szDvzTvfXZi8MC7ENCVrrq13Vcjmk5mhZU+NwxL/6742TOGHepkA+e65jHfXIaRwmN0qN672BA6o1EP74LslKN8XkaMGwthsURuJj4JV+jOWXlsICkk/QHiilywvbxuyrGkjl8s82ggAAsBIw7g3DDBIwhAOGacwOiSk4JYV/7Zrs3Y14IUcBhL81rmAwZCzWfUzEEYdzHK4iOd5/AY7yhxWBU/hV07f5U0lwnJP6PHiwphfgWiVX/7TM= X-Bogosity: Ham, tests=bogofilter, spamicity=0.006575, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Mon, Jun 10, 2024 at 7:31=E2=80=AFAM Usama Arif = wrote: > > start/end writeback combination incorrectly increments NR_WRITTEN > counter, eventhough the pages aren't written to disk. Pages successfully > stored in zswap should just unlock folio and return from writepage. > > Signed-off-by: Usama Arif > --- > mm/page_io.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/mm/page_io.c b/mm/page_io.c > index a360857cf75d..501784d79977 100644 > --- a/mm/page_io.c > +++ b/mm/page_io.c > @@ -196,9 +196,7 @@ int swap_writepage(struct page *page, struct writebac= k_control *wbc) > return ret; > } > if (zswap_store(folio)) { > - folio_start_writeback(folio); > folio_unlock(folio); > - folio_end_writeback(folio); Removing these calls will have several effects, I am not really sure it's s= afe. 1. As you note in the commit log, NR_WRITTEN stats (and apparently others) will no longer be updated. While this may make sense, it's a user-visible change. I am not sure if anyone relies on this. 2. folio_end_writeback() calls folio_rotate_reclaimable() after writeback completes to put a folio that has been marked with PG_reclaim at the tail of the LRU, to be reclaimed first next time. Do we get this call through other paths now? 3. If I remember correctly, there was some sort of state machine where folios go from dirty to writeback to clean. I am not sure what happens if we take the writeback phase out of the equation. Overall, the change seems like it will special case the folios written to zswap vs. to disk further, and we may end up missing important things (like folio_rotate_reclaimable()). I would like to see a much stronger argument for why it is safe and justified tbh :) > return 0; > } > if (!mem_cgroup_zswap_writeback_enabled(folio_memcg(folio))) { > -- > 2.43.0 >