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 5BDC6C47258 for ; Thu, 25 Jan 2024 19:04:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B97AB6B009B; Thu, 25 Jan 2024 14:04:04 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B483F6B009C; Thu, 25 Jan 2024 14:04:04 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A0FE16B009D; Thu, 25 Jan 2024 14:04:04 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 8E99F6B009B for ; Thu, 25 Jan 2024 14:04:04 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 5A3DD1A0E2A for ; Thu, 25 Jan 2024 19:04:04 +0000 (UTC) X-FDA: 81718758408.22.F799F86 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf04.hostedemail.com (Postfix) with ESMTP id 5178940019 for ; Thu, 25 Jan 2024 19:04:01 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=nSpcK9jc; spf=pass (imf04.hostedemail.com: domain of chrisl@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=chrisl@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706209441; 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=8WwOOuF2ZzOgy8swRDt+VkPV0IUBp1rFpxYW1viamrw=; b=fs2wIQ2yjR9FWfSO6Gx+ecZ5jCYuAjf0J7HsL/1Mivny5cQ5c0L+YIOkvB39+uCsI/R4we hbG3+5oRjRpa8Gm7Q5x34a2vY3F8uuaBfVuCI8MX7pqR+IIvYHDP/pXaoH9A/aXXv0DVKe XA8JhULiQHf/YsceedvGVSY9CbF8enA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706209441; a=rsa-sha256; cv=none; b=77Z+XuE6LwQoqqmXUtCv3LxGDWCjsaWAWKBH6V/vB6xSJn9M0Rxp/wMwR647GWulHLLEpQ i3JvNysQrv9ani7pg4gkN4lqnhCTPPnuZOZyw+VJELf3cmy7s2W9SpwEmnZSJLdR1eDcpL RD/KSXbHKlvGxpWsqSLMuBQXO9NY/Pw= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=nSpcK9jc; spf=pass (imf04.hostedemail.com: domain of chrisl@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=chrisl@kernel.org; dmarc=pass (policy=none) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 501DB62292 for ; Thu, 25 Jan 2024 19:04:00 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AA3C7C43330 for ; Thu, 25 Jan 2024 19:03:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1706209439; bh=OKQ5H3y/6ft4s4cArnAzRiS4QoNgetqAsWM0oJmFgUQ=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=nSpcK9jcFSG0UNQr+qnc361vIgn7yfPjan65bjBThR/U8/DxQpHH2QxDbadfRTa1M AlZ8vFpkm+tXmOhKpCs5RrBoI+xNk8Wc+kkmIVPt1Sk1ZVDoOOUiW7cAHMvub6CcNh K5oWuB9JlFGcEeE2rRX+yYYYPS6w7xKqaxM5r0s4nnFLLLsO3Iu8Mah/gPpZg2eBea 9bzXTowS2qQQqPIT+1tJmc6DQV3SKV4IEmWASOMQGGivVZIMnGESd/ffnZOkp+zUjG WOjqyWjzUwd6VubemssATJtaGzIUwa/216mxdyhCOJH+wO0r3a+UDLMzpAugEtV5M4 mJhN1O15ldweg== Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-1d746ce7d13so40786115ad.0 for ; Thu, 25 Jan 2024 11:03:59 -0800 (PST) X-Gm-Message-State: AOJu0YxNFWlGnaMiPivtZv+2RgYTKpZ84J6iatOaeb24c1w5n4H6krhj w17TS8aao3wVXkGN1PwNIhvUM0rEQLq9Czcw6m/8hMW9eEpFcPS0PtZBfJGgCqpTLM3E1lkHfzL Cx5Kj2iEw+WVqbJxaq0FloPnh75NmWPupW5uX X-Google-Smtp-Source: AGHT+IEfP/516rZwAoRiJwHeoRL6xGx7Ks8U9uIvUP18ohazY66Y7FFyTBlYkQa0r/b+xoIP2I+l/rYfWzkU0uBkuYE= X-Received: by 2002:a17:90a:c503:b0:28b:2f4f:75e7 with SMTP id k3-20020a17090ac50300b0028b2f4f75e7mr70350pjt.13.1706209439002; Thu, 25 Jan 2024 11:03:59 -0800 (PST) MIME-Version: 1.0 References: <20240120024007.2850671-1-yosryahmed@google.com> <20240120024007.2850671-3-yosryahmed@google.com> <20240122201906.GA1567330@cmpxchg.org> <20240123153851.GA1745986@cmpxchg.org> <20240123201234.GC1745986@cmpxchg.org> In-Reply-To: From: Chris Li Date: Thu, 25 Jan 2024 11:03:47 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 2/2] mm: zswap: remove unnecessary tree cleanups in zswap_swapoff() To: Yosry Ahmed Cc: Chengming Zhou , Johannes Weiner , Andrew Morton , Nhat Pham , Huang Ying , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 5178940019 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: 8jcd458u81capzh1ew5d6u4wu511rqb3 X-HE-Tag: 1706209441-343103 X-HE-Meta: U2FsdGVkX1943x4LwPCWqJPEQPEFVUkCpUT3TTtoeGLM2nlAcHQwRpA4rGt1s6yvv0040pBYhr9VtYk65g/1tIIU5ydD866Cx5ShYn3zhfLUrLd8VngOyFj23GPatPU0dMfNGp/YQ9p91OX1FLdp9T4lziJMUobblIMMiNz9DBDhj8XcRdX+Ec4lOoV53NuMca20Bf2Hl0C7cDALRVwyshOq3NIOgII4SI3lO/Pg2I5D5NQ6DJ1d2clzKzVsw/7cMhwGbi6vQY+B3SPfmC5x1lCq2Rl9F8bNpxSxgcXa4x4YyP9CZb3HdXSsT4ic4ZPOe/vRvRy4eSexGIG/BFan3393dNuyJQEjKciDk5haw0oZqYYqHxZbMAENmDz6x2ZR3YimEgUW/bYXA38MMt8ueoqzE0W8EApWC3gqMKWVuTghikQmnKTWS/9FpirGQ1Pd961KgXYQKKHRPWA0lKU98UvIzV7LgTnNASGgzJ1obRzsFQhft7udxYQbcLjnrMZd2hdgFHptiLLcHCRAsPWsmU8NXHr/FVQHU42k2uP/y3GhISHN5nyAj0Y2EQ9yVM7muI6OpeUT1+kit5J9uq18+sOb3Avynv24sMMwtSshKAw+CIbCoMwvpAwPe8c7G3qPnzfNjbagtWdt2D6hy3q0/xA7TorvNQ8cSEs3h2VvOvkap4xsyjwXQoNMU2t4EEz2nKjDmWH9fIPqVgZZ9o6Z3HPBZZf5aP2szguKxymR9bnSr6NWs4da9xu6yh+MPNW0UZU2kPUdjZtg1dMTCvJtiEQOPCJo3d0+2zPXDyqL05nk9mJqtmLxbxEcGO3Y6pdyBHtZcdUUoD56EGmDnu0N/bUQ0AuMjSYnTVYz+3ThtzuHb+nRwEBa3J7Q+cNcQx6Hg9lF5A8lP/VEhsechTkZFN4t+rRdh08D+irWQ2YOLx4NIzYZbsWCrpy3pnhJGGpGgSa4hnbe1Mumid9pGKN UmbI5YIQ YVbCez4M525w6gOMwOtlK+kILhJ2dEplkbcG3Un6Ld+UQfLcoDDb2dKo7DSid/7NBUBeCHbdpGWmO0Ybah86f4WeF7iS82mY7PGMLrWu8WCfVzje2aIL/nKcFIu8pd3CkjpncKVKBTPHR3m7rug2oXsMt36D343fM7QZHMJ02Vmprv1U3HPjuwaXGAaKZ1cS8YdSzWwwmIb6GOYzlXgiqMJeK5DJKeEI2hsLMPkf4EKvxQCAjY/dLEWLqSZ/Csv7aE/fbi54hOKx6EOv42A6h5hwE5GlDDaQiPqTY 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 Thu, Jan 25, 2024 at 12:02=E2=80=AFAM Yosry Ahmed wrote: > > > > // lru list lock held > > > shrink_memcg_cb() > > > swpentry =3D entry->swpentry > > > // Don't isolate entry from lru list here, just use list_lru_putbac= k() > > > spin_unlock(lru list lock) > > > > > > folio =3D __read_swap_cache_async(swpentry) > > > if (!folio) > > > return > > > > > > if (!folio_was_allocated) > > > folio_put(folio) > > > return > > > > > > // folio is locked, swapcache is secured against swapoff > > > tree =3D get tree from swpentry > > > spin_lock(&tree->lock) > > > > That will not work well with zswap to xarray change. We want to remove > > the tree lock and only use the xarray lock. > > The lookup should just hold xarray RCU read lock and return the entry > > with ref count increased. > > In this path, we also invalidate the zswap entry, which would require > holding the xarray lock anyway. It will drop the RCU read lock after finding the entry and re-acquire the xarray spin lock on invalidation. In between there is a brief moment without locks. Chris