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 18374CEB2CD for ; Mon, 30 Sep 2024 23:43:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8D98E28003D; Mon, 30 Sep 2024 19:43:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 88923280036; Mon, 30 Sep 2024 19:43:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 750EA28003D; Mon, 30 Sep 2024 19:43:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 534A2280036 for ; Mon, 30 Sep 2024 19:43:40 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 8F139ABC5A for ; Mon, 30 Sep 2024 23:43:39 +0000 (UTC) X-FDA: 82623034158.18.B386DEF Received: from mail-qv1-f53.google.com (mail-qv1-f53.google.com [209.85.219.53]) by imf14.hostedemail.com (Postfix) with ESMTP id C8E80100009 for ; Mon, 30 Sep 2024 23:43:37 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=enRuYGNW; spf=pass (imf14.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.219.53 as permitted sender) smtp.mailfrom=nphamcs@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=1727739650; 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=QVchMLlAjvoHwS6r9tlnQSB6CEoE+AV5pb8nb8DvKm4=; b=6hkUhfUOkTz5KeJV70OAthUPYY4KzZVVwPbzEplLlUxqJWS+5hB6uozEqN/v5iKGMXRVSZ +myRN9d3AgvlhUfA7muClbYPQWlw9kofl2uzulbANEksGacTOtV2+kdgLBx4/bdtsCXbGl rn96s3Gc5ASD7PyW3sI0HIh8BxaL3hs= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=enRuYGNW; spf=pass (imf14.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.219.53 as permitted sender) smtp.mailfrom=nphamcs@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727739650; a=rsa-sha256; cv=none; b=kIgjSyLgVBvCeANd8eIgsHPmzZOin6MU8tW4r34tTeQxf0lb0lNuw1UHOJw4V4lVX/JMZA BSmj2eYtP6IzuNPjV0QkiFNjT8nyYoPADKL1dNFn411p92K3WQa76f3vi8iwfa91qKQWVO jseqbb0K12KYHLaFb3UzLYHuzAjEpMk= Received: by mail-qv1-f53.google.com with SMTP id 6a1803df08f44-6cb2f272f8bso45118386d6.0 for ; Mon, 30 Sep 2024 16:43:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1727739817; x=1728344617; 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=QVchMLlAjvoHwS6r9tlnQSB6CEoE+AV5pb8nb8DvKm4=; b=enRuYGNWz4rfqWTGSrG85vob+kUW5UYGQkWXKhB3LCARwzLKfgmhyhDrclCfdINSsP T0zW4Pgw0Zj+PRUorZiowOZu9xbRmJ2T23bdlQ9b9KaXL2VSukFOYSpl8EnL2sDoE6d+ MfKKHAg45Xpwm+q/EM+wJzpWmVjz6fWd229vv9vJon6Hddr51fat2MCfHzziL/wp4hQk eLFhOHenNk7SsOQqsI8utfSuz4/Z9ipvJjQQY/oXe7efmP3gkNs4hbflnEvT/IKXu5mH LlQeC7aFnK0BsKYsl1PfZpOJVP1eOv2rZ1auT4Dvv17AN39pJyS7ie1pR5lb4IN4sfrM D6TA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727739817; x=1728344617; 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=QVchMLlAjvoHwS6r9tlnQSB6CEoE+AV5pb8nb8DvKm4=; b=EO3J7GXNpX1KOCoKLNyRghXMfMceZ4VFcPCTM/DZsk43t++IdzUbAP8RGildEWPCKY oZhR1TpCIeVZK9uKY+C3fh8S8TK4fNbxeIIuxxzIc//cX6QsPrI3zzpMxbcm8bdVA2fd dvevY7MRI13tillw5c7B9WrxL8wjtMQTUaLT9D7K2It2c33RV/iurBYV/FYw0pfv/nW4 FGDrBDmLFxEymyThcjo5lTl63CKeJEjlEhA/0xkE343uc9iy92k+gZpRtg/BewKUrqK6 W2EfD74Ch5j1+CgkS4YtMZUgNUE3rwX9bYQYZRGCm3i7x+jcG2TBgZQ6vh7mFGMBPElk KKBw== X-Forwarded-Encrypted: i=1; AJvYcCXet3HdvohXWAKgyeE1W6LOaaVpcyOrT+5psyBIMILmnBHlO4LGM3evRS+BbfbVlY57IP+lgtB+JQ==@kvack.org X-Gm-Message-State: AOJu0YxhmXYaKo5sV84yJs4XXzcdxpH+lQ+7lQG4SNjRl2oOBMGOlPuy cP9ozyNXE9hJLBoUL0xW12LdRHh+Vq33Nw+6j1ADtOvPD//wiUfKHKs0yvt5TDaTdcMiwCJMHWA zGTYIC1W/Mm60QqxEIYxhDxAr6bE= X-Google-Smtp-Source: AGHT+IFfh73+cfDnL0tYJFyVqKBp5XI8q/LB+v8u4kjnALRxPJx7iCL0RfNIeALwI/bV/gLsYOubeLOzHr1cUn5GHW0= X-Received: by 2002:a05:6214:5987:b0:6cb:21e9:aba8 with SMTP id 6a1803df08f44-6cb3b5e7827mr279762756d6.3.1727739816804; Mon, 30 Sep 2024 16:43:36 -0700 (PDT) MIME-Version: 1.0 References: <20240930221221.6981-1-kanchana.p.sridhar@intel.com> <20240930221221.6981-7-kanchana.p.sridhar@intel.com> In-Reply-To: From: Nhat Pham Date: Mon, 30 Sep 2024 16:43:23 -0700 Message-ID: Subject: Re: [PATCH v9 6/7] mm: zswap: Support large folios in zswap_store(). To: Yosry Ahmed Cc: Kanchana P Sridhar , linux-kernel@vger.kernel.org, linux-mm@kvack.org, hannes@cmpxchg.org, 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, willy@infradead.org, nanhai.zou@intel.com, wajdi.k.feghali@intel.com, vinodh.gopal@intel.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: C8E80100009 X-Stat-Signature: csapondxwz1j9n84f33ohh4iofs5z9tq X-Rspam-User: X-HE-Tag: 1727739817-982363 X-HE-Meta: U2FsdGVkX19Tmt4/9mo4xBuXAMVwGtTss7c3IKZANwp04ROroCCuxlaAAZX8Qok2UlYPpqNVGH05usnmMBl9AH7nYRSUvaanKXEXpQBLdzUq6kjZ+ya4T1pcbI512YOUrh9pcFzrEPNDDBCHJc1Zi/JYFSdETEWi5QUo8mtE/UfRW1SXs0ZI2Ue3vXPNd12PsKa6gCv1mJvzAm12UlsSdi/CaAqAxRsJZWgVjd8alYFnbSaeuxBL7FL0SWCuZ6Ba2gb76fR/l5PUPsabpFvswJA6jU9CFyVwmhdhm9IUH+0fgq0hAdIr5XzAIh/xozW+C0meHT1/mWyXxbKPF2n48acAPqT4248Va3508X9racPAO8th0DOCiIpXbKxTIvBLM/QA7MpFCStoI2pzIfnm5W6jrfRlDdGxcMyp9kWNlXZSyVu+8F9iyanmBX550q53biDAT6pytU1b3CQrcJ9aIkMprNBGynaiW9y0dIs83O9dzbUsURGIv+vDL+mhphy623/MXi38NjZsVQfFncGaD/ovhW7mhvVROxMDXGp8GKqnD31wLqK12CgVyVJjpW5NHOq5K/y74GqgjXPElDnj+SG4Zs5tj6Waac0c8qDH0i0bKo69BqvoGerUzlOLvty46/OpocY34CqPVy9SOezAjcWPA1cP5L1f1p8bhrfghJi/w/KJlZLhM3Vo9AXSTG37aknNweCe4re7vC9UJgfMwJ84iGZDfRdxZ3ZQBBNp9d8dYJfpscj04ZL1UbWY6MF31Ws808QS+PBzZtavnRxyIMQZ7nrs5C4hP2CmPTU1oX9wBCdMU1f18cg81J1AZP1AqXgsCbm0G+Ug40Q4QLybFxrjokyAxPAAiGrfd0PLKX6FTIHqMayKDMZ0X3aYLFaiBzCUQWwZpoG6r2BTWVl6hv9p7gb3IBm0k2uYUoay+LDxm45uYfF2/w1V+ojiba5QL9+c+obmOZtUYfn+wWX dKB206nC c4jUEnIT8wOav7I2gUCIenPq6tKD0cstZZlsh39D5EhYUQl2q/Ozk0g6O9XNSB9Nt7Iu47cfcwb1j2DXWb4bKyAdnxgZaJTJKfac4ozWG3PlLrYB+95+sM7KAFv4jY+CJ6n62EN19k0FHNwoZSy6BjZiPk0u1zB8PnRivA87VGG8ZJjSQ+/RZxtJ6kcKIV6rBSOUKSaXOBLAl3Xw6TX/SMWEDOGi3hC2syVWkqZZnvgiDosZn6cst+EHb2Hqu+WISrdAbNivp9LP95YAKEU1+3h0MptfkWTS+VfgVoICGKJewk/jR+tf7y9+5Nj3zYV0+vRMYNf9w8o9RQE2icf0KNwMcSqaF83sSwZ0tGIFlH+ApLotVKpwTrTzW1gmprGp5YChufYbwG/opM7TlEWbrlL3Sm5GjOuGEFIsLe5LE9jw1o5/yISfL9e+bzX7qoKhZI2ZgV9JJ2XMKxzggxTpbq3g/VQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.002628, 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 30, 2024 at 4:34=E2=80=AFPM Yosry Ahmed = wrote: > > On Mon, Sep 30, 2024 at 4:29=E2=80=AFPM Nhat Pham wro= te: > > > > On Mon, Sep 30, 2024 at 4:20=E2=80=AFPM Yosry Ahmed wrote: > > > > > > On Mon, Sep 30, 2024 at 4:11=E2=80=AFPM Nhat Pham = wrote: > > > > > > I suggested this in a previous version, and Kanchana faced some > > > complexities implementing it: > > > https://lore.kernel.org/lkml/SJ0PR11MB56785027ED6FCF673A84CEE6C96A2@S= J0PR11MB5678.namprd11.prod.outlook.com/ > > > > Sorry, I missed that conversation. > > > > > > > > Basically, if we batch get the refs after the store I think it's not > > > safe, because once an entry is published to writeback it can be > > > written back and freed, and a ref that we never acquired would be > > > dropped. > > > > Hmmm. I don't think writeback could touch any individual subpage just y= et, no? > > > > Before doing any work, zswap writeback would attempt to add the > > subpage to the swap cache (via __read_swap_cache_async()). However, > > all subpage will have already been added to swap cache, and point to > > the (large) folio. So zswap_writeback_entry() should short circuit > > here (the if (!page_allocated) case). > > If it's safe to take the refs after all calls to zswap_store_page() > are successful, then yeah that should be possible, for both the pool > and objcg. I didn't look closely though. > > Just to clarify, you mean grab one ref first, then do the > compressions, then grab the remaining refs, right? Ah yeah, that's what I meant. We can either perform one of the following sequences: grab 1 -> grab nr -> drop 1, or grab 1 -> grab nr - 1 if successful, drop 1 if failed. Seems straightforward to me, but yeah it seems a bit hair-splitting of me to die on this hill :) Just thought it was weird seeing the other parts batchified, and one part wasn't. The rest LGTM - I'll defer to you and Johannes for further review. Reviewed-by: Nhat Pham