Lines Matching +full:s +full:- +full:merged
9 * or https://opensource.org/licenses/CDDL-1.0.
56 "\tdraid generate [-cv] [-m min] [-n max] [-p passes] FILE\n" in draid_usage()
57 "\tdraid verify [-rv] FILE\n" in draid_usage()
58 "\tdraid dump [-v] [-m min] [-n max] FILE\n" in draid_usage()
190 snprintf(tmpname, MAXPATHLEN - 1, "%s.XXXXXX", filename); in write_map()
211 size_t size = MIN(buflen - bytes, 131072); in write_map()
301 fnvlist_add_uint64(cfg, MAP_SEED, map->dm_seed); in write_map_key()
302 fnvlist_add_uint64(cfg, MAP_CHECKSUM, map->dm_checksum); in write_map_key()
303 fnvlist_add_uint64(cfg, MAP_CHILDREN, map->dm_children); in write_map_key()
304 fnvlist_add_uint64(cfg, MAP_NPERMS, map->dm_nperms); in write_map_key()
305 fnvlist_add_uint8_array(cfg, MAP_PERMS, map->dm_perms, in write_map_key()
306 map->dm_children * map->dm_nperms * sizeof (uint8_t)); in write_map_key()
329 printf(" \"%s\": seed: 0x%016llx worst_ratio: %2.03f " in dump_map()
330 "avg_ratio: %2.03f\n", key, (u_longlong_t)map->dm_seed, in dump_map()
334 printf(" \"%s\":\n" in dump_map()
341 key, (u_longlong_t)map->dm_seed, in dump_map()
342 (u_longlong_t)map->dm_checksum, worst_ratio, avg_ratio, in dump_map()
343 (u_longlong_t)map->dm_children, in dump_map()
344 (u_longlong_t)map->dm_nperms); in dump_map()
348 for (int i = 0; i < map->dm_nperms; i++) { in dump_map()
350 for (int j = 0; j < map->dm_children; j++) { in dump_map()
351 printf("%3d%s ", map->dm_perms[ in dump_map()
352 i * map->dm_children + j], in dump_map()
353 j < map->dm_children - 1 ? in dump_map()
416 map->dm_children = children; in alloc_new_map()
417 map->dm_nperms = nperms; in alloc_new_map()
418 map->dm_seed = seed; in alloc_new_map()
419 map->dm_checksum = 0; in alloc_new_map()
421 error = vdev_draid_generate_perms(map, &map->dm_perms); in alloc_new_map()
451 VERIFY3U(map->dm_checksum, !=, 0); in alloc_fixed_map()
453 error = vdev_draid_generate_perms(map, &map->dm_perms); in alloc_fixed_map()
470 free(map->dm_perms); in free_map()
496 uint64_t children = map->dm_children; in eval_resilver()
498 uint64_t ndisks = children - nspares; in eval_resilver()
503 while (ngroups * (groupwidth) % (children - nspares) != 0) in eval_resilver()
506 int *ios = calloc(map->dm_children, sizeof (uint64_t)); in eval_resilver()
511 for (int i = 0; i < map->dm_nperms; i++) { in eval_resilver()
512 uint8_t *row = &map->dm_perms[i * map->dm_children]; in eval_resilver()
516 uint64_t spareidx = map->dm_children - nspares; in eval_resilver()
536 * reads the non-faulted drives require and the number in eval_resilver()
551 ASSERT3U(spareidx, <, map->dm_children); in eval_resilver()
570 for (int i = 0; i < map->dm_children; i++) { in eval_resilver()
607 uint64_t children = map->dm_children; in eval_decluster()
637 groupwidth <= MIN(children - nspares, 19); in eval_decluster()
759 fletcher_4_native_varsize(best_map->dm_perms, in eval_maps()
760 sizeof (uint8_t) * best_map->dm_children * best_map->dm_nperms, in eval_maps()
762 best_map->dm_checksum = cksum.zc_word[0]; in eval_maps()
781 while ((c = getopt(argc, argv, ":cm:n:p:v")) != -1) { in draid_generate()
809 * 0 - Only log when a better map is added to the file. in draid_generate()
810 * 1 - Log the current best map for each child count. in draid_generate()
812 * 2 - Log the current best map for each child count. in draid_generate()
814 * 3 - Log the current best map for each child count. in draid_generate()
845 printf("Unable to open /dev/urandom: %s\n:", strerror(errno)); in draid_generate()
853 bytes - bytes_read); in draid_generate()
855 printf("Unable to read /dev/urandom: %s\n:", in draid_generate()
867 printf("Writing generated mappings to '%s':\n", filename); in draid_generate()
884 printf("Error eval_maps(): %s\n", strerror(error)); in draid_generate()
906 printf("Error write_map_key(): %s\n", strerror(error)); in draid_generate()
920 printf("Restarting by request (-c): %d\n", restarts); in draid_generate()
928 * Verify each map in the file by generating its in-memory permutation array
938 while ((c = getopt(argc, argv, ":rv")) != -1) { in draid_verify()
975 printf("Verifying permutation maps: '%s'\n", filename); in draid_verify()
981 * reference file to cross-check the permutation. in draid_verify()
993 printf("Error alloc_fixed_map() failed: %s\n", in draid_verify()
1006 printf("Error read_map_key() failed: %s\n", in draid_verify()
1021 if (map->dm_seed != nv_seed) { in draid_verify()
1023 "0x%016llx\n", (u_longlong_t)map->dm_seed, in draid_verify()
1028 if (map->dm_checksum != nv_checksum) { in draid_verify()
1031 (u_longlong_t)map->dm_checksum, in draid_verify()
1036 if (map->dm_children != nv_children) { in draid_verify()
1038 "!= %llu\n", (u_longlong_t)map->dm_children, in draid_verify()
1043 if (map->dm_nperms != nv_nperms) { in draid_verify()
1045 "!= %llu\n", (u_longlong_t)map->dm_nperms, in draid_verify()
1051 if (map->dm_perms[i] != nv_perms[i]) { in draid_verify()
1054 (int)map->dm_perms[i], in draid_verify()
1105 printf("- %llu children: good\n", in draid_verify()
1114 if (n != (VDEV_DRAID_MAX_CHILDREN - 1)) { in draid_verify()
1116 n, VDEV_DRAID_MAX_CHILDREN - 1); in draid_verify()
1121 n, VDEV_DRAID_MAX_CHILDREN - 1); in draid_verify()
1127 * Dump the contents of the specified mapping(s) for inspection.
1137 while ((c = getopt(argc, argv, ":vm:n:")) != -1) { in draid_dump()
1190 printf("Error dump_map_key(): %s\n", strerror(error)); in draid_dump()
1231 printf("Error read_map_key() failed: %s\n", in draid_table()
1260 int error, merged = 0; in draid_merge_impl() local
1289 merged++; in draid_merge_impl()
1293 merged++; in draid_merge_impl()
1306 *mergedp = merged; in draid_merge_impl()
1323 while ((c = getopt(argc, argv, ":")) != -1) { in draid_merge()
1351 printf("Error read_map(): %s\n", strerror(error)); in draid_merge()
1357 int merged = 0; in draid_merge() local
1361 error = draid_merge_impl(allcfgs, srcfilename, &merged); in draid_merge()
1363 printf("Error draid_merge_impl(): %s\n", in draid_merge()
1369 total_merged += merged; in draid_merge()
1370 printf("Merged %d key(s) from '%s' into '%s'\n", merged, in draid_merge()
1379 printf("Merged a total of %d key(s) into '%s'\n", total_merged, in draid_merge()
1396 return (draid_generate(argc - 1, argv + 1)); in main()
1398 return (draid_verify(argc - 1, argv + 1)); in main()
1400 return (draid_dump(argc - 1, argv + 1)); in main()
1402 return (draid_table(argc - 1, argv + 1)); in main()
1404 return (draid_merge(argc - 1, argv + 1)); in main()