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 07055C36010 for ; Tue, 8 Apr 2025 22:06:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E5B356B0107; Tue, 8 Apr 2025 18:06:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E09646B0108; Tue, 8 Apr 2025 18:06:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CAA3F6B0109; Tue, 8 Apr 2025 18:06:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id A95FD6B0107 for ; Tue, 8 Apr 2025 18:06:11 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id D042FC1544 for ; Tue, 8 Apr 2025 22:06:12 +0000 (UTC) X-FDA: 83312260584.02.750CB13 Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) by imf19.hostedemail.com (Postfix) with ESMTP id EFE721A0003 for ; Tue, 8 Apr 2025 22:06:10 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=X6j0TZg1; spf=pass (imf19.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.219.49 as permitted sender) smtp.mailfrom=nphamcs@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=1744149971; 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=4sWLYldlaXwJJPgG72TFrHed0gpDpTfsmgOoFVasc1s=; b=7x0kS+FROkK4atvKYPVpg87q6pBasnjNcplfah9frrt/HfoKnuQhoFBF8fKKj0wnZde9GX 0fgWkWJWuGeg9y1c95zC3UG2b+puu85dNneteqeXEYCibhM+G5vvBwrR5lWCqBzW4Y56by mu4OexQ3qJ7+I9XCeipYR96ECBcPzy4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744149971; a=rsa-sha256; cv=none; b=nvw77pI2KpsF8K8tOYnZQRyp1WQfSosPgmoJ3wZCxemAwOvzs5HGoGsQuN+sym6Tn2UzzK QGlAKQU2kbIISaWxZg1S6zlq7rHsjpXo0U9orp1WSeuTrco6dRmeAUBj/CCEVt8yDhxTfx oCYgEzRRoApaQp3NrrAry7+rraD3Wsw= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=X6j0TZg1; spf=pass (imf19.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.219.49 as permitted sender) smtp.mailfrom=nphamcs@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-qv1-f49.google.com with SMTP id 6a1803df08f44-6e8fb83e137so54894616d6.0 for ; Tue, 08 Apr 2025 15:06:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744149970; x=1744754770; 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=4sWLYldlaXwJJPgG72TFrHed0gpDpTfsmgOoFVasc1s=; b=X6j0TZg146g2TROGNEUT3nAnozaXMMBhQEEXqHM9pyuOCwZBHMxiHMqW4yG5xSP7Mi NpwqYorDyJ2C8v/RqzA3Eov+99FvFwzZZZ9pUL/KAgIax+FY3gs/Qq5Fy6mp2f73nIZi opYyaDqmWTjFCC3503h8VCx/Idkcf5UPiUTe1qawej2HBDVytpM0NIJRfBuWNdkbCgPm BNajbPYZOuF1m2r0PBWFT7K03VQxcdjcRRQNbDSrPfmwQ2a5eWPy4CexM3L4pjqBsTvk U0fxryv1owTyZHsOYlt6kYCSO45wJYphMFYKkQLbapq3xUJSorndjVqXWgare1UcpZFW hOPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744149970; x=1744754770; 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=4sWLYldlaXwJJPgG72TFrHed0gpDpTfsmgOoFVasc1s=; b=MO1CGNrwbQdBT+mNS8uSW4D2mDudnQxZS0E5Q3IhCHg3OzOnTLsTegdGlCquVG2+YM 3EOQQ6+zmjST4ue1ULxrihttwkjt6brqqO7PkbWndnniJR8TmA8KsVrk9R0PLmOlWTkz YAdgeWWdOSoRgwc1X6dEjQttQ/tZSAUNsQGPE1OIf86SruvPpGeGJx8bVQVZLXq2Vi2s 0f1KdOGCZ+ztLMND1gsEO1crUpcEjVvQ7KJxkC8r7/VTvxfSQjeYinkyaovdwKyRPkVd XjkHMwlaFIUyAiG3+vs6ODAtFcSv/y3ZHIg3a3HZfUrBMdBfVmT7vMzp5K4lEJdYrJek g0UA== X-Forwarded-Encrypted: i=1; AJvYcCU8r2EFqJFuUHBMTF9QP6y8FtiuCH0Xd21nKX9rzsUuVyabMKw9VmsF27hNf4iCRGwK37FSKzhDGA==@kvack.org X-Gm-Message-State: AOJu0YySnEjarIp89ZiND0+qVdHyw8XkhIuLmOOHSagqUgna7nlgsxD2 D0dCX8mhMKCJtvXOeXC3xezUDnfYYNIB32vb2Lxxp9jPHBO69kYUiuP4Lb/WKCdUtpBsC7q9OOZ AOirgWs2dA06xNwwI1C1f+YJUAv8= X-Gm-Gg: ASbGncvKYtlthu0JqbvoinveLRKUnYnYH4W4F3eG6qXJ4GMTfUjPPnr8Fu4X9EpqYMu 8ZWBseAONUnMHwGeHA+n3lArPIUY59Jt8JOSnWYIZJj13EQdlXvK7utUdBAjqI06TUWAjT713Vm FDOCgYM19ckTcEl6plepzWD8rMQK0bRmykbkixOE9LqX0lVtNag+OIs3PnGw== X-Google-Smtp-Source: AGHT+IEEnL0AwSgWq2bYA63OtnC1+P7QnpEoLRfTsEdORqc+T0IgUfQz79hV8Iy6qv+3uTrGgqrCEJgdruYLf9nMQ/w= X-Received: by 2002:a05:6214:1253:b0:6e8:9866:7398 with SMTP id 6a1803df08f44-6f0dbbd8d00mr16377836d6.22.1744149970018; Tue, 08 Apr 2025 15:06:10 -0700 (PDT) MIME-Version: 1.0 References: <1743810988579.7.125720@webmail-backend-production-7b88b644bb-5mmj8> <0dbbbe9d17ed489d4a7dbe12026fc6fd@beldev.am> <3f013184c80e254585b56c5f16b7e778@beldev.am> <20250408195533.GA99052@cmpxchg.org> <24e77aad-08ca-41c4-8e64-301fcc9370b1@konsulko.se> In-Reply-To: <24e77aad-08ca-41c4-8e64-301fcc9370b1@konsulko.se> From: Nhat Pham Date: Tue, 8 Apr 2025 15:05:58 -0700 X-Gm-Features: ATxdqUGmlsm6fccF-ip74f4yqSSt7Wk7y4OxBKshFRqf4g9Y2PQvAlmsn63UjdM Message-ID: Subject: Re: [PATCH v2] mm: add zblock allocator To: Vitaly Wool Cc: Johannes Weiner , Igor Belousov , linux-mm@kvack.org, akpm@linux-foundation.org, linux-kernel@vger.kernel.org, Shakeel Butt , Yosry Ahmed Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: 3w381idjkr5dsaaq1jhhzryhrr9rhjmi X-Rspam-User: X-Rspamd-Queue-Id: EFE721A0003 X-Rspamd-Server: rspam08 X-HE-Tag: 1744149970-399809 X-HE-Meta: U2FsdGVkX1/xYbPpUILNI1Df2P3ZbSexeXDvfuvSBN9/5sWkK2hyx1xUsjF0RknQ/hCW/FRBU6VvQ6dGECET0WryMXGLK8GgBtDa2SiXte39YQR8rqeJ7g0VrvWeePmjPhGm0L1BS5bNBWlsopu3IIm1SqHIPJe9TcMljwnPljQ60h+QKc+fGG2QBKVtPUFlJzd1uCZBlzz7rjAPvKCgJkVU6GN71zU5m8+O689Llov8x+m9LPHO4VKiEEhOSzE5j659GVN6QiVtQJbFIU3E+E7pfiRxYf3AiBq1kB7Whew4k5Pvxf1/SPWJOlluiir2e76IkW9vS/ud02X/GIPoEmoSuEadtAZS/6tqQVn1cbrnnK2AUWBTNZbBkMMePcbUby7tOID6RQW2LGDJ9S36LgsIoYeHtTVwyTPmuD53UtMVlnBxt4JJb7UIVKvYekqcwWeEEYEWOsVRJaltweH+APO8QZ68J/phgiWqzD3j1V4k8fpo1OBYZqneKQTTwqLwQj13XXkvcDyjrnXpuubRYRsVAPnw12tLQS6bKpX4maFLmELnTTQsAYT1mI1Fodzt/AJdpkWOELTU6jMkYc5w8rHkmRwVmNjCrwrJZ6+iLvQntl5ykHYei9r+P0C8u7uIPKj9Y9IZYDOyqqP+f3uqTFc85t2Fb1Av9oEnd63eY+RC4QlopmT7NHNEtR4J2B/cXD2o7YMEFgrpQ2/RmvUqEFlEbwsrIfb4BhTGrTwvRQEzHNFv/vkeDXMssObVfnNdgXOxh9xOwtc0H2qczBZH1icE04sI7xGoKjp4RsfHWAzk3E7+ei+em+11n0qw7Sntku+KVJ2HQOcAjdJ1q2cfMCq2wa19cevPEc40cLFklLvTS+uneP3odEKrMb1dR1CogUl59TcNe6c70DwMeHljANwxYlSyTdWFNvl42aPR8XJ+ZVTcz3Fci7uQVo71O5wHkgtmpVXMYOcV0Em54CC 39B7MCkO 5uz8BEEcsruGnHt3BI87GRkbrl0x2ng+SJrFjdcSwP59GB+SYzpPMsnfnLZ6YULP8ZSgp5R8nbE+ODdkLBuQmj7KwitfqrZmAchqHERI7Zp6+uPpUa9RC7dj0bZZDm+td7yFmDBnYlPN8wjTxvgySSQ5TwYwCicMjTNhMzwuOpGKgbVomGyRD8ZkVB2xeyvPeszgIyOltuxhY8eNfaa/pBTx1cNM1whEgO1xG2lZ+ve3tx5wtk9N+he8J9d7Y0M4Y4Q5m/31Kz0lvD6OLHtaPuaEAaSIJqd0s1fvonIIUHQhzc8IGJyWbyd8Mrp03VVHd460T X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, 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 Tue, Apr 8, 2025 at 2:38=E2=80=AFPM Vitaly Wool wrote: > > > > On 4/8/25 21:55, Johannes Weiner wrote: > > On Tue, Apr 08, 2025 at 01:20:11PM +0400, Igor Belousov wrote: > >>>>>> Now what's funny is that when I tried to compare how 32 threaded b= uild > >>>>>> would behave on a 8-core VM I couldn't do it because it OOMs with > >>>>>> zsmalloc as zswap backend. With zblock it doesn't, though, and the > >>>>>> results are: > >>>>>> real 12m14.012s > >>>>>> user 39m37.777s > >>>>>> sys 14m6.923s > >>>>>> Zswap: 440148 kB > >>>>>> Zswapped: 924452 kB > >>>>>> zswpin 594812 > >>>>>> zswpout 2802454 > >>>>>> zswpwb 10878 > >>>> > >>>> It's LZ4 for all the test runs. > >>> > >>> Can you try zstd and let me know how it goes :) > >> > >> Sure. zstd/8 cores/make -j32: > >> > >> zsmalloc: > >> real 7m36.413s > >> user 38m0.481s > >> sys 7m19.108s > >> Zswap: 211028 kB > >> Zswapped: 925904 kB > >> zswpin 397851 > >> zswpout 1625707 > >> zswpwb 5126 > >> > >> zblock: > >> real 7m55.009s > >> user 39m23.147s > >> sys 7m44.004s > >> Zswap: 253068 kB > >> Zswapped: 919956 kB > >> zswpin 456843 > >> zswpout 2058963 > >> zswpwb 3921 > > > > So zstd results in nearly double the compression ratio, which in turn > > cuts total execution time *almost in half*. > > > > The numbers speak for themselves. Compression efficiency >>> allocator > > speed, because compression efficiency ultimately drives the continuous > > *rate* at which allocations need to occur. You're trying to optimize a > > constant coefficient at the expense of a higher-order one, which is a > > losing proposition. > > Well, not really. This is an isolated use case with > a. significant computing power under the hood > b. relatively few cores > c. relatively short test > d. 4K pages > > If any of these isn't true, zblock dominates. > !a =3D> zstd is too slow > !b =3D> parallelization gives more effect > !c =3D> zsmalloc starts losing due to having to deal with internal > fragmentation > !d =3D> compression efficiency of zblock is better. > > Even !d alone makes zblock a better choice for ARM64 based servers. > > ~Vitaly Could you expand on each point? And do you have data to show this? For b, we run zswap + zsmalloc on hosts with hundreds of cores, and have not found zsmalloc to be a noticeable bottleneck yet, FWIW. For c - in longer runs, how does zblock perform better than zsmalloc? In fact, my understanding is that zsmalloc does compaction, which should help with internal fragmentation over time. zblock doesn't seem to do this, or maybe I missed it? For d too. I see that you hard code special configurations for zblock blocks in the case of 0x4000 page size, but how does that help with compression efficiency?