mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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?

  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

all inboxes | Powered by JetHome®