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 BE454C74A5B for ; Thu, 23 Mar 2023 18:41:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 38FF46B0072; Thu, 23 Mar 2023 14:41:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 340636B0074; Thu, 23 Mar 2023 14:41:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 22FD56B0075; Thu, 23 Mar 2023 14:41:16 -0400 (EDT) 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 1303B6B0072 for ; Thu, 23 Mar 2023 14:41:16 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B3D8B1606C1 for ; Thu, 23 Mar 2023 18:41:15 +0000 (UTC) X-FDA: 80601030510.10.9F9CDC9 Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) by imf08.hostedemail.com (Postfix) with ESMTP id E2FCB16000D for ; Thu, 23 Mar 2023 18:41:13 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=mUthEiKJ; spf=pass (imf08.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.53 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679596874; a=rsa-sha256; cv=none; b=ybweJECwHoDV4WGCHUH+q5vOTPRelSljl6J+XedYV6UkMci9YEsK4N55qxv61imUgtuBQ7 T7cYDaMHp32Nr7/4Ioz9jl5X8cqSDr2AJndyq9UEnxGNRwdoGTfaXPpYmTzqwUCm0hIWNg zw8OdRsIlvrgmo99yOoY0eLB9k5T0Mg= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=mUthEiKJ; spf=pass (imf08.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.53 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1679596874; 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=5W6leX+DQUctC5ysdiDJFqdgGiiBmWlf99GKLjAyRMY=; b=PmU0dfuaUv62mReKaNZlP8BEoQWMLazDKNebm1jpIhHH4FOSD/su9XGyXDBnmjIYNvggEH FS0QvXGsMuDaQ9qEfucs7RCzje8e4fHicWL9u5Uf6wRbJgg5ezQEv7pK+A9YeUuHIaTCm7 lJ76KHA6SsCaUzZETfqdzrBh/DSaD2w= Received: by mail-ed1-f53.google.com with SMTP id x3so90759569edb.10 for ; Thu, 23 Mar 2023 11:41:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1679596872; 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=5W6leX+DQUctC5ysdiDJFqdgGiiBmWlf99GKLjAyRMY=; b=mUthEiKJvyPu9VCPN6/N60Lpmlcc5AjRwmZi5EivXOXPwblxMAlE2ejlrHyGgjE0ka pU09dJYPPwhzk30B+H/tImuZknhKg7ZY68No1Yg9VB87Bwl2A6SnAq5lr+a/XBGPwcQ2 65bbjX5AsY468kD3M5aViMmkfYbvQogY1wLxLD+/olu4rHpiuVFOSQPPkbXGEG7hPyfd OzC1Tz6P3vgZSpyKTBJB277QI6CplUP4sEQbj8c4sxqMX9lvtANGoKZhKYnOB8UGUaza 3FVKPgWlFGJUupRK4+eFfnODM8SZSkyIqT0pBABmHuXch+tKfMsKFDBjprQRz2IyzwKY 0nQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679596872; 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=5W6leX+DQUctC5ysdiDJFqdgGiiBmWlf99GKLjAyRMY=; b=vO20kzRGQkShE5p9ppAMPf9KodLmcVlYiScNEanj7Md/+v3/13+kYdHlaXXGXBMpYN ocKbz2CwbzE6YcbnzGwx5CfE3s5XGv7UQTLNNxyCcuNkdaM+AZzRw30VDbipMSgiqliq JJuTd+MufN4XHRjy6fDA5spE1+1LVqrmJKIpeUvkCV8SywgnVIkfAuBORTXOzt89w688 7LDToMXC/JRZpHzxn4heTOH9dqAx378M2hes1tIBLtYQfhYXaBfrAFXH+Bk4UwXW9nmf iKA0dwqJXtP+rL5xs6YF2gmcbXRm/35J/gANAbtEvCWfSVPy2Iz+lTKvo2DqVTgSfIpA q2Hw== X-Gm-Message-State: AAQBX9ccgax10UtjyqcyXn8TemYJXcYx8KVH9Wwo9C/xIYo7/NYbm4Cj Dx9gWQXS/Qkx2O5/9P/mBpLaX3SsUkkg4eqf6Du7Yg== X-Google-Smtp-Source: AKy350bp7D2ijUqF92JdhsNJEzksMyH3LC+Xxp4pVOFTbQRqAjrj1MorYLfvgr4Xwlw73oO+Zs3LqwH/45cpDXfOdZM= X-Received: by 2002:a50:950c:0:b0:4fb:9735:f913 with SMTP id u12-20020a50950c000000b004fb9735f913mr212848eda.8.1679596872278; Thu, 23 Mar 2023 11:41:12 -0700 (PDT) MIME-Version: 1.0 References: <87o7ox762m.fsf@yhuang6-desk2.ccr.corp.intel.com> <87bkkt5e4o.fsf@yhuang6-desk2.ccr.corp.intel.com> <87y1ns3zeg.fsf@yhuang6-desk2.ccr.corp.intel.com> <878rfothdg.fsf@yhuang6-desk2.ccr.corp.intel.com> <871qlgrm5j.fsf@yhuang6-desk2.ccr.corp.intel.com> In-Reply-To: From: Yosry Ahmed Date: Thu, 23 Mar 2023 11:40:35 -0700 Message-ID: Subject: Re: [LSF/MM/BPF TOPIC] Swap Abstraction / Native Zswap To: Chris Li Cc: "Huang, Ying" , lsf-pc@lists.linux-foundation.org, Johannes Weiner , Linux-MM , Michal Hocko , Shakeel Butt , David Rientjes , Hugh Dickins , Seth Jennings , Dan Streetman , Vitaly Wool , Yang Shi , Peter Xu , Minchan Kim , Andrew Morton , Aneesh Kumar K V , Michal Hocko , Wei Xu Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: E2FCB16000D X-Rspamd-Server: rspam01 X-Stat-Signature: bwngejumr89cuze9gr3f4cihn3t38x8f X-HE-Tag: 1679596873-448708 X-HE-Meta: U2FsdGVkX1940fdxoOr6JhK2N2y0SAX+EVR0mdZdxDuC5W7g6oyvfk8EYPV034TkmOOFD+nubFEFk5GkGgRW7EOSspNDo2g7TTKUq48HxTzSZyuZLXnA1gUqSnLbxfRk3HRloh1OLtrto+k7W0P3DNdO2TkLcUoVG89NaxHOPwi80WVjLjqfar6QdcI9IEbMVy+8YVrtu8q7S43/lpOPEUefRL/tET0DWu7RQkw2Sfu5Go34pk4Rz1TgbQws3O/s2XZsYtnVXOILYwdTCAa6XPvL3W+Z3AaS/PNkXqiOLVO3nErdR46sfNzzabtgfS5tnhYgXw9JpbxnSQ87iw5DJzmYGX0jV9hTWZrW20I5KC1pP1xOOYb1Vs6rc9IopJGlLM5+yd7iXVyrONSMClKdaug08qjKcdhRRLhcDTSkk7QG3bZfJcWF6P2TIDP9cRlz7XCqud0S5hCyYWl56tH/LWtETS1yt5jk8MpXxkboy8qw/cSb4fZkTAzVUJ1+icTRtI2PUVloT/WYY81X4AgVXag3qc1qkF9NoOq2GHuX5rVgVuLOyeafnyTXDoNLcLxY96tAPZ5elAwfp7sDLsWp3XQXbqb0qeIcQd1XGUPwJJwGNH+G9CAAi69akYdThqg4ucmijWtidCJ6plJVeemg/MlNFmsbbmpylOJpOurMXh9EvF0nkAPmhffHN5xgRYybhQvHqIDUobmBjmsKXBDC+bojR8Irp864nFkTVjTw8wJ8Qva2e75iMpfPLrmvfk49EJVbJf6MK2HgXiyN9czINwyI/K+eqsMC2eQQvneEpP8+nOYJVQ85WBC2AVd0DwroZ/Rhh68+CBbzXu80dU29OSDQdT4XBnJfKAMCrpfFqcrWiX6tv6MnOhusPQEfvqf+oUhUBMacxKRWgF3ecQO81ncuQ/vAkyZZsfl5GBQ7y15TWWuUqQVOup8VfHNMJLQUURHTTigOYxIgZyrHdyM gDpoUGoz 2haiJVOAAnUmKVbj4JAk2Ogp4cWlf1sGdltMiSGKtH92TmU3oyncXw0rH1LgeJ9CfOAZEYKwV1wYRR3sw1hymU2LOmDqMkXP3g0/DAI32KP16DzsYNQaHSIp7mSsVzdU37VepauvlxCzKdExWMNR+xJv64UDB8NK/h6dJHvItqejbsY4RTKcmfNLL8WtU8bWoTutjpxan2OChUoSJqXz/x743cjhJhx66vLe55NfseJrBBWteTUjIJgz4VKqyLUq5Kt1D4y8lYDLM4F6JAl55HVJiIkB34U+wdGrV2drbpcp6Gk0= 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: On Thu, Mar 23, 2023 at 11:28=E2=80=AFAM Chris Li wrote= : > > On Thu, Mar 23, 2023 at 02:56:24PM +0800, Huang, Ying wrote: > > > > > > Let's assume the swap entry in device A has more than one user. > > > e.g. Swap entry A1 on device A is shared by three different > > > process. It is installed in three PTE locations. > > > > With indirection, the swap ID (swap_desc index) will be installed in > > PTEs instead of the swap entry itself. > > Thanks for the clarification. If we have swap_desc index in the PTE, > let's call it S1. I assume S1 will contain A1 and B1 as part of the > swap_desc struct. > > Now we are getting to some very interesting details. > > What is the life cycle of the S1? Does S1 share the same index as A1? The idea that we are currently discussing does not involve a swap_desc struct. There is only a swap ID that indexes into an xarray that points to a swap_entry. This swap ID and the xarray formulate the indirection layer. I am guessing in this design the swap ID is allocated when unmapping a page to be swapped out, and freed when the underlying swap_entry's swap count falls to 0. Moving a page from a swap backend A to another swap backend B should not be a problem in terms of the swap cache, as we will add it to the swap cache of B, modify the swap ID mapping to point to B, then remove it from the swap cache of A. There are some concerns with this design that I outlined in one of my previous emails, such as having separate swap counting implementation in different swap backends, which is a maintenance burden and error-prone. > > Chris > >