Lines Matching +full:cs +full:- +full:2
1 // SPDX-License-Identifier: CDDL-1.0
10 * or https://opensource.org/licenses/CDDL-1.0.
24 * Copyright (c) 2021-2022 Tino Reichardt <milky-zfs@mcmilk.de>
60 * Sample output on i3-1005G1 System:
63 * edonr-generic 1278 1625 1769 1776 1783 1778 1771 1767
64 * skein-generic 548 594 613 623 621 623 621 486
65 * sha256-generic 255 270 281 278 279 281 283 283
66 * sha256-x64 288 310 316 317 318 317 317 316
67 * sha256-ssse3 304 342 351 355 356 357 356 356
68 * sha256-avx 311 348 359 362 362 363 363 362
69 * sha256-avx2 330 378 389 395 395 395 395 395
70 * sha256-shani 908 1127 1212 1230 1233 1234 1223 1230
71 * sha512-generic 359 409 431 427 429 430 428 423
72 * sha512-x64 420 473 490 496 497 497 496 495
73 * sha512-avx 406 522 546 560 560 560 556 560
74 * sha512-avx2 464 568 601 606 609 610 607 608
75 * blake3-generic 330 327 324 323 324 320 323 322
76 * blake3-sse2 424 1366 1449 1468 1458 1453 1395 1408
77 * blake3-sse41 453 1554 1658 1703 1689 1669 1622 1630
78 * blake3-avx2 452 2013 3225 3351 3356 3261 3076 3101
79 * blake3-avx512 498 2869 5269 5926 5872 5643 5014 5005
86 off += kmem_scnprintf(buf + off, size, "%-23s", "implementation"); in chksum_kstat_headers()
87 off += kmem_scnprintf(buf + off, size - off, "%8s", "1k"); in chksum_kstat_headers()
88 off += kmem_scnprintf(buf + off, size - off, "%8s", "4k"); in chksum_kstat_headers()
89 off += kmem_scnprintf(buf + off, size - off, "%8s", "16k"); in chksum_kstat_headers()
90 off += kmem_scnprintf(buf + off, size - off, "%8s", "64k"); in chksum_kstat_headers()
91 off += kmem_scnprintf(buf + off, size - off, "%8s", "256k"); in chksum_kstat_headers()
92 off += kmem_scnprintf(buf + off, size - off, "%8s", "1m"); in chksum_kstat_headers()
93 off += kmem_scnprintf(buf + off, size - off, "%8s", "4m"); in chksum_kstat_headers()
94 (void) kmem_scnprintf(buf + off, size - off, "%8s\n", "16m"); in chksum_kstat_headers()
102 chksum_stat_t *cs; in chksum_kstat_data() local
106 cs = (chksum_stat_t *)data; in chksum_kstat_data()
107 kmem_scnprintf(b, 23, "%s-%s", cs->name, cs->impl); in chksum_kstat_data()
108 off += kmem_scnprintf(buf + off, size - off, "%-23s", b); in chksum_kstat_data()
109 off += kmem_scnprintf(buf + off, size - off, "%8llu", in chksum_kstat_data()
110 (u_longlong_t)cs->bs1k); in chksum_kstat_data()
111 off += kmem_scnprintf(buf + off, size - off, "%8llu", in chksum_kstat_data()
112 (u_longlong_t)cs->bs4k); in chksum_kstat_data()
113 off += kmem_scnprintf(buf + off, size - off, "%8llu", in chksum_kstat_data()
114 (u_longlong_t)cs->bs16k); in chksum_kstat_data()
115 off += kmem_scnprintf(buf + off, size - off, "%8llu", in chksum_kstat_data()
116 (u_longlong_t)cs->bs64k); in chksum_kstat_data()
117 off += kmem_scnprintf(buf + off, size - off, "%8llu", in chksum_kstat_data()
118 (u_longlong_t)cs->bs256k); in chksum_kstat_data()
119 off += kmem_scnprintf(buf + off, size - off, "%8llu", in chksum_kstat_data()
120 (u_longlong_t)cs->bs1m); in chksum_kstat_data()
121 off += kmem_scnprintf(buf + off, size - off, "%8llu", in chksum_kstat_data()
122 (u_longlong_t)cs->bs4m); in chksum_kstat_data()
123 (void) kmem_scnprintf(buf + off, size - off, "%8llu\n", in chksum_kstat_data()
124 (u_longlong_t)cs->bs16m); in chksum_kstat_data()
133 ksp->ks_private = (void *)(chksum_stat_data + n); in chksum_kstat_addr()
135 ksp->ks_private = NULL; in chksum_kstat_addr()
137 return (ksp->ks_private); in chksum_kstat_addr()
141 chksum_run(chksum_stat_t *cs, abd_t *abd, void *ctx, int round, in chksum_run() argument
152 case 2: /* 2k */ in chksum_run()
172 cs->func(abd, size, ctx, &zcp); in chksum_run()
174 run_time_ns = gethrtime() - start; in chksum_run()
185 #define LIMIT_NOLIMIT 2
188 chksum_benchit(chksum_stat_t *cs) in chksum_benchit() argument
192 void *salt = &cs->salt.zcs_bytes; in chksum_benchit()
195 memset(salt, 0, sizeof (cs->salt.zcs_bytes)); in chksum_benchit()
196 if (cs->init) in chksum_benchit()
197 ctx = cs->init(&cs->salt); in chksum_benchit()
201 chksum_run(cs, abd, ctx, 1, &cs->bs1k); in chksum_benchit()
202 chksum_run(cs, abd, ctx, 2, &cs->bs4k); in chksum_benchit()
203 chksum_run(cs, abd, ctx, 3, &cs->bs16k); in chksum_benchit()
204 chksum_run(cs, abd, ctx, 4, &cs->bs64k); in chksum_benchit()
205 chksum_run(cs, abd, ctx, 5, &cs->bs256k); in chksum_benchit()
209 if (cs->bs1k < LIMIT_PERF_MBS) { in chksum_benchit()
220 chksum_run(cs, abd, ctx, 6, &cs->bs1m); in chksum_benchit()
225 chksum_run(cs, abd, ctx, 7, &cs->bs4m); in chksum_benchit()
226 chksum_run(cs, abd, ctx, 8, &cs->bs16m); in chksum_benchit()
232 if (cs->free) in chksum_benchit()
233 cs->free(ctx); in chksum_benchit()
247 chksum_stat_t *cs; in chksum_benchmark() local
255 chksum_stat_cnt = 2; in chksum_benchmark()
256 chksum_stat_cnt += sha256->getcnt(); in chksum_benchmark()
257 chksum_stat_cnt += sha512->getcnt(); in chksum_benchmark()
258 chksum_stat_cnt += blake3->getcnt(); in chksum_benchmark()
262 /* edonr - needs to be the first one here (slow CPU check) */ in chksum_benchmark()
263 cs = &chksum_stat_data[cbid++]; in chksum_benchmark()
266 cs->init = abd_checksum_edonr_tmpl_init; in chksum_benchmark()
267 cs->func = abd_checksum_edonr_native; in chksum_benchmark()
268 cs->free = abd_checksum_edonr_tmpl_free; in chksum_benchmark()
269 cs->name = "edonr"; in chksum_benchmark()
270 cs->impl = "generic"; in chksum_benchmark()
271 chksum_benchit(cs); in chksum_benchmark()
274 cs = &chksum_stat_data[cbid++]; in chksum_benchmark()
275 cs->init = abd_checksum_skein_tmpl_init; in chksum_benchmark()
276 cs->func = abd_checksum_skein_native; in chksum_benchmark()
277 cs->free = abd_checksum_skein_tmpl_free; in chksum_benchmark()
278 cs->name = "skein"; in chksum_benchmark()
279 cs->impl = "generic"; in chksum_benchmark()
280 chksum_benchit(cs); in chksum_benchmark()
283 id_save = sha256->getid(); in chksum_benchmark()
284 for (max = 0, id = 0; id < sha256->getcnt(); id++) { in chksum_benchmark()
285 sha256->setid(id); in chksum_benchmark()
286 cs = &chksum_stat_data[cbid++]; in chksum_benchmark()
287 cs->init = 0; in chksum_benchmark()
288 cs->func = abd_checksum_sha256; in chksum_benchmark()
289 cs->free = 0; in chksum_benchmark()
290 cs->name = sha256->name; in chksum_benchmark()
291 cs->impl = sha256->getname(); in chksum_benchmark()
292 chksum_benchit(cs); in chksum_benchmark()
293 if (cs->bs256k > max) { in chksum_benchmark()
294 max = cs->bs256k; in chksum_benchmark()
295 sha256->set_fastest(id); in chksum_benchmark()
298 sha256->setid(id_save); in chksum_benchmark()
301 id_save = sha512->getid(); in chksum_benchmark()
302 for (max = 0, id = 0; id < sha512->getcnt(); id++) { in chksum_benchmark()
303 sha512->setid(id); in chksum_benchmark()
304 cs = &chksum_stat_data[cbid++]; in chksum_benchmark()
305 cs->init = 0; in chksum_benchmark()
306 cs->func = abd_checksum_sha512_native; in chksum_benchmark()
307 cs->free = 0; in chksum_benchmark()
308 cs->name = sha512->name; in chksum_benchmark()
309 cs->impl = sha512->getname(); in chksum_benchmark()
310 chksum_benchit(cs); in chksum_benchmark()
311 if (cs->bs256k > max) { in chksum_benchmark()
312 max = cs->bs256k; in chksum_benchmark()
313 sha512->set_fastest(id); in chksum_benchmark()
316 sha512->setid(id_save); in chksum_benchmark()
319 id_save = blake3->getid(); in chksum_benchmark()
320 for (max = 0, id = 0; id < blake3->getcnt(); id++) { in chksum_benchmark()
321 blake3->setid(id); in chksum_benchmark()
322 cs = &chksum_stat_data[cbid++]; in chksum_benchmark()
323 cs->init = abd_checksum_blake3_tmpl_init; in chksum_benchmark()
324 cs->func = abd_checksum_blake3_native; in chksum_benchmark()
325 cs->free = abd_checksum_blake3_tmpl_free; in chksum_benchmark()
326 cs->name = blake3->name; in chksum_benchmark()
327 cs->impl = blake3->getname(); in chksum_benchmark()
328 chksum_benchit(cs); in chksum_benchmark()
329 if (cs->bs256k > max) { in chksum_benchmark()
330 max = cs->bs256k; in chksum_benchmark()
331 blake3->set_fastest(id); in chksum_benchmark()
334 blake3->setid(id_save); in chksum_benchmark()
352 chksum_kstat->ks_data = NULL; in chksum_init()
353 chksum_kstat->ks_ndata = UINT32_MAX; in chksum_init()