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 7DF3FCF9C6B for ; Wed, 25 Sep 2024 14:27:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E4F7E6B00AD; Wed, 25 Sep 2024 10:27:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DFF656B00AE; Wed, 25 Sep 2024 10:27:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CC6CC6B00AF; Wed, 25 Sep 2024 10:27:50 -0400 (EDT) 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 AE3CB6B00AD for ; Wed, 25 Sep 2024 10:27:50 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 495B980CED for ; Wed, 25 Sep 2024 14:27:50 +0000 (UTC) X-FDA: 82603489500.02.79D7E75 Received: from mail-oi1-f178.google.com (mail-oi1-f178.google.com [209.85.167.178]) by imf15.hostedemail.com (Postfix) with ESMTP id 43CF7A0006 for ; Wed, 25 Sep 2024 14:27:48 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=MHuWaeGB; spf=pass (imf15.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.167.178 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (policy=none) header.from=cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727274407; a=rsa-sha256; cv=none; b=7PCOLvuaE9zWJKZzRRtFb/ZKUKz4wcBE9ulW7zthiQ0CGM+JeqDqvlvrq2oKRfeRZFEn2g SZ0++nnJAQcs1IcqLLeHVAxSAYWt6XSPVRfxOUtoKqCJJ55XiSeq54QmSURlNKWh4s290V kvVFiZF0b0ylAxUR39oGZs1NER3W11s= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=MHuWaeGB; spf=pass (imf15.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.167.178 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (policy=none) header.from=cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727274407; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=J9xuDs0O2NIXp8UPqHHqSImvA0i85ajjStdE4N4dJtc=; b=qXdaFt9kuoZVchKyCY9kGu0O4H4E4ArwXRT4+37BieiKVHy36hZZ3vhCsqpuKCHBXWwsvq 74RC1oUtB5KDhlAwkk2LQlaYForY9EDBSaX93jfzwIycv558nvclXGMmjk4UfTsB1FOWiK FlJ7sSa7CBb1oReqJn2wB5Ul9ZSg7Dg= Received: by mail-oi1-f178.google.com with SMTP id 5614622812f47-3e28ac7b12bso1978369b6e.3 for ; Wed, 25 Sep 2024 07:27:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1727274467; x=1727879267; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=J9xuDs0O2NIXp8UPqHHqSImvA0i85ajjStdE4N4dJtc=; b=MHuWaeGB/JnSVoLJ/U7zIncWioyLjkhopX28oKxo8ef6HVYYevq9WC7/g5MikVmtFb 3LTlhXeV3cBSE3muF83LWux2qVI0EQttLtdqGi0i+RKkQgBibqYN3pbQG7Nj0zk/0ulL cokJ80I3sJu9/HCgNCgktjg6diAW6t7Z6x553jV3dUFS2KaVw3knT9yPWyAdakzH3iT9 mZrSfzJMZph/0f7xVEX0EBuU8pEw8bCGATgN133tduNb0d4We1LQsJuLfdFSipQXQN17 Vn0ioVJ8LLFJ9Y5O1VMFBCm1tjrGRXsD6EXs6fe6Ong0pI1rFPip5iwKL+ISEHOfhs5O jOng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727274467; x=1727879267; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=J9xuDs0O2NIXp8UPqHHqSImvA0i85ajjStdE4N4dJtc=; b=PeBmCHUrQ0VFuwWZivyRJGMxLM7vt+33JQwylA7YtNg5g9KtT5vHiaizuYxyEPqT/E xOlUQ8dQ4EzL/iOSR6bPEgJ+xhj+2q8iCLHgg8QRoXGx7g8sRojDJ46VerJfTz0UObph g57bSlbGmGwJojE5HacGdb3QYOg1ap/GvFpC4jeq+TekLFH2g73cOZXLzKKIHGZtwaZB U4d8h8MtWQcVa6/9PiNTPDCsMwlNnBESEM5LGIVj5YTFjx/kaMpsXTgjQ4TuOVS33Sn/ 4VgnA6FPcQ16L5koe0S5wFYw7XhOmMHz6dzX5jVxwdMCycYGYCuoM3gMznGqUHhFE5wJ 8Ukw== X-Forwarded-Encrypted: i=1; AJvYcCV9OmipEc+zMT6dcOGSGg2pAErSd4AUamBuRNcx2DedSktbhj1G/iINWyhGJ9hERtXbo/U2RRZD2g==@kvack.org X-Gm-Message-State: AOJu0YwznQ6NzXYYVsD0GO7Aa3/qeBn2tKnC3mtWNYx/oWmSkfnq+7V9 aUMytSHUwpTupV17z0nmp5SGYl48uKv6glLAr6/4gOLuiS6oEGlNKDxWkW22nh8= X-Google-Smtp-Source: AGHT+IEaTCjLpPOwjeSEBlfUhCYq6QmFy5hAPP5pogiSTL8OV99sTcjYg3h7Qxvi1xGvnwwxGYbXtA== X-Received: by 2002:a05:6808:13c6:b0:3e2:92ca:92d3 with SMTP id 5614622812f47-3e29b7d23b1mr2090942b6e.34.1727274467067; Wed, 25 Sep 2024 07:27:47 -0700 (PDT) Received: from localhost ([2603:7000:c01:2716:da5e:d3ff:fee7:26e7]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-45b5257af1asm16612941cf.36.2024.09.25.07.27.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Sep 2024 07:27:45 -0700 (PDT) Date: Wed, 25 Sep 2024 10:27:41 -0400 From: Johannes Weiner To: Kanchana P Sridhar Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, yosryahmed@google.com, nphamcs@gmail.com, chengming.zhou@linux.dev, usamaarif642@gmail.com, shakeel.butt@linux.dev, ryan.roberts@arm.com, ying.huang@intel.com, 21cnbao@gmail.com, akpm@linux-foundation.org, nanhai.zou@intel.com, wajdi.k.feghali@intel.com, vinodh.gopal@intel.com Subject: Re: [PATCH v7 6/8] mm: zswap: Support mTHP swapout in zswap_store(). Message-ID: <20240925142741.GD875661@cmpxchg.org> References: <20240924011709.7037-1-kanchana.p.sridhar@intel.com> <20240924011709.7037-7-kanchana.p.sridhar@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240924011709.7037-7-kanchana.p.sridhar@intel.com> X-Stat-Signature: bypou5certca3a7fr9nz4huxy318dq6z X-Rspamd-Queue-Id: 43CF7A0006 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1727274468-655323 X-HE-Meta: U2FsdGVkX18xAeSDGS0UbBwliwkTIpkTkvbPyNdu2M+7Sx5TeURwPxvKwoZ4sQI9OoX6KcUdZ5gDbD9eWmJvYFy0z04awB3pmjy/aioKIluJk1luVT3ajPMtNE4I8oN168KXZmTEHjOJGWg2zxD9w4BFeEVO3fApPYJi2mn2cXRKtHmB8f6B+TERc7lmrU95gs5HSzJ1sm6UqVnBOyyFSLWjTdu7eQpTbWpNFznVCHSL9d0Kvbkwx88JT0os7icmyl/ZHgsG85qAV/MxQDvUUSN9GJksFem0AuZ4UxvO4GNtR5q56r3PxspFItx6PYt+YNKrIxOL3Opu7uoXNaA8rOpz4S3nJ45ZNDY75OfKdttErQx0cAU7vMYJHCUcCTHRMTkYjJ3X3kaJcjsraUuLbr2K0JvKuw//lC78SiuMrXiwL1rwDBcgYthAsT34DGj+PTV7cNT4A7/U+eQV0vGB5qLLrt4o2Ys/SH7dbIsZm9e5DwbDaBFLv95JngbWKauEIJqcV+rlhm6/XsR65i+Zmu7n/auCdI0O3V9uqVsmIk2w2Pj3uyX5XrE09nAzaRaokuAcFA9ZuKYIVj0WzoPuRvUc27Q6zyNpXhCrBO3xpBKeCjVlWbC23msCzL4l70t+eP7GbMiPPJpRR6yLwVSGn9MZFA7SdjP4yoA9T5dVN7/YOFLa1yFdDA0bDcUpkmy2O9Ich8E+jYFF8YOJnXCCqoJgHzIrsEx3nDhO6yN36oXhAXG4I9RZXCgBUPU1Xf9aX4H2uG8pRlQwmjwxYeF0C79RAiZXemzdQv3cm9oxAeeHps/XCRnLMc1k4XFXUADBhnxSPyeyH2HnqVs9/VR3SXUc1vl76+8VKlgEq+54YF8qCehgiB+/9kgkcfHw53MTr1Wocqn5PTVncI+574RGwqz3eOovK/DGoVW3bnaoTtzrvDofkBmjUI7WK9+vxmLoYtgZ5lbDVRWZQ9rg/Is wCshiQW5 lHaf3EuzvmNy3UyB1Iv5jrkELu1zGEW+4hU6xK1aI99/2bK44NO6idGhG+Etc8oC/+mltst0ZW+iH+MYhonLmJfApXYAv8MyHTGX8qLrnsXSV1kXIjclPfjtBRHoRFJ8uHTlfiLzsWmQ9Ofhda9880PbF2773Ckcjdyx6W+Yo0PCghysY27zAKeakHOjGSyozDSiUkhWpLW1d5+RxxtU+vDr2UapYqsOEsKoKucnMsZnBLJkleyaThDt5B3oRdFQeevZX0O+xdl4lfxyR6afdA+KTzgqRFr32HF/AfeznPmGGQG07JrIV0a8MqO2Z7Ez9AiD/dTMeEFwxlMKs+6OE6sPr4vU0mSXz/PWzfAENnUPBBOljWu3VLfG5CgpR3KNDi/GkFFm38d8Vv9qqgP+7s9WS4MvIVS+8/+JNsya/GXBinjpRYI/4e8toJjYYykVUyXSGhi3GGB19GcWC5ncSjHE35KprbpSj/O/wUhD8w0sH054akUP5dUkGsM50SeERDpO3 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: On Mon, Sep 23, 2024 at 06:17:07PM -0700, Kanchana P Sridhar wrote: > zswap_store() will now store mTHP and PMD-size THP folios by compressing The hugepage terminology throughout the patches is a bit convoluted. There is no real distinction in this code between PMD-size THPs and sub-PMD-sized mTHPs e.g. In particular, I think "mTHP" made sense when they were added, to distinguish them from conventional THPs. But using this term going forward just causes confusion, IMO. We're going through a big effort in the codebase to call all of these things simply "folios" - which stands for "one or more pages". If you want to emphasize the "more than one page", the convention is to call it a "large folio". (If you need to emphasize that it's PMD size - which doesn't apply to these patches, but just for the record - the convention is "pmd-mappable folio".) So what this patch set does is "support large folios in zswap". > @@ -1551,51 +1559,63 @@ static bool __maybe_unused zswap_store_page(struct folio *folio, long index, > return false; > } > > +/* > + * Modified to store mTHP folios. Each page in the mTHP will be compressed > + * and stored sequentially. > + */ This is a changelog, not a code comment ;) Please delete it. > bool zswap_store(struct folio *folio) > { > long nr_pages = folio_nr_pages(folio); > swp_entry_t swp = folio->swap; > pgoff_t offset = swp_offset(swp); > struct xarray *tree = swap_zswap_tree(swp); > - struct zswap_entry *entry; > struct obj_cgroup *objcg = NULL; > struct mem_cgroup *memcg = NULL; > + struct zswap_pool *pool; > + bool ret = false; > + long index; > > VM_WARN_ON_ONCE(!folio_test_locked(folio)); > VM_WARN_ON_ONCE(!folio_test_swapcache(folio)); > > - /* Large folios aren't supported */ > - if (folio_test_large(folio)) > + /* Storing large folios isn't enabled */ > + if (!zswap_mthp_enabled && folio_test_large(folio)) > return false; > > if (!zswap_enabled) > - goto check_old; > + goto reject; > > - /* Check cgroup limits */ > + /* > + * Check cgroup limits: > + * > + * The cgroup zswap limit check is done once at the beginning of an > + * mTHP store, and not within zswap_store_page() for each page > + * in the mTHP. We do however check the zswap pool limits at the Use "folio" and "large folio" as appropriate here and throughout.