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 8D8F9C41535 for ; Tue, 19 Dec 2023 11:56:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E7F916B007D; Tue, 19 Dec 2023 06:56:31 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E2E656B007E; Tue, 19 Dec 2023 06:56:31 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CF61F6B0080; Tue, 19 Dec 2023 06:56:31 -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 B4B786B007D for ; Tue, 19 Dec 2023 06:56:31 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 83B7C40294 for ; Tue, 19 Dec 2023 11:56:31 +0000 (UTC) X-FDA: 81583415382.07.89C7588 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf22.hostedemail.com (Postfix) with ESMTP id 1D73AC0003 for ; Tue, 19 Dec 2023 11:56:27 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=M4xYrQ+t; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf22.hostedemail.com: domain of chrisl@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=chrisl@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702986988; 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=FWor+Udhkt96ABuZA1Cd55F+atfEooieET8gAaCZ25o=; b=ObpAJtonQ4289V4ZDfrH8JNZwvzDufxzRZPzTkAFhBwSrECICyBaymc8zPWiIc6AioJcmR 5dIffjZkQ1gEAaWyPkxJ84WMONyq1tT4UpGA5K0Jr4J6Kto/vVG4mD0KBQHu84noJi4pSO Yr2scEZc+T3ZPWsfB7j0QJlTU9zFlkI= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=M4xYrQ+t; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf22.hostedemail.com: domain of chrisl@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=chrisl@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702986988; a=rsa-sha256; cv=none; b=m4KgnsaNLMN/6XxfTA4gSH+itmbBXTZ7KHhX+w2zODwOAznjeRSakUNU/uyZ6cY8mnzf7k tQk6Ml5JqFG9woaj36EOSghhjpB87W9jmPvNMUEtsCHuAC+FyoG/TZij7wpBwlkcWeJ5wX 7y53sS5OjeTzBhg/02JUWqSRo3uU5nk= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 19216CE16FE for ; Tue, 19 Dec 2023 11:56:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2845DC433D9 for ; Tue, 19 Dec 2023 11:56:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1702986983; bh=W4Km5BUCImieH3TlsrHeoYW32Py36cu158I8pZSmnfQ=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=M4xYrQ+tIPHsJdvVFMVpYxh0B/UzD/hWUc7XCGanXCyP6mB0yoAQWYrCiwgoG7q8b /Rz7pvNVmpG74CUSPhv16sjidihMUodqbd/eEkSHUC1vFALVda6tKx31jN1B52DWN9 0acwVTJUGcwIchRDiXe87zcd87N466C7ROsAMBDTsxxJ708xMBQunNcshdiiq09szc 1VtFt6L6npAt5Zkiz1bznGbamFcRxKb8jSXaBev0Iq/UsPwdGISOyM44dwA8DUEt7T 0+NUvyL44YI5WUdEaxglPt30eaFad0TTUx6QfrP4fj3xzLS97E9uFSOvf+K1eEarQY hgpRzLRAs+Vyg== Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-28ad7a26f4aso3707921a91.0 for ; Tue, 19 Dec 2023 03:56:23 -0800 (PST) X-Gm-Message-State: AOJu0Yxj9GdnUmMb7rVVVHjF53x20hNF4D6hFTwaU9r0MB7bhDSJcIYS DjF38pqtpjh7tJlY84Xkt9mtlXzORXsQxLiN9j5tjg== X-Google-Smtp-Source: AGHT+IHvvxHbPHkj8Vwa4wMSIQTUgNRZuXA3BmwwDBi2HgelcGrTVhk+BEG6Gg7UKtpwRvBCXv63qfAGii9NBTEQIhg= X-Received: by 2002:a17:90a:4f0e:b0:28b:7c39:2d98 with SMTP id p14-20020a17090a4f0e00b0028b7c392d98mr2329863pjh.25.1702986982592; Tue, 19 Dec 2023 03:56:22 -0800 (PST) MIME-Version: 1.0 References: <20231213-zswap-dstmem-v2-0-daa5d9ae41a7@bytedance.com> <20231213-zswap-dstmem-v2-1-daa5d9ae41a7@bytedance.com> In-Reply-To: <20231213-zswap-dstmem-v2-1-daa5d9ae41a7@bytedance.com> From: Chris Li Date: Tue, 19 Dec 2023 03:56:10 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 1/6] mm/zswap: change dstmem size to one page To: Chengming Zhou Cc: Seth Jennings , Dan Streetman , Nhat Pham , Vitaly Wool , Yosry Ahmed , Andrew Morton , Johannes Weiner , linux-kernel@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 1D73AC0003 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: bo44fxytdhosqs8fodgj38575o887heq X-HE-Tag: 1702986987-754459 X-HE-Meta: U2FsdGVkX18qEJVTLuslEOHlWt6ABwQCzQGGFeBlMAs7Ay6r4OKi/l8lamfgBcXpY8z/fjXbOs5G1t69+HLM+bMwgfrVBW8+64MhAj/assjp6Sw92NNi9pL6utfQ+D5CxxwkL4uTyc67HvLLjYFnK6SvnneMK+m66HOao8Dn2Ig/HFN2VDnqOhEJrgxKQCGg51W/SSC46MgX10/4gtUnkt+zL3CZnS0IKHARQTAA/b853Tx+UHUW8nGyXUfZg6eHaynu1HFsBHTYBNAGiSm62Z/MQKa3Ek008KYwjxQdlJ04NTaGquB+MrBTMS2pBarNCBOVo9pnrFMwah0xbaY4yJ4M4N6CUGTXBGLH4lhNiQCz6+7l4NNJE/rl1vQSiqkmP5Ee6O+iw+78ypDqf9wne6ZuKhHi+9g78sYgBipmCD2giWr0RDvtNam7kSJO0WLKYiWDSLxhSpzio/UYfO7rgIk2u3zaMi3NNw3ljZ5RtshooXRFUrM+0YA1hP4FGUuOcAKR9c54K1fWsxbLuX5J7M/tK8O6R4Rxfhce+0q6bPvNdvF7ovkJIOp8MMXR0ORdX7kdr5RkhuX/rD1Wvg24n5PB+Z2r/wPoViVjkxOBMXSdFAc7QN1mKr4GwIsFFmhZmsY1OnNvtb5jZSFz+IK3HazZG8kxQYhhZgKnK0IcpATlburzjgyixnpTN/bKYCc4xhs7X/wvptBIjmUASB4ihk1RYz4KJRTBDbKLPJDgjy1L/MXnXewnKADJyMKYqqbhB1y+znwsPVu8VtSaEEE46aGtvZJFDujRfJ4hiHf6sZBzamm6cF+VoZDelIY1XwBESsUCnzp4F7imkM80Q21tMMIpdrLJuzFI4jR0VsPz1E0yR94gJYvGQjEJ//EM+4FA616wHG0uggOy0jGfn5+jp1D29TIYPDs+uNP0+BegTJA4nfBTwAnCyreEF76TjcHJka60w71PN7Tq8kgFlJQ 6FhtpLQz Gpe6QH40JtSnNi5YRytkV4eysVHE2aj4gzFQulazGw988tGvtYgDrONwsGJ3HBb/JpHjFnKmUWeyZptQAixYtTKY3eb3rJql4u/e2VzZvJMEbsQfa0yVeQMH4WY9YfK7itKXt+j3ZhrXR77hhzNMW6hUS3xxPJOKXncjHwcqz28llj1TwnmZejYHbBviW5mqjpG5IZP417NN0e1wiBq3AvLLKN1rfGtpUyugV4G4D0xTNnP5tJEsXPjG3HWMSkidSj2eDCgxRMGvUSNM0Xjumq5SHr7JYkZLkLbeouHPWpRbTlnplmP+2GsZqh108e2+gt0nedLPHlT88j+4+8gTPBBth3dgB3RYsZclgU3kjFFJ8Cux1UD28c5w64SJK+qnJXeE8 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: Acked-by: Chris Li (Google) Chris On Mon, Dec 18, 2023 at 12:22=E2=80=AFAM Chengming Zhou wrote: > > Change the dstmem size from 2 * PAGE_SIZE to only one page since > we only need at most one page when compress, and the "dlen" is also > PAGE_SIZE in acomp_request_set_params(). If the output size > PAGE_SIZE > we don't wanna store the output in zswap anyway. > > So change it to one page, and delete the stale comment. > > There is no any history about the reason why we needed 2 pages, it has > been 2 * PAGE_SIZE since the time zswap was first merged. > > According to Yosry and Nhat, one potential reason is that we used to > store a zswap header containing the swap entry in the compressed page > for writeback purposes, but we don't do that anymore. > > This patch works good in kernel build testing even when the input data > doesn't compress at all (i.e. dlen =3D=3D PAGE_SIZE), which we can see > from the bpftrace tool: > > bpftrace -e 'k:zpool_malloc {@[(uint32)arg1=3D=3D4096]=3Dcount()}' > @[1]: 2 > @[0]: 12011430 > > Reviewed-by: Yosry Ahmed > Reviewed-by: Nhat Pham > Signed-off-by: Chengming Zhou > --- > mm/zswap.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/mm/zswap.c b/mm/zswap.c > index 7ee54a3d8281..976f278aa507 100644 > --- a/mm/zswap.c > +++ b/mm/zswap.c > @@ -707,7 +707,7 @@ static int zswap_dstmem_prepare(unsigned int cpu) > struct mutex *mutex; > u8 *dst; > > - dst =3D kmalloc_node(PAGE_SIZE * 2, GFP_KERNEL, cpu_to_node(cpu))= ; > + dst =3D kmalloc_node(PAGE_SIZE, GFP_KERNEL, cpu_to_node(cpu)); > if (!dst) > return -ENOMEM; > > @@ -1662,8 +1662,7 @@ bool zswap_store(struct folio *folio) > sg_init_table(&input, 1); > sg_set_page(&input, page, PAGE_SIZE, 0); > > - /* zswap_dstmem is of size (PAGE_SIZE * 2). Reflect same in sg_li= st */ > - sg_init_one(&output, dst, PAGE_SIZE * 2); > + sg_init_one(&output, dst, PAGE_SIZE); > acomp_request_set_params(acomp_ctx->req, &input, &output, PAGE_SI= ZE, dlen); > /* > * it maybe looks a little bit silly that we send an asynchronous= request, > > -- > b4 0.10.1