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 4DF90C76196 for ; Tue, 28 Mar 2023 21:45:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BFA966B0074; Tue, 28 Mar 2023 17:45:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BAAB26B0075; Tue, 28 Mar 2023 17:45:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A7221900002; Tue, 28 Mar 2023 17:45:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 978706B0074 for ; Tue, 28 Mar 2023 17:45:07 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 70C9580B25 for ; Tue, 28 Mar 2023 21:45:07 +0000 (UTC) X-FDA: 80619637854.07.85AFB71 Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) by imf23.hostedemail.com (Postfix) with ESMTP id 9716514001F for ; Tue, 28 Mar 2023 21:45:05 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=HNvFdpNb; spf=pass (imf23.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.41 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=1680039905; a=rsa-sha256; cv=none; b=COHUGzi5+qjYNDIfPBHi/UccEEn+tghFyqCWh9KWY/VscYRiknz6IBEYH9h2IFSdKhj8Fw x4Cd1R/DliLgrQq2pxqYvkWA4eqHzKP9u0FI0FLyZR/cUc8Umo6IMU0Jv4Jbnngd757ndQ Q0qAKqDCxKELDeJjX26y8X9gbHzZffc= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=HNvFdpNb; spf=pass (imf23.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.41 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=1680039905; 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=z9f7cAN9UJRomvKcllC+BbDLRPTwg0K/AYxXbaHxuvE=; b=Qn5r3PoXcI4FI1gtac/TXMJQmrAhhk8nclbgDLqw3eGFtsw9kS3YMeF7dk5Q64vb1P3T7G TdLOuffaG36JfAhKSFNbsyf5NzeLA8n4Lix3iWILZXWM7OF8rsc75yup96Jx1veK23p1KF iLgukdBMGtsb73dua14L2Sen4DubhyQ= Received: by mail-ed1-f41.google.com with SMTP id w9so55480382edc.3 for ; Tue, 28 Mar 2023 14:45:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1680039904; 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=z9f7cAN9UJRomvKcllC+BbDLRPTwg0K/AYxXbaHxuvE=; b=HNvFdpNbHZ4Dap+5WXKO/Zi9qdks2FKSo8HHRylEomyy7PypifyZdEAnifvnP6BLmn V64ABLq6V+dh8SIx3B7xJAWu9U3/yKDuevwIfrZ+8GAEvcghhsLPfLqagOEEvnJ75w/C TIHGVB+Y5jPeDq+mWoWyxSOJ6GEhFk8/H/HHhgvgi7T10pn1xRtUyIDpcJWtfnybrrgv JkFto190JcQsjWsT/mD6AaYy2sxz8J81qXTlIq6PomYCRwqlDr6ZDgmmfrIQEbIAazLW /aUUVsgU4faTWX5NGjEIjbUZG8RtYBeE5UBmPPjCoAANkHL5A6sp3Xo5t7QJAaKUdIA/ g4tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680039904; 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=z9f7cAN9UJRomvKcllC+BbDLRPTwg0K/AYxXbaHxuvE=; b=y7+/ZvnF05QfcsltkVxJm/leoZgZwjK8vroGAFPfsE2GxpKYU1M5TxWLeRer3Y6Hx6 MGkBLLgMthRXgrCxAZH0/n5LUs/IMd2+aDUy/lUcinol5rRGnx+RvFVA5PmJj51RksQe qh4uHYNx9OuR+92pV9VZqjPmk+eUNKsZKOUgHGpwL+8X7vbp7oUv/OCPKo3rGXkNEYze twYUijIOIO3SyRomhJwTrod7Ml3pJO5yIwRKmx4dWvdi7cSsHeKd7Z5D9H++8wSgR/58 UbqY0k4hNAPR1ktopqtIH523rS9q4teqvLSZvF6AvunjKOCqEueef+tTTyIijts0oBwD MTaw== X-Gm-Message-State: AAQBX9eh/kaGXnUOmhuw1ts2JI9+5psRPkZTTmG67fFABU6t7sfxCz0M NjBJzsA/YY3HYILWFdobT0XdPqZuYCc+D2ztvb6i3A== X-Google-Smtp-Source: AKy350a1ZTTwtint5jeRfH3L0Odpc2kr51SJbY62XJk/jmZl6OVE/uErT1yrUtXljwmUrYISTsD5i9Qym/HgZz9G9JQ= X-Received: by 2002:a17:907:9870:b0:8b1:28f6:8ab3 with SMTP id ko16-20020a170907987000b008b128f68ab3mr9015473ejc.15.1680039904016; Tue, 28 Mar 2023 14:45:04 -0700 (PDT) MIME-Version: 1.0 References: <87edpbq96g.fsf@yhuang6-desk2.ccr.corp.intel.com> <87jzz1pfb3.fsf@yhuang6-desk2.ccr.corp.intel.com> <87fs9ppdhz.fsf@yhuang6-desk2.ccr.corp.intel.com> In-Reply-To: From: Yosry Ahmed Date: Tue, 28 Mar 2023 14:44:27 -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: 9716514001F X-Rspamd-Server: rspam01 X-Stat-Signature: 9w53b9bmo8pemq9i94zjjicchrwzxife X-HE-Tag: 1680039905-572151 X-HE-Meta: U2FsdGVkX19Q6nF/KziJwwdqS01jI3ON5UJY2bb7bs/EOYVX0gdbis6kBG2AUaG6GH/Px8jtMoBEVTB8f6d/7oXPxBJTyXqrQ2srIyW3UaoziNSmCMt/bbafnqGB5eJTzl5ndE9hPO2sFb3q2bSGptSnaAjjC81FWFggibfFoXocYutWyrQGIrCZNJRCHoXk4E6goFpVVYHrFmkgKn3HZcYvkQjPju3K3dUEY1YqyUdDQSHrsmqpSJqSv1PaZpwCNQvq430p85JcXYp05YDRNeFSrJLbODvxycivfIrt2ArL/KlNYbSOpGsx50AIEcEtRJWAyDpE32MaGYnikb+XtyT/eYgqsjKsl/j0H3+HsU5J21rMiIgVVnnBKOGIbvqmZt98XNZe9pBn4Ok+IDfKm1tbNBsMoEJx01cjaSLSnB/2dbHJ6ur0ghvyJJD640pITxzQC6Z5wALw8FawXpXJPYi03xnCMkcTD/FfQ9YcrYvqIEz9Ffjb5H3NpyWrWHgvt+ImJXvHP2gkaerKQQk0lnxYP/xTz8AUl6GJQuxTzygcFSXwn6NzdOCfvyxkVipB6v4HK3uMXygEuXhfaQMhW1dJX1vWJ2PewTTKoxo9FSA94Aga5NWRDVwaIpa+8tB98cMSDz4iITA9PMlL8c1ZYzLv+T8B40MXJJs1NfNK9bWkZh3/ZxTXZbwbHi808pxOrgxL5BcX5aE5y5imEz9ZMaWaHCvwh8hTgxHpsG83UgpCTtkTY9rOYEiFERnADJQfuJxdWS43jiDOIFz2LCcGlpKv+ce353X0DQOotyP4E8lhaJ88QEQc8C+FFZluGbEQQIvYpvQlDPOwvYyl39+X7cmrSsNH7Gk85KS56P1jAUELJoQ/yeZvX32W8N58gG4huHhhplusHmbiljJHNOgzrk4H61Q8fo2lqRh8upH0soCEOzqDTaphyP+oYZcVIhl9U8rgKHC+Rc9KTsB4yid b6GKx0G0 BmV7qwfWh61XSefvQNymNPF6WTVZ2HmDB6IL1uUpYWfrmto1E+82EWv5zyfXPQKnKYr41ItxqVt7CUwB7HHEZA0+Z2WqkN6h5y0b2wrF7c6R5VIQoDZzzvuNA+JByG9Tat4qGUECnJ3QvC+m4lweTPq+D/U+kKKdblwUNrKz/KWiajx3oe++yHZeTxB81umxW2sfrigh7FJazChARzHlz5TlalaDhRlb+fpKyNRUuRVPXFyaFk9FP8ayQO96bb63bVHTKL52CBEV9a/4P8dj9/PQPlGxAp3Z5HBaAPFzlWcgNelZjfk5+m2Hq913qkjJ9K8A7KOA3ygyxUNk= 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 Tue, Mar 28, 2023 at 2:32=E2=80=AFPM Chris Li wrote: > > On Tue, Mar 28, 2023 at 02:01:09PM -0700, Yosry Ahmed wrote: > > On Tue, Mar 28, 2023 at 1:50=E2=80=AFPM Chris Li wr= ote: > > > > > > On Tue, Mar 28, 2023 at 12:59:31AM -0700, Yosry Ahmed wrote: > > > > > > I don't have a problem with this approach, it is not really cle= an as > > > > > > we still treat zswap as a swapfile and have to deal with a lot = of > > > > > > unnecessary code like swap slots handling and whatnot. > > > > > > > > > > These are existing code? > > > > > > Yes. The ghost swap file are existing code used in Google for many ye= ars. > > > > > > > I was referring to the fact that today with zswap being tied to > > > > swapfiles we do some necessary work such as searching for swap slot= s > > > > during swapout. The initial swap_desc approach aimed to avoid that. > > > > With this minimal ghost swapfile approach we retain this unfavorabl= e > > > > behavior. > > > > > > Can you explain how you can avoid the free swap entry search > > > in the swap descriptor world? > > > > For zswap, in the swap descriptor world, you just need to allocate a > > struct zswap_entry and have the swap descriptor point to it. No need > > for swap slot management since we are not tied to a swapfile and pages > > in zswap do not have a specific position. > > Your swap descriptor will be using one swp_entry_t, which get from the PT= E > to lookup, right? That is the swap entry I am talking about. You just > substitute zswap swap entry with the swap descriptor swap entry. > You still need to allocate from the free swap entry space at least once. Oh, you mean the swap ID space. We just need to find an unused ID, we can simply use an allocating xarray (https://docs.kernel.org/core-api/xarray.html#allocating-xarrays). This is simpler than keeping track of swap slots in a swapfile. > > Chris