From: Igor Belousov <igor.b@beldev.am>
To: Johannes Weiner <hannes@cmpxchg.org>
Cc: Nhat Pham <nphamcs@gmail.com>,
vitaly.wool@konsulko.se, linux-mm@kvack.org,
akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
Shakeel Butt <shakeel.butt@linux.dev>,
Yosry Ahmed <yosryahmed@google.com>
Subject: Re: [PATCH v2] mm: add zblock allocator
Date: Wed, 09 Apr 2025 21:59:58 +0400 [thread overview]
Message-ID: <6e1c6b20481c2cb41930d37da4fe8aeb@beldev.am> (raw)
In-Reply-To: <20250408195533.GA99052@cmpxchg.org>
Hi Johannes,
>> 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.
Actually there's a slight bug in zblock code for 4K page case which
caused storage inefficiency for small (== well compressed) memory
blocks. With that one fixed, the results look a lot brighter for zblock:
1. zblock/zstd/8 cores/make -j32 bzImage
real 7m28.290s
user 37m27.055s
sys 7m18.629s
Zswap: 221516 kB
Zswapped: 904104 kB
zswpin 425424
zswpout 2011503
zswpwb 4111
2a. zblock/zstd/16 cores/make -j16 modules
real 15m53.119s
user 199m45.722s
sys 36m21.544s
zswpin 26600
zswpout 287021
zswpwb 0
Zswap: 205908 kB
Zswapped: 858516 kB
2b. zsmalloc/zstd/16 cores/make -j16 modules
real 16m31.052s
user 207m3.612s
sys 37m49.891s
zswpin 27044
zswpout 296763
zswpwb 61
Zswap: 198740 kB
Zswapped: 868020 kB
So what we see is:
* on 4K pages, zblock matches zsmalloc with regard to storage density on
longer tests and gives better performance in virtually all scenarios
* on 16K pages, zblock is superior to zsmalloc in terms of both
performance and storage density.
> This is a general NAK from me on any new allocators that cannot match
> or outdo zsmalloc storage density in common scenarios. I'm sorry, but
> I really don't see any reason to do this.
Given the above, I sincerely hope that you reconsider.
Thanks,
Igor
next prev parent reply other threads:[~2025-04-09 17:59 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-04 19:28 [PATCH v2] mm: add zblock allocator Vitaly Wool
2025-04-04 20:03 ` Johannes Weiner
2025-04-04 23:56 ` Vitaly
2025-04-06 7:53 ` Igor Belousov
2025-04-07 9:00 ` Igor Belousov
2025-04-07 15:51 ` Nhat Pham
2025-04-07 16:44 ` Igor Belousov
2025-04-07 17:00 ` Nhat Pham
2025-04-08 9:20 ` Igor Belousov
2025-04-08 19:55 ` Johannes Weiner
2025-04-08 21:11 ` Nhat Pham
2025-04-08 21:38 ` Vitaly Wool
2025-04-08 22:05 ` Nhat Pham
2025-04-08 23:12 ` Vitaly Wool
2025-04-09 17:59 ` Igor Belousov [this message]
2025-04-10 7:02 ` Igor Belousov
2025-04-07 15:54 ` Johannes Weiner
2025-04-07 18:26 ` Vitaly Wool
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6e1c6b20481c2cb41930d37da4fe8aeb@beldev.am \
--to=igor.b@beldev.am \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nphamcs@gmail.com \
--cc=shakeel.butt@linux.dev \
--cc=vitaly.wool@konsulko.se \
--cc=yosryahmed@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.