From: Hillf Danton <hdanton@sina.com>
To: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: Barry Song <21cnbao@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>,
Brian Geffon <bgeffon@google.com>,
linux-kernel@vger.kernel.org, linux-block@vger.kernel.org,
linux-mm@kvack.org
Subject: Re: [PATCH v6 09/13] zram: split zcomp into separate R/W streams
Date: Sat, 24 Oct 2026 18:14:00 +0800 [thread overview]
Message-ID: <20261024101401.1035-1-hdanton@sina.com> (raw)
In-Reply-To: <atxFgutP-N3UZex2@google.com>
On Sat, 24 Oct 2026 14:48:32 +0900 Sergey Senozhatsky wrote:
> On (26/10/23 19:40), Hillf Danton wrote:
> [..]
> > > writers vs readers 3 runs
> > >
> > > BASE+PE IOPS 1,271k avg 5.57us sd 1,393us p99.99 27.5us max 1,581,800us
> > > IOPS 1,461k avg 3.43us sd 78us p99.99 23.9us max 227,015us
> > > IOPS 1,444k avg 3.48us sd 222us p99.99 23.9us max 592,628us
> > > PATCHED+PE IOPS 1,457k avg 3.32us sd 18us p99.99 27.5us max 5,620us
> > > IOPS 1,464k avg 3.31us sd 17us p99.99 24.2us max 5,621us
> > > IOPS 1,475k avg 3.29us sd 16us p99.99 26.5us max 5,620us
>
> BASE+PE looked noisy, so I sat down and tested properly (also tested
> zstd and various compression levels).
>
Thanks again for sharing data.
> (PE enabled for all tests)
>
> ######## zstd compression level 3 W-vs-R
> BASE IOPS 1,154k avg 7.84us sd 444us max 697,634us
> IOPS 881k avg 14.16us sd 2,242us max 1,387,000us
> IOPS 704k avg 20.43us sd 3,499us max 2,058,300us
> IOPS 563k avg 29.02us sd 3,910us max 1,649,800us
> IOPS 626k avg 24.79us sd 4,013us max 2,085,800us
> IOPS 976k avg 11.54us sd 1,518us max 1,165,800us
> IOPS 1,178k avg 7.44us sd 22us max 3,103us
> IOPS 1,120k avg 7.39us sd 21us max 7,222us
> IOPS 522k avg 32.51us sd 4,311us max 1,598,300us
> IOPS 581k avg 27.54us sd 3,626us max 1,448,600us
> IOPS 1,160k avg 7.69us sd 352us max 702,099us
> IOPS 1,169k avg 7.52us sd 129us max 281,428us
> IOPS 954k avg 12.06us sd 1,705us max 1,545,600us
> IOPS 1,029k avg 10.24us sd 1,156us max 976,065us
> IOPS 1,169k avg 7.48us sd 24us max 4,305us
> IOPS 1,177k avg 7.45us sd 53us max 118,777us
> IOPS 579k avg 27.43us sd 3,661us max 1,615,800us
> IOPS 1,169k avg 7.52us sd 115us max 228,074us
> IOPS 1,110k avg 8.59us sd 985us max 1,288,000us
> IOPS 1,177k avg 7.45us sd 29us max 72,245us
> IOPS 580k avg 27.74us sd 3,755us max 1,507,000us
> PATCHED IOPS 1,179k avg 7.40us sd 23us max 7,404us
> IOPS 1,179k avg 7.41us sd 22us max 2,857us
> IOPS 1,176k avg 7.40us sd 22us max 6,615us
> IOPS 1,175k avg 7.44us sd 23us max 5,623us
> IOPS 1,176k avg 7.42us sd 24us max 5,625us
> IOPS 1,173k avg 7.42us sd 24us max 5,632us
> IOPS 1,172k avg 7.41us sd 23us max 6,223us
> IOPS 1,173k avg 7.40us sd 25us max 5,848us
> IOPS 1,173k avg 7.40us sd 24us max 7,563us
> IOPS 1,172k avg 7.42us sd 24us max 5,625us
> IOPS 1,175k avg 7.42us sd 23us max 5,626us
> IOPS 1,177k avg 7.42us sd 23us max 4,243us
> IOPS 1,170k avg 7.46us sd 25us max 5,622us
> IOPS 1,178k avg 7.40us sd 22us max 3,213us
> IOPS 1,167k avg 7.43us sd 25us max 7,593us
> IOPS 1,174k avg 7.44us sd 23us max 6,971us
> IOPS 1,179k avg 7.38us sd 23us max 3,477us
> IOPS 1,180k avg 7.39us sd 23us max 2,894us
> IOPS 1,145k avg 7.37us sd 21us max 4,048us
> IOPS 1,177k avg 7.38us sd 22us max 5,620us
> IOPS 1,177k avg 7.40us sd 23us max 5,623us
>
> IOPS: BASE 932k (+-260k), PATCHED 1,174k (+-7k), 21 runs each.
> significant difference at 95% confidence: PATCHED is 241k (25.9%) higher; 95% CI [+136k, +353k], Welch's t-test p = 0.000
> max latency: BASE 3.1..2,085.8 ms, PATCHED 2.9..7.6 ms
> runs with max over 100 ms: BASE 17 of 21, PATCHED 0 of 21; over 1 s: BASE 11 of 21, PATCHED 0 of 21
>
> ######## zstd compression level 12 W-vs-R
> BASE IOPS 690k avg 21.53us sd 3,088us max 1,635,500us
> IOPS 478k avg 36.51us sd 4,385us max 1,941,300us
> IOPS 822k avg 16.13us sd 2,865us max 2,263,800us
> IOPS 1,161k avg 7.73us sd 114us max 190,307us
> IOPS 780k avg 17.56us sd 2,717us max 1,550,500us
> IOPS 1,166k avg 7.66us sd 40us max 94,522us
> IOPS 585k avg 27.51us sd 3,847us max 1,550,600us
> IOPS 1,147k avg 7.97us sd 344us max 496,483us
> IOPS 1,166k avg 7.64us sd 49us max 115,243us
> IOPS 1,163k avg 7.66us sd 23us max 7,006us
> IOPS 1,071k avg 9.42us sd 1,489us max 1,915,500us
> IOPS 962k avg 11.88us sd 2,168us max 1,904,500us
> IOPS 607k avg 26.05us sd 3,538us max 1,591,100us
> IOPS 1,167k avg 7.63us sd 23us max 2,903us
> IOPS 1,157k avg 7.78us sd 198us max 418,930us
> IOPS 1,163k avg 7.66us sd 40us max 100,346us
> IOPS 1,162k avg 7.70us sd 32us max 82,602us
> IOPS 488k avg 35.43us sd 4,340us max 1,786,400us
> IOPS 563k avg 28.85us sd 3,989us max 2,209,500us
> IOPS 843k avg 15.43us sd 2,490us max 1,572,100us
> IOPS 604k avg 26.30us sd 3,560us max 1,555,700us
> PATCHED IOPS 1,166k avg 7.60us sd 23us max 5,623us
> IOPS 1,169k avg 7.58us sd 23us max 5,629us
> IOPS 1,157k avg 7.67us sd 27us max 5,639us
> IOPS 1,166k avg 7.61us sd 24us max 5,644us
> IOPS 1,160k avg 7.64us sd 26us max 7,543us
> IOPS 1,167k avg 7.60us sd 24us max 7,514us
> IOPS 1,160k avg 7.61us sd 25us max 6,643us
> IOPS 1,162k avg 7.65us sd 25us max 7,315us
> IOPS 1,161k avg 7.66us sd 24us max 6,237us
> IOPS 1,158k avg 7.62us sd 27us max 7,688us
> IOPS 1,167k avg 7.58us sd 24us max 5,637us
> IOPS 1,165k avg 7.59us sd 24us max 7,098us
> IOPS 948k avg 7.58us sd 23us max 7,808us
> IOPS 1,166k avg 7.60us sd 24us max 5,621us
> IOPS 1,166k avg 7.58us sd 24us max 5,672us
> IOPS 1,162k avg 7.65us sd 25us max 6,824us
> IOPS 1,165k avg 7.59us sd 24us max 7,078us
> IOPS 1,168k avg 7.58us sd 23us max 6,191us
> IOPS 1,170k avg 7.56us sd 22us max 2,851us
> IOPS 1,171k avg 7.55us sd 22us max 2,834us
> IOPS 1,166k avg 7.59us sd 24us max 5,627us
>
> IOPS: BASE 902k (+-269k), PATCHED 1,154k (+-47k), 21 runs each.
> significant difference at 95% confidence: PATCHED is 252k (27.9%) higher; 95% CI [+142k, +367k], Welch's t-test p = 0.000
> max latency: BASE 2.9..2,263.8 ms, PATCHED 2.8..7.8 ms
> runs with max over 100 ms: BASE 17 of 21, PATCHED 0 of 21; over 1 s: BASE 12 of 21, PATCHED 0 of 21
>
> ######## lz4 W-vs-R
> BASE IOPS 1,422k avg 3.84us sd 418us max 619,495us
> IOPS 1,450k avg 3.57us sd 326us max 609,723us
> IOPS 1,414k avg 3.92us sd 543us max 879,815us
> IOPS 1,451k avg 3.56us sd 253us max 503,428us
> IOPS 1,460k avg 3.40us sd 68us max 135,825us
> IOPS 1,413k avg 3.31us sd 44us max 188,450us
> IOPS 1,432k avg 3.73us sd 503us max 844,228us
> IOPS 1,387k avg 4.20us sd 719us max 961,827us
> IOPS 1,464k avg 3.38us sd 44us max 133,675us
> IOPS 1,469k avg 3.38us sd 22us max 65,812us
> IOPS 1,465k avg 3.40us sd 49us max 111,788us
> IOPS 1,465k avg 3.39us sd 64us max 174,040us
> IOPS 1,467k avg 3.38us sd 36us max 97,821us
> IOPS 1,445k avg 3.63us sd 343us max 671,026us
> IOPS 1,472k avg 3.35us sd 27us max 86,795us
> IOPS 1,473k avg 3.33us sd 44us max 138,096us
> IOPS 1,439k avg 3.71us sd 353us max 619,815us
> IOPS 1,398k avg 3.36us sd 54us max 206,815us
> IOPS 1,471k avg 3.36us sd 15us max 2,832us
> IOPS 1,407k avg 4.02us sd 629us max 1,074,800us
> IOPS 1,465k avg 3.40us sd 63us max 158,779us
> PATCHED IOPS 1,471k avg 3.30us sd 15us max 6,946us
> IOPS 1,473k avg 3.29us sd 16us max 5,618us
> IOPS 1,474k avg 3.29us sd 15us max 5,615us
> IOPS 1,473k avg 3.29us sd 15us max 5,625us
> IOPS 1,440k avg 3.26us sd 13us max 2,829us
> IOPS 1,456k avg 3.30us sd 15us max 5,623us
> IOPS 1,476k avg 3.29us sd 15us max 2,835us
> IOPS 1,464k avg 3.28us sd 16us max 6,063us
> IOPS 1,468k avg 3.32us sd 19us max 6,692us
> IOPS 1,465k avg 3.30us sd 17us max 6,834us
> IOPS 1,468k avg 3.28us sd 16us max 7,268us
> IOPS 1,463k avg 3.31us sd 17us max 6,480us
> IOPS 1,454k avg 3.33us sd 20us max 8,418us
> IOPS 1,452k avg 3.32us sd 19us max 5,621us
> IOPS 1,477k avg 3.27us sd 14us max 2,834us
> IOPS 1,468k avg 3.30us sd 16us max 5,617us
> IOPS 1,475k avg 3.30us sd 16us max 3,884us
> IOPS 1,475k avg 3.30us sd 16us max 5,692us
> IOPS 1,471k avg 3.30us sd 15us max 5,616us
> IOPS 1,473k avg 3.28us sd 16us max 7,014us
> IOPS 1,475k avg 3.28us sd 15us max 5,616us
>
> IOPS: BASE 1,444k (+-27k), PATCHED 1,467k (+-10k), 21 runs each.
> significant difference at 95% confidence: PATCHED is 23k (1.6%) higher; 95% CI [+11k, +35k], Welch's t-test p = 0.001
> max latency: BASE 2.8..1,074.8 ms, PATCHED 2.8..8.4 ms
> runs with max over 100 ms: BASE 17 of 21, PATCHED 0 of 21; over 1 s: BASE 1 of 21, PATCHED 0 of 21
Lets see the data from another pov (feel free to disagree) -- in the android
phone/car cockpit environment, the render frequence is required above 60HZ,
IOW a frame rendered within 16ms, so what share of the 16ms does the IOPS
account for after this patchset, for example when an app in background is
brought foreground?
next prev parent reply other threads:[~2026-10-24 10:14 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-21 2:42 [PATCH v6 00/13] zram: redesign zcomp and rework backends Sergey Senozhatsky
2026-10-21 2:42 ` [PATCH v6 01/13] zram: prefix backends printk-s Sergey Senozhatsky
2026-10-21 2:42 ` [PATCH v6 02/13] zram: remove debugfs entry on init failure Sergey Senozhatsky
2026-10-21 2:42 ` [PATCH v6 03/13] zram: reset writeback state in zram_reset_device() Sergey Senozhatsky
2026-10-21 2:42 ` [PATCH v6 04/13] zram: zstd: do not allocate empty C/D-dictionaries Sergey Senozhatsky
2026-10-21 2:42 ` [PATCH v6 05/13] zram: lz4hc: pre-initialize dictionary stream in setup_params Sergey Senozhatsky
2026-10-21 2:42 ` [PATCH v6 06/13] zram: lz4: use LZ4_decompress_safe_usingDict() Sergey Senozhatsky
2026-10-21 2:42 ` [PATCH v6 07/13] zram: lz4hc: " Sergey Senozhatsky
2026-10-21 2:42 ` [PATCH v6 08/13] zram: zstd: do not use kvzalloc() for zstd allocations Sergey Senozhatsky
2026-10-21 2:42 ` [PATCH v6 09/13] zram: split zcomp into separate R/W streams Sergey Senozhatsky
2026-10-21 4:23 ` Hillf Danton
2026-10-21 4:56 ` Sergey Senozhatsky
2026-10-21 7:53 ` Hillf Danton
2026-10-22 0:08 ` Hillf Danton
2026-10-22 0:19 ` Barry Song
2026-10-22 11:11 ` Hillf Danton
2026-10-23 5:01 ` Sergey Senozhatsky
2026-10-23 11:40 ` Hillf Danton
2026-10-24 5:48 ` Sergey Senozhatsky
2026-10-24 10:14 ` Hillf Danton [this message]
2026-10-22 2:06 ` Sergey Senozhatsky
2026-10-22 23:25 ` Hillf Danton
2026-10-23 3:29 ` Sergey Senozhatsky
2026-10-23 17:05 ` Brian Geffon
2026-10-21 2:42 ` [PATCH v6 10/13] zram: introduce shared decompression streams Sergey Senozhatsky
2026-10-21 2:42 ` [PATCH v6 11/13] zram: allocate bounce buffer for spanning objects Sergey Senozhatsky
2026-10-21 2:42 ` [PATCH v6 12/13] zram: borrow idle decompression streams in exclusive mode Sergey Senozhatsky
2026-10-21 2:42 ` [PATCH v6 13/13] zram: use a singleton compression context for recompression Sergey Senozhatsky
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=20261024101401.1035-1-hdanton@sina.com \
--to=hdanton@sina.com \
--cc=21cnbao@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=bgeffon@google.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=senozhatsky@chromium.org \
/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