Motr
M0
|
#include "lib/types.h"
#include "lib/assert.h"
#include "lib/memory.h"
#include "lib/errno.h"
#include "lib/arith.h"
#include "lib/ub.h"
#include "ut/ut.h"
#include "sns/parity_math.h"
Go to the source code of this file.
Data Structures | |
struct | mat_collection |
struct | sns_ir_node |
Macros | |
#define | KB(x) ((x) * 1024) |
#define | MB(x) (KB(x) * 1024) |
#define | _TESTS |
Enumerations | |
enum | { MAX_NUM_ROWS = 20 } |
enum | { DATA_UNIT_COUNT_MAX = 30, PARITY_UNIT_COUNT_MAX = 12, DATA_TO_PRTY_RATIO_MAX = DATA_UNIT_COUNT_MAX / PARITY_UNIT_COUNT_MAX, UNIT_BUFF_SIZE_MAX = MB(1), DATA_UNIT_COUNT = 15, PARITY_UNIT_COUNT = 1, RS_MAX_PARITY_UNIT_COUNT = DATA_UNIT_COUNT - 1, NODES = 15 } |
enum | { NUM_SEG = 8, SEG_SIZE = 64 } |
enum | recovery_type { FAIL_VECTOR, FAIL_INDEX } |
enum | failure_type { ALL_DATA, ALL_PARITY, MIXED_FAILURE } |
enum | ir_matrix_type { IRM_VANDMAT, IRM_NORM_VANDMAT, IRM_SINGULAR_MAT } |
enum | { UB_ITER = 100 } |
Functions | |
static void | test_matrix_inverse (void) |
static void | test_incr_recov_init (void) |
static void | test_incr_recov (void) |
static void | test_invalid_input (void) |
static void | test_init (void) |
static int | matrix_init (struct mat_collection *) |
static void | mat_fill (struct m0_matrix *mat, int N, int K, enum ir_matrix_type mt) |
static void | identity_row_set (struct m0_matrix *mat, int row) |
static void | vandermonde_row_set (struct m0_matrix *mat, int row) |
static void | null_matrix_fill (struct m0_matrix *mat, int N) |
static void | invert (int N, int K, enum ir_matrix_type mt, struct mat_collection *matrices) |
static bool | mat_compare (struct m0_matrix *mat1, struct m0_matrix *mat2) |
static void | matrix_fini (struct mat_collection *matrices) |
static void | parity_calculate (struct m0_parity_math *math, struct m0_bufvec *x, struct m0_bufvec *p, uint32_t num_seg, uint32_t seg_size) |
static void | direct_recover (struct m0_parity_math *math, struct m0_bufvec *x, struct m0_bufvec *p) |
static uint32_t * | failure_setup (struct m0_parity_math *math, uint32_t total_failures, enum failure_type ft) |
static void | array_randomly_fill (uint32_t *r_arr, uint32_t size, uint32_t range) |
static void | rhs_prepare (const struct m0_sns_ir *ir, struct m0_matvec *des, const struct m0_bufvec *x, const struct m0_bufvec *p, const uint32_t *failed_arr, uint32_t total_failures) |
static void | reconstruct (const struct m0_sns_ir *ir, const struct m0_matvec *b, struct m0_matvec *r) |
static bool | compare (const struct m0_sns_ir *ir, const uint32_t *failed_arr, const struct m0_bufvec *x, const struct m0_matvec *r) |
static void | incremental_recover (struct m0_parity_math *math, struct m0_bufvec *x, struct m0_bufvec *p) |
static void | sns_ir_nodes_init (struct m0_parity_math *math, struct sns_ir_node *nodes, uint32_t *failed_arr, uint32_t node_nr, uint32_t alive_nr) |
static void | failure_register (struct m0_sns_ir *ir, struct m0_bufvec *recov_arr, uint32_t *failed_arr, uint32_t total_failures) |
static void | alive_arrays_fill (struct m0_sns_ir *ir, uint32_t *alive_blocks, uint32_t start_idx, uint32_t count) |
static void | sns_ir_nodes_recover (struct sns_ir_node *node, uint32_t node_nr, struct m0_bufvec *x, struct m0_bufvec *p) |
static void | sns_ir_nodes_gather (struct sns_ir_node *node, uint32_t node_nr, struct m0_bufvec *x, struct m0_bufvec *p, uint32_t *failed_arr) |
static void | sns_ir_nodes_compare (struct sns_ir_node *node, struct m0_bufvec *x, struct m0_bufvec *p) |
static void | sns_ir_nodes_fini (struct sns_ir_node *node, uint32_t node_nr, uint32_t total_failures) |
static uint32_t | block_nr (const struct m0_sns_ir *ir) |
static void | bufvec_initialize (struct m0_bufvec **bvec, uint32_t count, uint32_t num_seg, uint32_t size) |
static void | bufvec_fill (struct m0_bufvec *x) |
static void | bufvec_fini (struct m0_bufvec *bvec, uint32_t count) |
static bool | bufvec_eq (struct m0_bufvec *bvec1, struct m0_bufvec *bvec2) |
static void | buf_initialize (struct m0_buf *buf, uint32_t size, uint32_t len) |
static void | buf_free (struct m0_buf *buf, uint32_t count) |
static void | bufvec_buf (struct m0_bufvec *bvec, struct m0_buf *buf, uint32_t count, bool dir) |
static void | unit_spoil (const uint32_t buff_size, const uint32_t fail_count, const uint32_t data_count) |
static bool | expected_eq (const uint32_t data_count, const uint32_t buff_size) |
static bool | config_generate (uint32_t *data_count, uint32_t *parity_count, uint32_t *buff_size, const enum m0_parity_cal_algo algo) |
static bool | rand_rs_config_generate (uint32_t *data_count, uint32_t *parity_count, uint32_t *buff_size) |
static void | test_recovery (const enum m0_parity_cal_algo algo, const enum recovery_type rt) |
static void | test_rs_fv_recover (void) |
static void | test_rs_fv_rand_recover (void) |
static void | test_xor_fv_recover (void) |
static void | test_xor_fail_idx_recover (void) |
static void | test_buffer_xor (void) |
static void | test_parity_math_diff (uint32_t parity_cnt) |
static void | test_parity_math_diff_xor (void) |
static void | test_parity_math_diff_rs (void) |
static void | test_incr_recov_rs (void) |
static void | _buf_free (struct m0_buf *buf) |
static int | ub_init (const char *opts M0_UNUSED) |
void | parity_math_tb (void) |
static void | ub_small_4K (int iter) |
static void | ub_medium_4K (int iter) |
static void | ub_large_4K (int iter) |
static void | ub_small_1M (int iter) |
static void | ub_medium_1M (int iter) |
static void | ub_large_1M (int iter) |
static void | ub_small_32K (int iter) |
static void | ub_medium_32K (int iter) |
static void | ub_large_32K (int iter) |
static void | ub_small_4_2_4K (int iter) |
static void | ub_small_4_2_256K (int iter) |
static void | ub_small_4_2_1M (int iter) |
Variables | |
static uint8_t | expected [DATA_UNIT_COUNT_MAX][UNIT_BUFF_SIZE_MAX] |
static uint8_t | data [DATA_UNIT_COUNT_MAX][UNIT_BUFF_SIZE_MAX] |
static uint8_t | parity [DATA_UNIT_COUNT_MAX][UNIT_BUFF_SIZE_MAX] |
static uint8_t | fail [DATA_UNIT_COUNT_MAX+PARITY_UNIT_COUNT_MAX] |
static int32_t | duc |
static int32_t | puc |
static int32_t | fuc |
static uint32_t | UNIT_BUFF_SIZE |
static int32_t | fail_index_xor |
static uint64_t | seed |
struct m0_ut_suite | parity_math_ut |
struct m0_ut_suite | parity_math_ssse3_ut |
struct m0_ub_set | m0_parity_math_ub |
#define _TESTS |
Definition at line 1428 of file parity_math_ut.c.
Definition at line 32 of file parity_math_ut.c.
Definition at line 33 of file parity_math_ut.c.
anonymous enum |
Enumerator | |
---|---|
MAX_NUM_ROWS |
Definition at line 35 of file parity_math_ut.c.
anonymous enum |
Enumerator | |
---|---|
DATA_UNIT_COUNT_MAX | |
PARITY_UNIT_COUNT_MAX | |
DATA_TO_PRTY_RATIO_MAX | |
UNIT_BUFF_SIZE_MAX | |
DATA_UNIT_COUNT | |
PARITY_UNIT_COUNT | |
RS_MAX_PARITY_UNIT_COUNT | |
NODES |
Definition at line 39 of file parity_math_ut.c.
anonymous enum |
Enumerator | |
---|---|
NUM_SEG | |
SEG_SIZE |
Definition at line 50 of file parity_math_ut.c.
anonymous enum |
Enumerator | |
---|---|
UB_ITER |
Definition at line 1612 of file parity_math_ut.c.
enum failure_type |
Enumerator | |
---|---|
ALL_DATA | |
ALL_PARITY | |
MIXED_FAILURE |
Definition at line 86 of file parity_math_ut.c.
enum ir_matrix_type |
Enumerator | |
---|---|
IRM_VANDMAT | |
IRM_NORM_VANDMAT | |
IRM_SINGULAR_MAT |
Definition at line 92 of file parity_math_ut.c.
enum recovery_type |
Enumerator | |
---|---|
FAIL_VECTOR | |
FAIL_INDEX |
Definition at line 73 of file parity_math_ut.c.
|
static |
Definition at line 1362 of file parity_math_ut.c.
|
static |
|
static |
Definition at line 867 of file parity_math_ut.c.
|
inlinestatic |
|
static |
Definition at line 1380 of file parity_math_ut.c.
|
static |
Definition at line 1368 of file parity_math_ut.c.
|
static |
Definition at line 1335 of file parity_math_ut.c.
Definition at line 1389 of file parity_math_ut.c.
|
static |
Definition at line 1318 of file parity_math_ut.c.
|
static |
Definition at line 1308 of file parity_math_ut.c.
|
static |
Definition at line 1293 of file parity_math_ut.c.
|
static |
Definition at line 932 of file parity_math_ut.c.
|
static |
Definition at line 196 of file parity_math_ut.c.
|
static |
Definition at line 796 of file parity_math_ut.c.
|
static |
|
static |
Definition at line 1062 of file parity_math_ut.c.
|
static |
Definition at line 842 of file parity_math_ut.c.
|
static |
Definition at line 678 of file parity_math_ut.c.
|
static |
Definition at line 975 of file parity_math_ut.c.
|
static |
Definition at line 615 of file parity_math_ut.c.
Definition at line 714 of file parity_math_ut.c.
|
static |
Definition at line 631 of file parity_math_ut.c.
|
static |
Definition at line 727 of file parity_math_ut.c.
|
static |
Definition at line 593 of file parity_math_ut.c.
|
static |
Definition at line 705 of file parity_math_ut.c.
|
static |
Definition at line 771 of file parity_math_ut.c.
void parity_math_tb | ( | void | ) |
Definition at line 1460 of file parity_math_ut.c.
|
static |
Definition at line 267 of file parity_math_ut.c.
|
static |
Definition at line 906 of file parity_math_ut.c.
|
static |
Definition at line 1222 of file parity_math_ut.c.
|
static |
Definition at line 1246 of file parity_math_ut.c.
|
static |
Definition at line 1150 of file parity_math_ut.c.
|
static |
Definition at line 1012 of file parity_math_ut.c.
|
static |
Definition at line 1099 of file parity_math_ut.c.
|
static |
|
static |
Definition at line 949 of file parity_math_ut.c.
|
static |
Definition at line 741 of file parity_math_ut.c.
|
static |
|
static |
|
static |
Definition at line 1262 of file parity_math_ut.c.
|
static |
Definition at line 566 of file parity_math_ut.c.
|
static |
Definition at line 470 of file parity_math_ut.c.
|
static |
|
static |
|
static |
Definition at line 314 of file parity_math_ut.c.
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 1455 of file parity_math_ut.c.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 693 of file parity_math_ut.c.
|
static |
Definition at line 56 of file parity_math_ut.c.
|
static |
Definition at line 59 of file parity_math_ut.c.
|
static |
Definition at line 55 of file parity_math_ut.c.
|
static |
Definition at line 58 of file parity_math_ut.c.
|
static |
Definition at line 63 of file parity_math_ut.c.
|
static |
Definition at line 61 of file parity_math_ut.c.
struct m0_ub_set m0_parity_math_ub |
Definition at line 1614 of file parity_math_ut.c.
|
static |
Definition at line 57 of file parity_math_ut.c.
struct m0_ut_suite parity_math_ssse3_ut |
Definition at line 1447 of file parity_math_ut.c.
struct m0_ut_suite parity_math_ut |
Definition at line 1439 of file parity_math_ut.c.
|
static |
Definition at line 60 of file parity_math_ut.c.
|
static |
Definition at line 64 of file parity_math_ut.c.
|
static |
Definition at line 62 of file parity_math_ut.c.