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 AD67DC6FD1D for ; Wed, 15 Mar 2023 07:42:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 224736B0072; Wed, 15 Mar 2023 03:42:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1ACCD6B0074; Wed, 15 Mar 2023 03:42:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 025BF6B0075; Wed, 15 Mar 2023 03:42:25 -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 E2AAA6B0072 for ; Wed, 15 Mar 2023 03:42:25 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id AD9214104C for ; Wed, 15 Mar 2023 07:42:25 +0000 (UTC) X-FDA: 80570339850.08.654850B Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) by imf14.hostedemail.com (Postfix) with ESMTP id D53F9100005 for ; Wed, 15 Mar 2023 07:42:23 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=Md+k52HB; spf=pass (imf14.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.42 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=1678866143; 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=x2TKn7rr/0jmkCAjTwGgyC0rxtnKkaHeomCSW+oE3kk=; b=4UUFlR7Ov4MbAApgt2K9CTC1E8xOkc4MeokieYMnFpPNBLOvk5De9/IIEIHRCOYZiSoMyn kk1HvBZQZdz41xDViHsVY44YnvMZoFLCuMzkOVj767dvWC/qnum9UIMKWTrJbU6vvvQOLc NLiOK1LDJqnWLvt8CZnXx/FDcVxG+8I= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=Md+k52HB; spf=pass (imf14.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.42 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=1678866143; a=rsa-sha256; cv=none; b=GWoEEXRz/LRzLMMTNkWSudU40OkPEhxwGKWjyFgonbHf19dx7m4hkoQ1cHElPl//RFBWJv Ry9NMVimOQ7U8oeCxY4fzB6fIzASUEMK+ya2oQ1pzjJxN/eTQ/CFEqlkeT1ws8V34UJWoa t/x8U0Ue/eqTfKTlGN/p7WB+y9QVEpg= Received: by mail-ed1-f42.google.com with SMTP id r11so20224539edd.5 for ; Wed, 15 Mar 2023 00:42:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1678866142; 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=x2TKn7rr/0jmkCAjTwGgyC0rxtnKkaHeomCSW+oE3kk=; b=Md+k52HBqhCApvx3L5j/YJCPeSM2R2m5nPnZzRMqgk9RgiXdxm6tkZMmJEG+KpmE5H zLhyNwIqAt4DjrO3ZP3qwBmtGE0z8vl2TNNVOVUu4JrHRT5XNi6GbcH8B6hXF+wNPA8o WMwu9q5LtLg/DB9PU4V10aTjUnIDJCsbFIgGNO/wb5Hojz9ZZry+H3qbMpqaP/tGB8fK CnmkfEylsO3aLikiKHeFN1bghR0AYAJGk95QEr1O2CmYCYqi6LT6ZEeRQniD0wgvp+cs PRiNv0ll14eRquW7wNKbEa5904Xgcc7uKGdmHx1ZwC78dtSgIrtusGs930FRk0SWNGeS fNyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678866142; 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=x2TKn7rr/0jmkCAjTwGgyC0rxtnKkaHeomCSW+oE3kk=; b=yhjbAsfF4v9OxhK/U02dMBBqdVYeK/jU9RedBmSu+LTRppRRz1MZPt1zYelt2codEQ aNlNf3154kylq19GvCzhWr58wqBnpO2g9+Cv+zexylSw/kiLbWlI6fK7mC3Sk11YPrNv jB/xji/I7w8MOqAiAnHAgNyjf+GLIaeQJ3hWjZeskQdCeQF0GE0AJn5+iUzYvgDOcdgY 6B7ueR+aH8OBTnRzlCJeaCCT1KtLYj9RO4sgEyUFOCf57vYipxIqs65fEMXBrrZywpml iqwupXrP1Y71yne4Rh0X1hAMce+fMnE3SXPmhWd7UavRvyMFDeeX3I+lzRSHiICU2vGG zF7g== X-Gm-Message-State: AO0yUKVp+FQJ7maze88W8y4hRrbtLkP2Vs7aPwj6Oy2x0wo5Um6qkXWQ 11E09thHV2qqQ1Sq4wow2DtgR4Oi2rD7okeMmRNgKg== X-Google-Smtp-Source: AK7set/f5QX2ZkPBIflCLtBJeUD8PnSVRK8uIzXr8n0UItDw8fQXCQZC9sryzZKWgG3349X47e1JxR2f9brnidHDQKU= X-Received: by 2002:a17:906:6d49:b0:88d:64e7:a2be with SMTP id a9-20020a1709066d4900b0088d64e7a2bemr2848725ejt.15.1678866142244; Wed, 15 Mar 2023 00:42:22 -0700 (PDT) MIME-Version: 1.0 References: <87356e850j.fsf@yhuang6-desk2.ccr.corp.intel.com> <87y1o571aa.fsf@yhuang6-desk2.ccr.corp.intel.com> <87ttyp78xx.fsf@yhuang6-desk2.ccr.corp.intel.com> In-Reply-To: <87ttyp78xx.fsf@yhuang6-desk2.ccr.corp.intel.com> From: Yosry Ahmed Date: Wed, 15 Mar 2023 00:41:45 -0700 Message-ID: Subject: Re: [LSF/MM/BPF TOPIC] Swap Abstraction / Native Zswap To: "Huang, Ying" Cc: Chris Li , 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-Rspamd-Queue-Id: D53F9100005 X-Stat-Signature: h17aix46o4poch7n5pekrc3jn65fxxff X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1678866143-630498 X-HE-Meta: U2FsdGVkX18YJbimkf97zMYfh6hHNhH+sbt/U2pbpE40rctE8QP6ztceaN/Lp4Ly9TRk3WlaK+iv9Xt1p5zP7TDko+ecIxhPLlho+Vs1I1ScHFcmFXNuIiT/EftJIpy9lGSQsuDhsSw62tCFtNTvRQFvW8lPEP5VnFO5i4RMjJ/KGmpdEcx3NqhToi5nO87EJ/GSMTWJQ8TNkuuv7+YJLdtT+SDAPTaXNLOQYCgiUc05CC+MPUhW78ES7kpoUnHBRjngvsjUtpiila+9HrY3+dV9p+05LIn4ff+skMCNObrMqdWdkd8toy0YU4cUM4B1+l8GC6L/YL5GEQ6hbhJdTSKhi5od8XThl3Tk6ssAr1l/NWgDnI4fHJ1RtplJcdooVlQLsQM+aoOxdUqok6N63899j1Q/3U8E4kda4vIWwYpqnrxx2P1x6vfaWp6XQSz9yA+Adc3LZXJ5RTyRg78n3EEb66Hu0Xc+5/lREAva+2xkAFWp3JH4OX9QTtIJuSINhkXzGtCxNxlc5dkuNM2usK6hTo2YVkhllnlViYm8iqIThWzbT1J18uSIAVPKPCQdqV0hGdh1pNed5O9HDE5CtfFvXXdGRBa3Bfi9IGlTV3G+V7mM5/sO2FtuJX4eaeqIqv/oo68rzNvzxJ1YrCPOQDLzYT2uZSOaPKj3augMZzH+kGbPS6dA/e/qkQmQv8yUbOPuIx1UgKf183aEaoFre71kyHqIDPRsdjQ8JiX3u8UbXcY9AmzmMpyfsaox+xsJANrJ3IVLS+UMt2px3/SBd7/9q3CiDfOA3KvoPdRNoNJDys+fDOoU5RhszPTq4jWVJBGbgeJv2dm4zogPbUx0evHrmbEkBkju+SOGwtUWGkdMo6MxKCYbnnhnWJR+jra5gETSN02azYD6rnlpvM78BRssj3bhOjOtrcxFLIry9MyVnV3lE2ZhOM+L54KEtbyREe2odjFOeZ3HY+BZ/xG fFecCZv8 2B8z7pdNNq7c54ftfSAu/jtUNQfhOJ2RXSX29bvB+46XAqK/rXyhr1na27BVvxjEGUUgaTYw5IBS6yF+rhw6776ARAc8tR3Wz43JqJFoxhH6lJZ72zzyHqhkUybsrO4vwukdlxzxjgVzK/37RHbjoWCwihol53sMWVao8gwa1EOfOWmvfUL6UyUqalsXBy+409Q1FyUM5SHG436ycHI9SBbKX/08C3Tmf9jzA3aXY5D8VQoK8NALKSrY1vat+IGM+Zb18IMTdnBZiyH89loBS5FZwtRG43NVnBXt0FavA0UyuxFXBicbRbCyObW7CJr6jGgf8kPkk4ajv0Z8= 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 Sun, Mar 12, 2023 at 6:11=E2=80=AFPM Huang, Ying = wrote: > > Chris Li writes: > > > On Fri, Mar 10, 2023 at 11:06:37AM +0800, Huang, Ying wrote: > >> > Unfortunately it's a little bit more. 24 is the extra overhead. > >> > > >> > Today we have an xarray entry for each swapped out page, that either > >> > has the swapcache pointer or the shadow entry. > >> > > >> > With this implementation, we have an xarray entry for each swapped o= ut > >> > page, that has a pointer to the swap_desc. > >> > > >> > Ignoring the overhead of the xarray itself, we have (8 + 24) / (8 + = 1) =3D 3.5556. > >> > >> OK. I see. We can only hold 8 bytes for each xarray entry. To save > >> memory usage, we can allocate multiple swap_desc (e.g., 16) for each > >> xarray entry. Then the memory usage of xarray becomes 1/N. > > > > The xarray look up key is the swap offset from the swap entry. If you > > put more than one swap_desc under the one xarray entry. It will mean > > all those different swap_descs will share a swap offset. > > For example, if we allocate 16 swap_desc for each xarray entry. Then, > we can use (swap_desc_index >> 4) as key to lookup xarray, and > (swap_desc_index & 0x15) to index inside 16 swap_desc for the xarray > entry. With this approach we save (16 - 1) * 8 =3D 120 bytes per 16 swap_descs, but only if we use the space for 16 swap_desc's fully. As pages are swapped in, we can easily end up with less than 16 swap_descs for one xarray entry, how do we deal with such fragmentation? At 11 swap_descs per xarray entry, we are not saving any memory (wasting 24 * 5 =3D 120 bytes). Below 11 swap_descs, we are wasting more memory than we are saving. > > Best Regards, > Huang, Ying