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 8C65FC27C55 for ; Mon, 10 Jun 2024 18:11:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EAF336B0099; Mon, 10 Jun 2024 14:11:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E38956B009B; Mon, 10 Jun 2024 14:11:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C8B0D6B009C; Mon, 10 Jun 2024 14:11:37 -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 A84AF6B0099 for ; Mon, 10 Jun 2024 14:11:37 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 58C8FC1181 for ; Mon, 10 Jun 2024 18:11:37 +0000 (UTC) X-FDA: 82215771834.20.A236BB8 Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) by imf21.hostedemail.com (Postfix) with ESMTP id 4DA111C0009 for ; Mon, 10 Jun 2024 18:11:35 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="HN/ll/XQ"; spf=pass (imf21.hostedemail.com: domain of usamaarif642@gmail.com designates 209.85.218.47 as permitted sender) smtp.mailfrom=usamaarif642@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=1718043095; 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=uBitgYqhRpDDEUtVM72CLTY5WJYHc8q6oeiiPInU5GI=; b=IwoqTh+PdCLlyh3PVK/FYNcDmVLt0ah99cGHl436lw9s1Zblv/MvIX86F7eKPdffx641FX XIDIWekgfOHvZIeUMwsnflaBfh5xFRcQ9xjL0X4sPwKCQBKQX6tuHBy0WxG41nIBuormED 9RXSWiHROQHDNn2HIX5VyFP9yJ/pQc0= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="HN/ll/XQ"; spf=pass (imf21.hostedemail.com: domain of usamaarif642@gmail.com designates 209.85.218.47 as permitted sender) smtp.mailfrom=usamaarif642@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718043095; a=rsa-sha256; cv=none; b=D8F4y7hnVUBKgZiFIODMPm8mgFVPvNmcB1M8NwvxYgO/2ObzpK/D9D7/x8WmZv8WSXdUi5 WBbVKVnzINwX8mN/g74H2fnFHr+N2jfmRuWuw9D64tSOpnkHiyPb0WlKXUeYgPMSSjE9k5 x0bcPVJRXfHqvvrlVnzBT6QFwZ1GSUY= Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-a6ef793f4b8so302209166b.1 for ; Mon, 10 Jun 2024 11:11:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718043094; x=1718647894; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=uBitgYqhRpDDEUtVM72CLTY5WJYHc8q6oeiiPInU5GI=; b=HN/ll/XQTCKQirD4/dktcMFCGrVBR7ekKF8otlFFDB9dIosZ/GNKEL18B4CSVKVFFY LMx8FmEkTZZCFty35IKewhm+syqVBOFZEoZU34bc/APSbwgIwU/k/BGa2rQuOtrENjmZ 6pEVOfHS8S/WuH1daRea7EuJ8aSaxUmjgMj7A7bCjE2KcTUMk4v8RvVScLRLAiBSrWZc wJjmouv3533bRD4qHyU0Psk7MN/38a8FhOl79QoJc6hNsH4jxM3bcQChMUoz1TziYWXf 44phSXAd+T0OBbshmBBJQCQmjP79rU0mhRQ975VwXWHLR+/v3f0ySYkEqlHTUMP07Vcs rJyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718043094; x=1718647894; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=uBitgYqhRpDDEUtVM72CLTY5WJYHc8q6oeiiPInU5GI=; b=V46osgC72zRs1weF25eEh1kI1osI55op7zkX4Fej1kfuqMeLonB1nMVtG8hbR5LrcH HuuvA78zgOIof/zrZ0YhycdxIm+BvPk/+0wVwA6M4bQdPk/fhhB1STWkvNvkwLdtg2u4 9a+S2wfT/Oyvtf6YPkf9viSiALB3ksF3x8cQUaCpnTXGbWovEcnE1+b5GSu0bbq8TxEK 4OuOjP/8i8dxGidhtIR23CJnYiMEOUYyFkWceF9ApSpnlxbjNMD8O4VephH68+r8Ym4D t1XIcs/QNCEbQbPoXewCmiTpxzkl9ju2fn+HiImFApFbseKyTUt4xOvsvjmfAymopSAx 439Q== X-Forwarded-Encrypted: i=1; AJvYcCXR72l6LuxjbEnqBSSHBwMhQtrEw4gWphXUmx/wBNaeuziSYhOuSEU43rxngk37z5R1YyCXPWxyzDWNdahOZHSYfdU= X-Gm-Message-State: AOJu0Yxnft0sqmEZ1YQuQT4UC7UXSMHmwIQ4mFTKBUHEgBvdYGOdFuaO AXdNLMDlghwMkgDM2K1PCVbrCVO3wDoSZdk9CCJa1CE4X6d7Q7jXmCfLfCDEbP4= X-Google-Smtp-Source: AGHT+IF0Mv0XUMU02EjNpOe4jzo3/oQog3zMX8x5oxhQnWrjVqr23TsNAWgjjb/P7RTBR1dMgNbzTg== X-Received: by 2002:a17:907:720c:b0:a59:c367:560c with SMTP id a640c23a62f3a-a6cdb0f540fmr829869466b.60.1718043093459; Mon, 10 Jun 2024 11:11:33 -0700 (PDT) Received: from ?IPV6:2a03:83e0:1126:4:eb:d0d0:c7fd:c82c? ([2620:10d:c092:500::7:493]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a6f27837769sm93827866b.34.2024.06.10.11.11.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 10 Jun 2024 11:11:32 -0700 (PDT) Message-ID: Date: Mon, 10 Jun 2024 19:11:31 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm: Do not start/end writeback for pages stored in zswap To: Yosry Ahmed , willy@infradead.org Cc: akpm@linux-foundation.org, hannes@cmpxchg.org, nphamcs@gmail.com, chengming.zhou@linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@meta.com References: <20240610143037.812955-1-usamaarif642@gmail.com> Content-Language: en-US From: Usama Arif In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Stat-Signature: 8a5xhfg8a1c9k9e5emujqdz6oa7ybi6k X-Rspamd-Queue-Id: 4DA111C0009 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1718043095-406968 X-HE-Meta: U2FsdGVkX1+YOer2a8jIszr8AYLRYlKPwSyDcfvQ9cCrUwtJa7XtP11hkdFenDrpyXE5LfRAdNpkMRw6eRjOid0M4gRPa/vOKAi+T5O7p8Af9CmH3irXBLVIlZcfJUgWgVDGeI7mOeMY/VL6bFUqCt/2UzsaAlhR31U09vf1kzxmmmLQHvpu7/tdYv2EEGcXfoY2a6nOA+l8aK8nenmI+n4UnBYSL/CDNJ2pXYggR5Llk/MqWNP2xJeAKWgmMRUfrQOKnqo7+/bx3UD/c6wFz7v0QaZWKjhf8z0L10Kc/EfuJZtgcwW3IpIB/lG2WxbEQ+/l+VJv8MM4DjlVL/9YZNvDw7ofOzxLbhl+t30VwkeOZlmZibm8WY8Hlh9ncudQcb9buYOa7uBgrFOYSlousqw0cmkOvuFwSYKF3YjOsAZEDPl2EaBS5ODVkG2f7v2wU5PhKYqv5Bfbcg4+wVuyg6Bw5NOayjePgky61rZ7uxBrFvGFHOUmle2Vuu/W6AsTrvcgnWescKqZ7rHyJ3kBveoIAJErI4BL83WKD3+ezoYBEwK7sxc/Aes+K2jScwRE2P0yRs8xQ3h/g9Z0WdVwuHQV9PPHLGjtbizUkFvQPTZ20RayuWbgh8S0PdD2c8tt8EgAJXdJpARWYanAJwZR6GrCezx89RCB7PgRvg5srHL27LNSVDo/tzkX9ZlRYZUpqkcoR83Bb91ChQoxvZGakITH4YOvLmLv6Aks5wngg+GdQoe13/9xxXVbmCOso/WvGUPbmfrEdr+lS7PiQTaU9oe30fU/G/GM8O2lVZUsip3ahFgd9zU/CyctXG3XRcKpVOOjLk7hgDBmd9LVj9aQVnixshOGGcbHsCGP9Cy8RNRUxz5pSxeHOLlT/VUQzagBlaftoNVPSTFi0zM3MEpgl70LGz3ZRmaQuGp3RAFLOIVObQnlmMB4xo5YoTh2rAuC6HzAb2OIKDSIGtaY3lb CROT5+Iv wyApFCZtlY7zmJWdiMvlGeY+tP5ZZIQm95ZlHyEbyoIUxaK9gN+qXe7Lc485ypvU2H9F8MFxOpVG4/vu8IfMyM3TseirrG0+OW8qj6KimZFZEq/FqVMSq/q2jBADUcBpe2PmDJMiGIHBxtnZ/SZpTknoucheu7mkBxTz56GgmiOGyZmgU3yDOIFWdagNOmvFLqIt+lZKIU0VDNORYmXIZxCRFeO5WwS8T+Wul0cqltWRu+mguoqvAacxCW07/xlXptksOnX/7dSVde0d8Tp6h6Yju5FjdlE+sN+rv0ZvSTUfDBlxHJlGyOxldjfsh/W+fRDD52gRpY9RLonM3o2QAS79Rs4bENWPkBoLD3d9TKTlSm3RHCHiUVFmL8aJ9o7HufKqf8rkCP9GGYBqEIAW4SdVNZHKnwrS0OpJihoMdhcBwHCR7m80vbuzchY2wU97qRUK6LCSzriGGuBGX/3VFdl/YOvSlOpDs8Jw9l3u9DBik/wHmMr0Jg1l6FUO+fWwxRJf4Y0/KsCf43ZeGYB4Ny6y2j4n4ajQTV/Df1eWdarS2/DfF5s3t6Y5onFl1MBXF2ef1e3X1Ci86Fkh5nBG5fo13xqO55B1wICpavcbq0xcwuuWAE/aiq0hjXhfRnC4OeuUGJn9bSmh1rz3IlxYAzwY10Rx0J544IidpyNrWWXhXUIvsTUKwrOOGQw5cLGj5IuCAOTr7CaJz5UU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.001644, 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 10/06/2024 18:31, Yosry Ahmed wrote: > On Mon, Jun 10, 2024 at 7:31 AM 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 writeback_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 safe. > > 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. Thanks for the review. This patch would correct NR_WRITTEN stat, so I think its a good thing? But yeah as you said for people relying on that stat, suddenly this number would be lowered if they pick up a kernel with this patch, not sure how such changes would be dealt with in the kernel. > 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? We could add if (folio_test_reclaim(folio)) {         folio_clear_reclaim(folio);         folio_rotate_reclaimable(folio);     } to if zswap_store is successful to fix this? > 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 :) > The patch came about from zero page swap optimization series (https://lore.kernel.org/all/ZmcITDhdBzUGEHuY@casper.infradead.org/), where Matthew pointed out that NR_WRITTEN would be wrong with the way I was doing it. Overall, I thought it would be good to have consistency with how zeropages and zswap pages would be dealt with, and have a more correct NR_WRITTEN stat. In the next revision of the zero page patch, I will just add folio_rotate_reclaimable after folio_unlock if folio is zero filled. >> return 0; >> } >> if (!mem_cgroup_zswap_writeback_enabled(folio_memcg(folio))) { >> -- >> 2.43.0 >>