Lines Matching refs:map

266 write_map_key(const char *filename, char *key, draid_map_t *map,  in write_map_key()  argument
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()
323 dump_map(draid_map_t *map, const char *key, double worst_ratio, in dump_map() argument
330 "avg_ratio: %2.03f\n", key, (u_longlong_t)map->dm_seed, 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()
368 draid_map_t map; in dump_map_nv() local
374 map.dm_seed = fnvlist_lookup_uint64(cfg, MAP_SEED); in dump_map_nv()
375 map.dm_checksum = fnvlist_lookup_uint64(cfg, MAP_CHECKSUM); in dump_map_nv()
376 map.dm_children = fnvlist_lookup_uint64(cfg, MAP_CHILDREN); in dump_map_nv()
377 map.dm_nperms = fnvlist_lookup_uint64(cfg, MAP_NPERMS); in dump_map_nv()
378 map.dm_perms = fnvlist_lookup_uint8_array(cfg, MAP_PERMS, &c); in dump_map_nv()
380 dump_map(&map, key, (double)worst_ratio / 1000.0, in dump_map_nv()
409 draid_map_t *map; in alloc_new_map() local
412 map = malloc(sizeof (draid_map_t)); in alloc_new_map()
413 if (map == NULL) in alloc_new_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()
423 free(map); in alloc_new_map()
427 *mapp = map; in alloc_new_map()
439 draid_map_t *map; in alloc_fixed_map() local
446 map = malloc(sizeof (draid_map_t)); in alloc_fixed_map()
447 if (map == NULL) in alloc_fixed_map()
450 memcpy(map, fixed_map, sizeof (draid_map_t)); in alloc_fixed_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()
455 free(map); in alloc_fixed_map()
459 *mapp = map; in alloc_fixed_map()
468 free_map(draid_map_t *map) in free_map() argument
470 free(map->dm_perms); in free_map()
471 free(map); in free_map()
493 eval_resilver(draid_map_t *map, uint64_t groupwidth, uint64_t nspares, in eval_resilver() argument
496 uint64_t children = map->dm_children; 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()
551 ASSERT3U(spareidx, <, map->dm_children); in eval_resilver()
570 for (int i = 0; i < map->dm_children; i++) { in eval_resilver()
605 eval_decluster(draid_map_t *map, double *worst_ratiop, double *avg_ratiop) in eval_decluster() argument
607 uint64_t children = map->dm_children; in eval_decluster()
652 ratio = eval_resilver(map, groupwidth, in eval_decluster()
669 ratio = eval_resilver(map, in eval_decluster()
697 dump_map(map, "DEBUG", worst_ratio, *avg_ratiop, 2); in eval_decluster()
717 draid_map_t *map; in eval_maps() local
724 vdev_draid_rand(map_seed), &map); in eval_maps()
738 eval_decluster(map, &worst_ratio, &avg_ratio); in eval_maps()
745 best_map = map; in eval_maps()
749 free_map(map); in eval_maps()
877 draid_map_t *map; in draid_generate() local
881 error = eval_maps(children, passes, map_seed, &map, in draid_generate()
895 error = write_map_key(filename, key, map, worst_ratio, in draid_generate()
899 dump_map(map, key, worst_ratio, avg_ratio, in draid_generate()
910 free_map(map); in draid_generate()
986 draid_map_t *map; in draid_verify() local
991 error = alloc_fixed_map(children, &map); in draid_verify()
1008 free_map(map); 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()
1069 eval_decluster(map, &worst_ratio, &avg_ratio); in draid_verify()
1099 free_map(map); in draid_verify()
1110 free_map(map); in draid_verify()