mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-01-25 10:12:13 +03:00
chksum: run 256K benchmark on demand, preserve chksum_stat_data
Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de> Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Alexx Saver <lzsaver.eth@ethermail.io> Co-authored-by: Adam Moss <c@yotes.com> Closes #17945 Closes #17946
This commit is contained in:
parent
2e09f166f0
commit
f45622ff42
@ -155,11 +155,11 @@ chksum_run(chksum_stat_t *cs, abd_t *abd, void *ctx, int round,
|
|||||||
switch (round) {
|
switch (round) {
|
||||||
case 1: /* 1k */
|
case 1: /* 1k */
|
||||||
size = 1<<10; loops = 128; break;
|
size = 1<<10; loops = 128; break;
|
||||||
case 2: /* 2k */
|
case 2: /* 4k */
|
||||||
size = 1<<12; loops = 64; break;
|
size = 1<<12; loops = 64; break;
|
||||||
case 3: /* 4k */
|
case 3: /* 16k */
|
||||||
size = 1<<14; loops = 32; break;
|
size = 1<<14; loops = 32; break;
|
||||||
case 4: /* 16k */
|
case 4: /* 64k */
|
||||||
size = 1<<16; loops = 16; break;
|
size = 1<<16; loops = 16; break;
|
||||||
case 5: /* 256k */
|
case 5: /* 256k */
|
||||||
size = 1<<18; loops = 8; break;
|
size = 1<<18; loops = 8; break;
|
||||||
@ -212,6 +212,7 @@ chksum_benchit(chksum_stat_t *cs)
|
|||||||
chksum_run(cs, abd, ctx, 2, &cs->bs4k);
|
chksum_run(cs, abd, ctx, 2, &cs->bs4k);
|
||||||
chksum_run(cs, abd, ctx, 3, &cs->bs16k);
|
chksum_run(cs, abd, ctx, 3, &cs->bs16k);
|
||||||
chksum_run(cs, abd, ctx, 4, &cs->bs64k);
|
chksum_run(cs, abd, ctx, 4, &cs->bs64k);
|
||||||
|
chksum_run(cs, abd, ctx, 5, &cs->bs256k);
|
||||||
chksum_run(cs, abd, ctx, 6, &cs->bs1m);
|
chksum_run(cs, abd, ctx, 6, &cs->bs1m);
|
||||||
abd_free(abd);
|
abd_free(abd);
|
||||||
|
|
||||||
@ -249,15 +250,16 @@ chksum_benchmark(void)
|
|||||||
if (chksum_stat_limit == AT_DONE)
|
if (chksum_stat_limit == AT_DONE)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
/* count implementations */
|
/* count implementations */
|
||||||
chksum_stat_cnt = 1; /* edonr */
|
if (chksum_stat_limit == AT_STARTUP) {
|
||||||
chksum_stat_cnt += 1; /* skein */
|
chksum_stat_cnt = 1; /* edonr */
|
||||||
chksum_stat_cnt += sha256->getcnt();
|
chksum_stat_cnt += 1; /* skein */
|
||||||
chksum_stat_cnt += sha512->getcnt();
|
chksum_stat_cnt += sha256->getcnt();
|
||||||
chksum_stat_cnt += blake3->getcnt();
|
chksum_stat_cnt += sha512->getcnt();
|
||||||
chksum_stat_data = kmem_zalloc(
|
chksum_stat_cnt += blake3->getcnt();
|
||||||
sizeof (chksum_stat_t) * chksum_stat_cnt, KM_SLEEP);
|
chksum_stat_data = kmem_zalloc(
|
||||||
|
sizeof (chksum_stat_t) * chksum_stat_cnt, KM_SLEEP);
|
||||||
|
}
|
||||||
|
|
||||||
/* edonr - needs to be the first one here (slow CPU check) */
|
/* edonr - needs to be the first one here (slow CPU check) */
|
||||||
cs = &chksum_stat_data[cbid++];
|
cs = &chksum_stat_data[cbid++];
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user