runners: Bumped default crystal_thresh BLOCK_SIZE/8 -> BLOCK_SIZE/16

This has been adopted in external benchmarks for a while, as it manages
to push sequential write performance into a much better region of the
diminishing-returns curve.

But hey! Don't take my word for it, let's see the results from our new
bench_runner for the first time:

  NOR throughput             cs=1/8  cs=1/16
  bench_wt_seq+write        15180.0  29402.6 (+93.7%)
  bench_wt_random+write       876.2    957.3 (+9.3%)
  bench_wt_logging+write     2001.0   2153.4 (+7.6%)
  bench_wt_many+write         453.6    453.6 (+0.0%)

  NAND throughput            cs=1/8  cs=1/16
  bench_wt_seq+write        21778.7  22330.1 (+2.5%)
  bench_wt_random+write      3583.0   3637.2 (+1.5%)
  bench_wt_logging+write    10855.1  10977.1 (+1.1%)
  bench_wt_many+write          68.2     68.2 (+0.0%)

Though this doesn't really capture the tradeoffs related to file tails,
storage usage, etc.

In theory sequential writes are happy to start crystallizing as soon as
any data is written, but this leads to significant waste anytime you're
not going to write most of a block.
This commit is contained in:
Christopher Haster
2026-02-04 00:02:23 -06:00
parent fec5b36357
commit 0ea11c1a0e
2 changed files with 4 additions and 4 deletions
+2 -2
View File
@@ -32,8 +32,8 @@
BENCH_DEFINE(GC_PREERASE_COUNT, -1 )
BENCH_DEFINE(GC_COMPACT_THRESH, 0 )
BENCH_DEFINE(SHRUB_SIZE, BLOCK_SIZE/4 )
BENCH_DEFINE(FRAGMENT_SIZE, LFS3_MIN(BLOCK_SIZE/8, 512) )
BENCH_DEFINE(CRYSTAL_THRESH, BLOCK_SIZE/8 )
BENCH_DEFINE(FRAGMENT_SIZE, LFS3_MIN(BLOCK_SIZE/16, 512) )
BENCH_DEFINE(CRYSTAL_THRESH, BLOCK_SIZE/16 )
BENCH_DEFINE(LOOKGBMAP_THRESH, BLOCK_COUNT/4 )
// don't bother simulating erases, this may be less realistic, but
// it's certainly faster!
+2 -2
View File
@@ -23,8 +23,8 @@
TEST_DEFINE(GC_PREERASE_COUNT, -1 )
TEST_DEFINE(GC_COMPACT_THRESH, 0 )
TEST_DEFINE(SHRUB_SIZE, BLOCK_SIZE/4 )
TEST_DEFINE(FRAGMENT_SIZE, LFS3_MIN(BLOCK_SIZE/8, 512) )
TEST_DEFINE(CRYSTAL_THRESH, BLOCK_SIZE/8 )
TEST_DEFINE(FRAGMENT_SIZE, LFS3_MIN(BLOCK_SIZE/16, 512) )
TEST_DEFINE(CRYSTAL_THRESH, BLOCK_SIZE/16 )
TEST_DEFINE(LOOKGBMAP_THRESH, BLOCK_COUNT/4 )
TEST_DEFINE(ERASE_VALUE, 0xff )
#ifndef TEST_KIWIBD