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 A93E4CCFA15 for ; Thu, 26 Sep 2024 04:53:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 06B016B0089; Thu, 26 Sep 2024 00:53:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 01A9B6B00A3; Thu, 26 Sep 2024 00:53:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E24626B00A4; Thu, 26 Sep 2024 00:53:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id C5B436B0089 for ; Thu, 26 Sep 2024 00:53:07 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 660C21A14A7 for ; Thu, 26 Sep 2024 04:53:07 +0000 (UTC) X-FDA: 82605670014.23.8639550 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by imf15.hostedemail.com (Postfix) with ESMTP id 83B4FA0004 for ; Thu, 26 Sep 2024 04:53:05 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=EmNPbxd2; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf15.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727326349; a=rsa-sha256; cv=none; b=uqiSNQV69BXov3c4Op382ISkG7/RUYg7ypT1Cm1bWgpzkBUU0T43fRFfFAO9GKMjzbX71K E5EfizgoyVzPjKnxU1Qd6grfMDyDTAcA6RSWwPrJPsIlWJ28EHQa3wu0h/bbdu3VEOnWd6 6ubAodm7Pm9fe9FGbFnYFSDuXhsNp3k= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=EmNPbxd2; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf15.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.42 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=1727326349; 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=OzAwXt3+XYTRpXj/nMUoiqw05kWB/QI07PxByMHf5YA=; b=6Qe2BsE66gv1Cci+4AaCDMiBgNKZVYCxxAEwuhBTdMt5g3ETiQ7vKv5pIx+IbsadxqTlM/ 1M3BGyBtyPtKBPn7YGRjJ1rkaKfeB//8Nul2krSBS23YkinOmARyqW4RaIk4WNRwMhJRlY iTcFWNwAHgn9C8tJkWE969OgnI3fOxM= Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-a8a7cdfdd80so71229366b.0 for ; Wed, 25 Sep 2024 21:53:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1727326384; x=1727931184; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=OzAwXt3+XYTRpXj/nMUoiqw05kWB/QI07PxByMHf5YA=; b=EmNPbxd2gH/aPFOpfi+uliVy6ko+tZ7mCRAnO+Fom3tStv1PaRURVjnzCKJwK2+MUX uZuz1eRB/JmCDnw3n1Q4vEdK01D+3TdYLFzjM/ZmNJzlWp5VmoqEzXkvxBC3zhoR1pTT 7+qS0syPDHam3pY0YkRKq7dqDzPV8qXvny41GhqEZxq/4RO/zCWy3ercFOwtW1SeNsYX 986Je3KiLcO01y/9yXye6sdN9SNGSboeSdahYbBOVEn0pOsqBFKuuEWA/5jGpQMJjt3F 0SEn7G/mcZLvzLQh8+9EHZM+7hF1a2hNkgVLyx4exKKBcwGSQ2y5qzhdTLMLvoxyRoPg tKbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727326384; x=1727931184; h=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=OzAwXt3+XYTRpXj/nMUoiqw05kWB/QI07PxByMHf5YA=; b=gPTgH6jdQPvLvg060mh82XFg+poo/3b89qZ06YjZlcNmPw0ACLX2i3nsTV0C/1sdyT UxNBaauuM5RVIx0dNiPj8CWY4MZPWsFOQ5qoIhXXXSKvuXqL2J7fgwieJk5a3C6C4N0w PYJkz4u5UbHEXPPq/5dTqOIxn94P9R0Kbb4Icu4GwbQW5MCS3AoQholRhO2KSARlL769 CjLR+KeNZrltWkse9aIddckJhzO31FpNK7HxmtYTpvN742n7Ni/xFQU6EN/ZGv2IhK/6 BCCISTw02XoP8Y39qxWmKLuq/Hiusm89qVgBn/6AdtL9/Zp4WTsvb0JS3/7KCEplbsAd bK3g== X-Forwarded-Encrypted: i=1; AJvYcCWu9qJ1YCXYTt8Wip25cI35FwDKozjOfNM9NGIICZqdKO+Wto6rjmW104LLh1/9DD9iEVGaYW2nXA==@kvack.org X-Gm-Message-State: AOJu0YwkFP5zM1pJ4MURqMxJZi4/r3D/30WJr3mCFImjk1ltuyUdv/Qt 0cT94lzs6R0LndA4cOV0/jbCeLKdy6xPeWzcwc2QC9Zrp9bXVdiihHiogByl0mm+jAVUL3bsF5K zRhss9UMOFZCbKSt+1endIu4O2GCjNAlWnwMh X-Google-Smtp-Source: AGHT+IHCHXVLdCNZ8Sf0Vu+1p/yVxOb4mcQIWFL0H0w6C94Y2GUT62Ur3fgL2Gj+zXOsVBuARUxc1eGZHNbR9LWlEmg= X-Received: by 2002:a17:907:3daa:b0:a91:158f:6692 with SMTP id a640c23a62f3a-a93a0664dcemr563350066b.62.1727326383630; Wed, 25 Sep 2024 21:53:03 -0700 (PDT) MIME-Version: 1.0 References: <20240924011709.7037-1-kanchana.p.sridhar@intel.com> <20240924011709.7037-7-kanchana.p.sridhar@intel.com> <20240925134008.GA875661@cmpxchg.org> <20240925192006.GB876370@cmpxchg.org> <20240925201323.GA880690@cmpxchg.org> In-Reply-To: From: Yosry Ahmed Date: Wed, 25 Sep 2024 21:52:26 -0700 Message-ID: Subject: Re: [PATCH v7 6/8] mm: zswap: Support mTHP swapout in zswap_store(). To: "Sridhar, Kanchana P" Cc: Johannes Weiner , "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" , "nphamcs@gmail.com" , "chengming.zhou@linux.dev" , "usamaarif642@gmail.com" , "shakeel.butt@linux.dev" , "ryan.roberts@arm.com" , "Huang, Ying" , "21cnbao@gmail.com" <21cnbao@gmail.com>, "akpm@linux-foundation.org" , "Zou, Nanhai" , "Feghali, Wajdi K" , "Gopal, Vinodh" Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Queue-Id: 83B4FA0004 X-Rspamd-Server: rspam01 X-Stat-Signature: rwp45nfhzcbe3di6uwhf6t51c66dnjo1 X-HE-Tag: 1727326385-179290 X-HE-Meta: U2FsdGVkX1/ymGX2RxUcJwghv293ByBJx+XyJ+B3FCOZt/WpkOiXTnmtTk3w1FrlAT/SDtQbeG1iIyYIaqnBI1X4KRAykiPGa+PLBLK11alpoWYT3XCf8Ksj/fz0Q4/2jLTa6tKic8iGVIE33pquNwuSKbsRrzx/RquldeV2H+XDrdVEvaEL3LtjM3wRwHS0wwpw/NrRxsD1C/uK31fqK2gYJXcRDLklypz3HAkbHy/TgjdduYdiSnuDjzmO/98YiAMoWlVkJG3B2eTbv4geTyv+3H2igwVEb0o+82gtoZqp/SWyVW24n+y8JcJWscP3LbkkqCS18wOezDd/3aS//2aiK1HjNxh2s7fz0fL2e6pWhUX2xivlyAIG+5QO3oB/90DaDI54sYIPpcYup7KmG8vwyxWPOcCwy1CiOEhCllTZXnoAlz+kd/yiymocJJACgy+ErVyKTF5AwNiVkbforRvSXXfhVuTSNzWx6bFoQkM+G85ymjDG87jdvfrdbqAcfYilPVS8DDnPAsVQA587izi0gPgqg2RFuFLMN/Yp7HQWikkZofCACDQQNrFfjjt9juWC3rxFPCtgDB6fe+UAT1CxlFnWjBxF5isvyzbVmqW+2z0IZK7QLKTRceZmoc6Z1plsvbYvdIqJOVStDaZ79cK5Zg/aUosZLeTg29Rx2Ymj0eG4I3gE6qPabgFTXQiI/ZLZx4EvIx+Nn+FParco/K3IpVhGRJTKoUu6MeLkfUF5NiMlKZ24is/SV7P9eSCdWaPLBjYVGyA9T5Hb5/qI9wP0HEx5ggPiALGUjNs3SBosn+3mbNPfIFaw0D2HmKuyH2m3+QzxSqK//XChPlKXFK5BXkeo3K+4R5QbzFca+CygbUY9StCoFvOf80oHsz1SC9JJzLCgSCAX+HUTm3wPUUSonozK108U5znaJGfGomAxDZ1Snxo2buvonDTsxcSncO6xkDqA3PNT1Ujlqi2 IfdMMUeX oKDWGIEOcKP39h3SRE2FH/oZ+WAfY3eOUK6GStlf14K8Bow2N/dr+/3SLnzD4SgVyULRhcQkdEnaSZ4zzEwTA3e0xPqpv8qCd8hYoUcq7HJCg4yKnpwtLl/sBq0+6uiXYHLGlI1/z9AXQ36LC+zF2LRjzzS/nULmuWa7HjW/ulpCm6JjXvaLOMiKDXIZ/zg0SRO0BHj/z/vFLoj3QbWTceyWAvdhpyBtpI/v8c1KJGrlnkxDthjEKn/04cdIsCWcPgLcP4xOEcA7AYEOozKgwrJg8Jw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.038839, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: [..] > > One thing I realized while reworking the patches for the batched checks is: > within zswap_store_page(), we set the entry->objcg and entry->pool before > adding it to the xarray. Given this, wouldn't it be safer to get the objcg > and pool reference per sub-page, locally in zswap_store_page(), rather than > obtaining batched references at the end if the store is successful? If we want > zswap_store_page() to be self-contained and correct as far as the entry > being created and added to the xarray, it seems like the right thing to do? > I am a bit apprehensive about the entry being added to the xarray without > a reference obtained on the objcg and pool, because any page-faults/writeback > that occur on sub-pages added to the xarray before the entire folio has been > stored, would run into issues. We definitely should not obtain references to the pool and objcg after initializing the entries with them. We can obtain all references in zswap_store() before zswap_store_page(). IOW, the batching in this case should be done before the per-page operations, not after. > > Just wanted to run this by you. The rest of the batched charging, atomic > and stat updates should be Ok. > > Thanks, > Kanchana > > > > > Thanks, > > Kanchana