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 D134CD3E787 for ; Thu, 7 Nov 2024 10:31:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5A2958D0001; Thu, 7 Nov 2024 05:31:32 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 57A396B009B; Thu, 7 Nov 2024 05:31:32 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 468CB8D0001; Thu, 7 Nov 2024 05:31:32 -0500 (EST) 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 251566B009A for ; Thu, 7 Nov 2024 05:31:32 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 614AE1A05B0 for ; Thu, 7 Nov 2024 10:31:31 +0000 (UTC) X-FDA: 82758931038.25.83C48D0 Received: from mail-ua1-f54.google.com (mail-ua1-f54.google.com [209.85.222.54]) by imf08.hostedemail.com (Postfix) with ESMTP id 0516D160026 for ; Thu, 7 Nov 2024 10:31:05 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=HmYMZsuk; spf=pass (imf08.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.54 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1730975322; 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=+Dyvdn7v6d2yb2MZ3QqXkCPigg64Kr5P4VoPbiykLqU=; b=qMtOKCwFZ/NX5Fw9NlrzR+L3Eeer05Mxh4GJOxc8L8kKto4QTRAT1UHA1TEqQZ+0XuKvxB GO1rj39HqCBOjf+cmQpUowcgfe79fMw/sAmjSTnltPWX91E1tnUlDtdsmQUKfR92/JItQq TKrGJAaIEWfSEGWZ1FKrVzO57evyYV4= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=HmYMZsuk; spf=pass (imf08.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.54 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730975322; a=rsa-sha256; cv=none; b=z39pBjm4dpIHpSLXVt/tm5HeIbsTdbYX4R8w7bn984uVo4KslM8QaM+ft6k69lRnWjQF/v 6+4aYlbdP6i/vZdLZxj+gzgf/9T3cP+NB/DPiKLQlXggEQ9VcRkddQ/RDJlOBWQMeQWd5I QA4jMxY1FznbBHIJS2ZMMbcp7amX2Mg= Received: by mail-ua1-f54.google.com with SMTP id a1e0cc1a2514c-84fd764f6ddso695567241.1 for ; Thu, 07 Nov 2024 02:31:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1730975489; x=1731580289; darn=kvack.org; 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=+Dyvdn7v6d2yb2MZ3QqXkCPigg64Kr5P4VoPbiykLqU=; b=HmYMZsukWe8UcPlVS8KE+/6aJUG0TW+2HRXs9R/Ouk3DQKrbwhxmVTD/RLouv5B8l3 Bnw8AMgus1Zy6IBUtsKs0me5UN4XsroEpgYMZMNeX4Rq17LdL6WAolRm45APD0ZAOisV 49RdlUkYQLNT/Fnz4cyGdrU0UL5HAXtuUnxkFKB5G+WyStB91/ISi2UFVnboYkQWoMRd eJpv34AwVQ+Uxhem3oNPAfRH8+vXKhHT44Mvgt/gL5b56WdMh8KR6VmuO1zy+BR+ksx1 e47q24m5hVpDFOCKnIRlqbolG/0h0axQE1JDMDo1eJMTIh9TVH2hr2FaQb2PV4QG6h/P qfpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730975489; x=1731580289; 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=+Dyvdn7v6d2yb2MZ3QqXkCPigg64Kr5P4VoPbiykLqU=; b=T9KksTRQ9ApyE8K/gkR/DdwDuBcusJbLP8DojMIOIyaPHtPBWk3MccKMkUP4+Pfhfx q1HSgBZ6Cc1UU8hlaTPI48v5T27uHLa6GtO8mvhhaP6GDL9kJytphmHom1XhpXzVcSp7 NSxO2tKRu3rEUsFVVMYD0ZPNpV1LwVDdbsatdEOUKb9QhC4BclPK+q7hDjZWUMQwOdTY +mCy9yA97OU6K4Octc1NSq6sX+ccDviMElnbAdPCRaCs40NSB97R8s6nueJ7jfESiKE3 KIfLnAYYXkukgauheFpr3L5YdYZ4ymuivcFE5B5yI7o0SStFmnUDJh18mZmPhebJf90X u2Cw== X-Forwarded-Encrypted: i=1; AJvYcCVKEZdsw1SxOyM4FcZgDx6DkyTLuowVsyJaCHoJ/ZWcx0aHjP4PGHYz/nBZJSPts5Exmtkvty1BBQ==@kvack.org X-Gm-Message-State: AOJu0YxrsVmiJgeJMa3JNKOPO/fXKKKiynhRWaMoJYcQCZjdaQQ7EFB1 BKeKMP/1yGDNh+WlAHCSmyPTK3kIOJOQO6LdATMKWBi04biQg8pHMX7G7clHZ5/29rTLR/3cg04 ATKBv0z7BeFGHAmJdjxjcrFkmGl8= X-Google-Smtp-Source: AGHT+IHXxHgQoO0T1ANwNe77Lg1V1lKG8mCpZrsgd8dhpfSaj1b+fp5W7LT2yYIqTxTcfQ32fnCI1QjD5Er7neBJuFE= X-Received: by 2002:a05:6102:d8c:b0:4a4:8a3a:4539 with SMTP id ada2fe7eead31-4aada7cd05dmr155741137.8.1730975488561; Thu, 07 Nov 2024 02:31:28 -0800 (PST) MIME-Version: 1.0 References: <20240327214816.31191-3-21cnbao@gmail.com> <20241021232852.4061-1-21cnbao@gmail.com> In-Reply-To: From: Barry Song <21cnbao@gmail.com> Date: Thu, 7 Nov 2024 23:31:17 +1300 Message-ID: Subject: Re: [PATCH RFC 2/2] zram: support compression at the granularity of multi-pages To: Usama Arif Cc: akpm@linux-foundation.org, axboe@kernel.dk, chrisl@kernel.org, corbet@lwn.net, david@redhat.com, kanchana.p.sridhar@intel.com, kasong@tencent.com, linux-block@vger.kernel.org, linux-mm@kvack.org, minchan@kernel.org, nphamcs@gmail.com, senozhatsky@chromium.org, surenb@google.com, terrelln@fb.com, v-songbaohua@oppo.com, wajdi.k.feghali@intel.com, willy@infradead.org, ying.huang@intel.com, yosryahmed@google.com, yuzhao@google.com, zhengtangquan@oppo.com, zhouchengming@bytedance.com, bala.seshasayee@linux.intel.com, Johannes Weiner Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 0516D160026 X-Stat-Signature: cyz6gefa8wu5uhp91hqoo4hstxpp6zjk X-Rspam-User: X-HE-Tag: 1730975465-871682 X-HE-Meta: U2FsdGVkX1+PVbe1Z6cS2dtl4huzzBknItnDqfCmbZEz9A/3qgWou+P992vMUEMGVDfq0wHksJeRX0Kd5bAPjalHw2oS0QEAI6/QAz+aiAA7Kc/f3LrQgPaVNP/Y3q3C7RW0TpMcjad/5yHukjN4TfsNMUBINQkphh2MeAhrtRxe6yUzvH+ZGao2GXphCKiZTNfs/doYoAUkGd2reVya/zXFqE+/nTog2VTHUfPjvTgWT6nms/HW3t+2c4To2C3/1bMgFo+iypUJRo6ChxUCoWiTa3BNCCq9T8V78Tcloc01vrCeMWMNLVu6e251o7+Tli7VAIomGXGqzHMQ8E7PF+qd1MV5RcjUgRVikhl/zRzsx48S05Mrt2nqjQJBVOnIP+POtzYBmssELG36D2Y+y3lTQ4soVJ3v3vwqVt/YtvbS7CwyzVqUWlV9R4KpKpyDde8bJIX4ilHW3gVnn9xRgaeaoizFF19QaFPNJr0eQjKBYdiKthjD6caniRsZIO0cuyv2X3wNNb2sze7oCZXtG54dgN7ikkqUH2ZrAlXe4r3T1oPvvbmJR/jNP0duyaEHVxWcqc137euyLjH0tlRbkmnQhxpZFtx6OVi8w7a1HK8qLWqawD9k7L0FOOfDfxg+Lpov/MkYoeuSiNfI4jJaUsEFgdZpKPtoGei3bsyO6ufYXf/8UZfzfP1uXcKg+FFR31BFA9esp0PpwVsreXgax/lXhN2XqsUtT6Rh43mAFkDHWiXNm4ekJf2uczowFTnviTBuePZ5xH9zkDOvt5KB8DJIFCWccm3s6m+bquyvQXX16fz403kcp5msVxEDukKxDgQUputjhtUaokHEt5SFG3uyvGKhzAZKW6ozdRXlMJQCVKUWqzMxgYD3SCWE6PqGCSPhHbKPme+ypX8St/h8yhWiEiCRZycnIOwCtTDvAKviYFxt8MeWBctR/oIJxzFMtqHuCaVsxnusQKPdtnB BidhvDuu 6scj5cMonF8OHqY/UK9ZzOpEV3uOKrWO/ue9L85jy5+VueGD4kWKdGX9IRYn/FcCNHZX5+xcvxVFdipu1hRmQjv4fhmtCnv2IE+o4JALM59pBVc0ynm5HtsSkWCdXIT3/IRI537M/WeUHnVsZdHokEaO/xBfjnHSdbZ9/YJFySuGJcVVyLPwUtqHqvGHf+2hWqMc9qd8CgERPExg6GRPQt4mCiuz7GbeSDfEN9agkVnqFrDAmPAoUPGxMNAu2HSCzsLMjcebt1HVK7yRKizLJSKyCAd3JRfmC8slvjK0MiOO6p0k1zev3C6s3bQgEATM2yj2lc3FZDr6oApCItPhh3WbJ85K9I32ELPTDrXZoM5sxiLx6Y1wpRYo10w== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000320, 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, Nov 7, 2024 at 11:25=E2=80=AFPM Barry Song <21cnbao@gmail.com> wrot= e: > > On Thu, Nov 7, 2024 at 5:23=E2=80=AFAM Usama Arif wrote: > > > > > > > > On 22/10/2024 00:28, Barry Song wrote: > > >> From: Tangquan Zheng > > >> > > >> +static int zram_bvec_write_multi_pages(struct zram *zram, struct bi= o_vec *bvec, > > >> + u32 index, int offset, struct bio *bio) > > >> +{ > > >> + if (is_multi_pages_partial_io(bvec)) > > >> + return zram_bvec_write_multi_pages_partial(zram, bvec, = index, offset, bio); > > >> + return zram_write_page(zram, bvec->bv_page, index); > > >> +} > > >> + > > > > Hi Barry, > > > > I started reviewing this series just to get a better idea if we can do = something > > similar for zswap. I haven't looked at zram code before so this might b= e a basic > > question: > > How would you end up in zram_bvec_write_multi_pages_partial if using zr= am for swap? > > Hi Usama, > > There=E2=80=99s a corner case where, for instance, a 32KiB mTHP is swappe= d > out. Then, if userspace > performs a MADV_DONTNEED on the 0~16KiB portion of this original mTHP, > it now consists > of 8 swap entries(mTHP has been released and unmapped). With > swap0-swap3 released > due to DONTNEED, they become available for reallocation, and other > folios may be swapped > out to those entries. Then it is a combination of the new smaller > folios with the original 32KiB > mTHP. Sorry, I forgot to mention that the assumption is ZSMALLOC_MULTI_PAGES_ORDE= R=3D3, so data is compressed in 32KiB blocks. With Chris' and Kairui's new swap optimization, this should be minor, as each cluster has its own order. However, I recall that order-0 can still steal swap slots from other orders' clusters when swap space is limited by scanning all slots? Please correct me if I'm wrong, Kairui and Chris. > > > > > We only swapout whole folios. If ZCOMP_MULTI_PAGES_SIZE=3D64K, any foli= o smaller > > than 64K will end up in zram_bio_write_page. Folios greater than or equ= al to 64K > > would be dispatched by zram_bio_write_multi_pages to zram_bvec_write_mu= lti_pages > > in 64K chunks. So for e.g. 128K folio would end up calling zram_bvec_wr= ite_multi_pages > > twice. > > In v2, I changed the default order to 2, allowing all anonymous mTHP > to benefit from this > feature. > > > > > Or is this for the case when you are using zram not for swap? In that c= ase, I probably > > dont need to consider zram_bvec_write_multi_pages_partial write case fo= r zswap. > > > > Thanks, > > Usama > Thanks barry