Skip to content

Commit 3e92c0a

Browse files
lzsaveradamdmoss
andcommitted
chksum: run all benchmarks on demand
ZFS-CI-Type: full Signed-off-by: Alexx Saver <[email protected]> Reviewed-by: Tino Reichardt <[email protected]> Reviewed-by: Alexander Motin <[email protected]> Co-authored-by: Adam Moss <[email protected]> Close #17945
1 parent 7f7d493 commit 3e92c0a

File tree

1 file changed

+14
-24
lines changed

1 file changed

+14
-24
lines changed

module/zfs/zfs_chksum.c

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ typedef struct {
5151

5252
#define AT_STARTUP 0
5353
#define AT_BENCHMARK 1
54-
#define AT_DONE 2
5554

5655
static chksum_stat_t *chksum_stat_data = 0;
5756
static kstat_t *chksum_kstat = NULL;
@@ -155,11 +154,11 @@ chksum_run(chksum_stat_t *cs, abd_t *abd, void *ctx, int round,
155154
switch (round) {
156155
case 1: /* 1k */
157156
size = 1<<10; loops = 128; break;
158-
case 2: /* 2k */
157+
case 2: /* 4k */
159158
size = 1<<12; loops = 64; break;
160-
case 3: /* 4k */
159+
case 3: /* 16k */
161160
size = 1<<14; loops = 32; break;
162-
case 4: /* 16k */
161+
case 4: /* 64k */
163162
size = 1<<16; loops = 16; break;
164163
case 5: /* 256k */
165164
size = 1<<18; loops = 8; break;
@@ -212,6 +211,7 @@ chksum_benchit(chksum_stat_t *cs)
212211
chksum_run(cs, abd, ctx, 2, &cs->bs4k);
213212
chksum_run(cs, abd, ctx, 3, &cs->bs16k);
214213
chksum_run(cs, abd, ctx, 4, &cs->bs64k);
214+
chksum_run(cs, abd, ctx, 5, &cs->bs256k);
215215
chksum_run(cs, abd, ctx, 6, &cs->bs1m);
216216
abd_free(abd);
217217

@@ -245,19 +245,16 @@ chksum_benchmark(void)
245245
const zfs_impl_t *sha256 = zfs_impl_get_ops("sha256");
246246
const zfs_impl_t *sha512 = zfs_impl_get_ops("sha512");
247247

248-
/* benchmarks are done */
249-
if (chksum_stat_limit == AT_DONE)
250-
return;
251-
252-
253248
/* count implementations */
254-
chksum_stat_cnt = 1; /* edonr */
255-
chksum_stat_cnt += 1; /* skein */
256-
chksum_stat_cnt += sha256->getcnt();
257-
chksum_stat_cnt += sha512->getcnt();
258-
chksum_stat_cnt += blake3->getcnt();
259-
chksum_stat_data = kmem_zalloc(
260-
sizeof (chksum_stat_t) * chksum_stat_cnt, KM_SLEEP);
249+
if (chksum_stat_limit == AT_STARTUP) {
250+
chksum_stat_cnt = 1; /* edonr */
251+
chksum_stat_cnt += 1; /* skein */
252+
chksum_stat_cnt += sha256->getcnt();
253+
chksum_stat_cnt += sha512->getcnt();
254+
chksum_stat_cnt += blake3->getcnt();
255+
chksum_stat_data = kmem_zalloc(
256+
sizeof (chksum_stat_t) * chksum_stat_cnt, KM_SLEEP);
257+
}
261258

262259
/* edonr - needs to be the first one here (slow CPU check) */
263260
cs = &chksum_stat_data[cbid++];
@@ -333,15 +330,8 @@ chksum_benchmark(void)
333330
}
334331
blake3->setid(id_save);
335332

336-
switch (chksum_stat_limit) {
337-
case AT_STARTUP:
338-
/* next time we want a full benchmark */
333+
if (chksum_stat_limit == AT_STARTUP) {
339334
chksum_stat_limit = AT_BENCHMARK;
340-
break;
341-
case AT_BENCHMARK:
342-
/* no further benchmarks */
343-
chksum_stat_limit = AT_DONE;
344-
break;
345335
}
346336
}
347337

0 commit comments

Comments
 (0)