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: Thu, 10 Apr 2025 11:02:31 +0400 [thread overview]
Message-ID: <019035e5ecae12390048b73c042ec54d@beldev.am> (raw)
In-Reply-To: <6e1c6b20481c2cb41930d37da4fe8aeb@beldev.am>
> 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
For the sake of completeness I re-ran that test with the bugfix and LZ4
(so, zblock/lz4/8 cores/make -j32 bzImage) and I got:
real 7m44.154s
user 38m26.645s
sys 7m38.302s
zswpin 648108
zswpout 2490449
zswpwb 9499
So there's *no* significant cut with zstd in execution time, even on a
Ryzen 9 and that invalidates your point. Sorry for the past confusion,
it was an honest mistake from our side. If zsmalloc didn't OOM with lz4
we probably would have seen the discrepancy and found the bug earlier.
And on ARM64 and RISC-V targets we have run the tests on, zstd is slower
than lz4.
/Igor
next prev parent reply other threads:[~2025-04-10 7:02 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-04 19:28 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
2025-04-10 7:02 ` Igor Belousov [this message]
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=019035e5ecae12390048b73c042ec54d@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox