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 261B0C48BF8 for ; Thu, 22 Feb 2024 19:20:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B1B846B0089; Thu, 22 Feb 2024 14:20:33 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id ACC976B008A; Thu, 22 Feb 2024 14:20:33 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 96C716B008C; Thu, 22 Feb 2024 14:20:33 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 804876B0089 for ; Thu, 22 Feb 2024 14:20:33 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 571C0A15AA for ; Thu, 22 Feb 2024 19:20:33 +0000 (UTC) X-FDA: 81820406346.11.3F95F45 Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) by imf24.hostedemail.com (Postfix) with ESMTP id 9503A180030 for ; Thu, 22 Feb 2024 19:20:31 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=GAwL+NcP; spf=pass (imf24.hostedemail.com: domain of 3fp7XZQoKCE8F598Fry3vux55x2v.t532z4BE-331Crt1.58x@flex--yosryahmed.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3fp7XZQoKCE8F598Fry3vux55x2v.t532z4BE-331Crt1.58x@flex--yosryahmed.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708629631; a=rsa-sha256; cv=none; b=mz/0VDiphaGiQz80A2vmYSWHsOAR2vDzUCkW8W+I/9qaYLsZ+TyTvCj9GbHxv8+feUSbeu q0vDACJidw2ODAHvAkxo81Vd5cxDtFh/68PmspASNbMghMvTZzw3OmQCfKyWfeXbCOhWjj 2Q9Yjyzgrn59MVQDDwc/W+gGDXjxqDA= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=GAwL+NcP; spf=pass (imf24.hostedemail.com: domain of 3fp7XZQoKCE8F598Fry3vux55x2v.t532z4BE-331Crt1.58x@flex--yosryahmed.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3fp7XZQoKCE8F598Fry3vux55x2v.t532z4BE-331Crt1.58x@flex--yosryahmed.bounces.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=1708629631; 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=NI/Koe2CrQjb3OlXia8exOChMcl0s7CtRCQE/GU2cEg=; b=HeVGJotTZ5Fd+PZtCQ6SGijePRvIwuOcJh/OzchkvNka2cAKitpPXeNrBSbD3U/4eY/ElA xS/1vwVudqW4Oesi1bAB4MrBF4bN5jmt/ISiaq6wUP0rNshHt+krlGArSiEUgL2+yQZKCf yg6J/wx5VGadznIy1VhFFRq01JKSeiU= Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-6047fed0132so1437357b3.1 for ; Thu, 22 Feb 2024 11:20:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1708629630; x=1709234430; darn=kvack.org; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id :reply-to; bh=NI/Koe2CrQjb3OlXia8exOChMcl0s7CtRCQE/GU2cEg=; b=GAwL+NcPLSKTY19wQx4zDZ6duTZ1j1j+UimMK2Tqooljhysx+b5CHAXG7aWLy3Jz9s 7PfG5RiAxDCIfVu6ZT9jXYC7K4Rr8xhBPz8X+9kB//VJv7UhljWSfMWY59N6p15cyVYQ sxb2IPOxSxxA3Dqt3zVl2vbx8bLiSkrWRRJ0wfGCbAz4oz0TeoQbQCMPBrxVMkFtBHHV OxG1VCo+2IPg0CaqPc8v9ggACrIpq8Ot7lXFqkx+qg5GmBmnirvQ8YyFP5Yk7XMSDZyJ W79IUK12DgRmbm6fjVWXGg8RYknUUjP6cAdNs5aDm+wof7AE/1rqeoS+Y48+G+Ck14xS E5+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708629630; x=1709234430; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=NI/Koe2CrQjb3OlXia8exOChMcl0s7CtRCQE/GU2cEg=; b=vNsuJKLvDDPfoBkr3SkInjbOmtUnxOz6JZGEbQSfzZLQb8CnMADT2nyzxTJIktXP8g Ny1LKh915agE8CxPl45v46fI3y74QRHaPwHC50fPb3407XQEsbj0scLhwrgDswmYn3ko 1uXqqxcXlydpFSi8eeBiYeUn069/nrfFkmLCgpud6Ha5z/bLDVozCQm1oNfc+zHyU0xG oREAfnZJhEl0hWrcMEkXfperTTnPc9seuCdtV01Gr9jiSL6yZuyBWl5VWt3+vsfR3Av9 KxWTej2zJwRMwUxBO83cj0DvN38bKpHBERjmAq2cIJusSDwcHc3xDyX9R2nlz2lp5ME6 4bNg== X-Forwarded-Encrypted: i=1; AJvYcCWJ4lDswgm1QFWh76sNKnwMGFztVMJx6PqeuuZCY59Het4P2ybhu7VpEEzDryLE8Qj/f6kzEOyRneZfZXHsUdOA9iM= X-Gm-Message-State: AOJu0YxIkpYhPZtVqnv97vTVehH0X9EWOLuIL5ToVaivZOs7ZyoGNyPH nBcI64k66kkVjzyBlu+gP2OcRrwKHwIKiF7LXNZX/d+jIU+vMYaSgH7NBkrrxhmki4SnB8TmgVF sggpKcoidLA09V7Bz/g== X-Google-Smtp-Source: AGHT+IGetz4V2Sr7DuWLHIVvxqx/VQGxETay3qgiPi7I20KxUZw+yYeh2iQbnGqzMLDaLR4aUYNqzFb12po+bfBY X-Received: from yosry.c.googlers.com ([fda3:e722:ac3:cc00:20:ed76:c0a8:29b4]) (user=yosryahmed job=sendgmr) by 2002:a05:6902:701:b0:dc7:66ec:9038 with SMTP id k1-20020a056902070100b00dc766ec9038mr1336ybt.1.1708629630720; Thu, 22 Feb 2024 11:20:30 -0800 (PST) Date: Thu, 22 Feb 2024 19:20:28 +0000 In-Reply-To: Mime-Version: 1.0 References: Message-ID: Subject: Re: [RFC] Analyzing zpool allocators / Removing zbud and z3fold From: Yosry Ahmed To: Nhat Pham Cc: Andrew Morton , Vitaly Wool , Miaohe Lin , Johannes Weiner , Linux-MM , Linux Kernel Mailing List , Christoph Hellwig , Sergey Senozhatsky , Minchan Kim , Chris Down , Seth Jennings , Dan Streetman , Chris Li Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 9503A180030 X-Stat-Signature: iui93acyxgjwihw3d9n3dw7f7nbxxc9m X-Rspam-User: X-HE-Tag: 1708629631-395649 X-HE-Meta: U2FsdGVkX1+5hlpkrtPtmWiZH9CwZsb258YHsbIHstMi7qaCRbTzgd4LLyBTpnV5l8CdkfueRgVKvVty9/j2Ve4oU/M1x99eksn48oHtoZKwV//Dcdsiu/arM2gmds/LzmuD67v0RG2vUWZkvF9Mm3/x/EQv2gAjtzo2UCgeGVk/D9g50MmbkxUClF6th2VLb/rrVmKJGcDTJs1bJeepg5XiTizsn2gb862NTpH8LBN2Xy4xwA3WOqKA+i0wlZlCUjI7S2y+ZDMcK/iWQv+ge9GoqPl7A17TM5YAKi/+GdtyWcXvXsXLvqWNoW3ZAamrA+JE2jd24XK4ZX4ZP0SksZHJ5iWom2WuGF5x81nMaBwuTcRjEhPf+AmnniJja4Phunbhue6hI3lEAxcBh080RSx/SuAKvxepT270DDC03d6Ywm/8RTe7PdaSSzHI6KczUJ0JMyhqO/Acer7fCTQ+ONYuDzQe94jBz+YWq3tYHIfqG/oUtAkWKryil93OB+e8v+uUMGP7/HLTLunnlxfh/65a6oFfNVYy3zTr9QtSrShGXsO7czkRfKTcgx3RjC0lEXVuG4tTXtOXEAWhX8fCrZ0ABsR09yUgTgt1xxJVF/sV/EiMrsUjQG3IXgv4N2tUJLisW+g2hpVohX+W/RbyKLOpAyJuwlG3JoFkbp0g40jMGQRl8OOxOZ0TgIz9YMpaIWXizC+9G9/fP1VeLUq3Y4J5DUfdChDE3YYIAUP41mkPbhx+FG779xWR3iFHTfvcubQidb/8bjeLEthz8+8sRdBH8QvPmWVQpiq9pFhh4q/0SGNVqG4baI8OqhfVr19KPKADeIjoZT57yZWoZfx+T1vbjDkfa1ps3NXv8RcnI5v6aN4ppJUU60wEWaxQQgvsDd8dq8T9RLxjyWhq+S90FP3a8G9jYgS7KcwgWR9cQcY+ga+ix6bFXgjGGyc8VQ4vhFl/tLDcIN8iCAifiKi uCr2uBhG TW3BUafjiRz0/OCQDjkOsxljirsoCFH1jkDNI6MPvM2JZ8NDg6e+3I3IhwJQoDhnf8eJTIYUwpJ1M0DYEBt1/cEdHDL1pitRdBq+xXF6XbG42jco+X5+qvK4AVWolbLsDz+j6zsLHl3gKrXFjQ8a2p2x2dR0Ph3m30MZ9IM9yE3DQx5RCZv+Mx7sO0J4e3XKA9SsIeM/HPpjG0XHTtjTM5PzppZyqzKdcLodQx9jNxT/xctgjv0uInDXprmnxW7Gt/qPzsVCJbq7+XVv13JQII8xEfnfOJW687bUVkVXy1vD4jSSSh4MMQSZVz/vIiLYhb4BljK6qPt4N/D46cOW2j7+qvuC3rNEyQmqWNkgXHcR0ZU0IF1W5a3+ALQHbjxr8zV2i 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: On Thu, Feb 22, 2024 at 01:23:43PM +0700, Nhat Pham wrote: > On Fri, Feb 9, 2024 at 10:27=E2=80=AFAM Yosry Ahmed wrote: > > > > I did not perform any sophisticated analysis on these histograms, but > > eyeballing them makes it clear that all allocators have somewhat > > similar latencies. zbud is slightly better than zsmalloc, and z3fold > > is slightly worse than zsmalloc. This corresponds naturally to the > > build times in (a). > > > > (c) Maximum size of the zswap pool > > > > *** zsmalloc *** > > 1,137,659,904 bytes =3D ~1.13G > > > > *** zbud *** > > 1,535,741,952 bytes =3D ~1.5G > > > > *** z3fold *** > > 1,151,303,680 bytes =3D ~1.15G > > > > zbud consumes ~32.7% more memory, and z3fold consumes ~1.8% more > > memory. This makes sense because zbud only stores a maximum of two > > compressed pages on each order-0 page, regardless of the compression > > ratio, so it is bound to consume more memory. > > > > -------------------------------- ---------------------------= ----- > > > > According to those results, it seems like zsmalloc is superior to > > z3fold in both efficiency and latency. Zbud has a small latency > > advantage, but that comes with a huge cost in terms of memory > > consumption. Moreover, most known users of zswap are currently using > > zsmalloc. Perhaps some folks are using zbud because it was the default > > allocator up until recently. The only known disadvantage of zsmalloc > > is the dependency on MMU. > > > > Based on that, I think it doesn't make sense to keep all 3 allocators > > going forward. I believe we should start with removing either zbud or > > z3fold, leaving only one allocator supporting MMU. Once zsmalloc > > supports !MMU (if possible), we can keep zsmalloc as the only > > allocator. > > > > Thoughts and feedback are highly appreciated. I tried to CC all the > > interested folks, but others feel free to chime in. >=20 > I already voiced my opinion on the other thread, but to reiterate, my > vote is towards deprecating/removing z3fold :) > Unless someone can present a convincing argument/use case/workload, > where z3fold outshines both zbud and zsmalloc, or at least is another > point on the Pareto front of (latency x memory saving). I can re-send the RFC to mark z3fold as deprecated with a reference to the data here or a quote to some of it. Alternatively, we can remove the code directly if we believe there are no users. There were some conflicting opinions last time and I was hoping we can settle them. I am also low key hoping Andrew would chime in at some point with what he prefers (deprecate, remove, or leave as-is).