28 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_CLIENT 71 for (
i = 0;
i < nr_objs;
i++) {
72 memset(&
obj, 0,
sizeof obj);
142 for (
i = 0;
i < blk_cnt;
i++) {
153 if(
rc != 0)
return rc;
156 if (
rc != 0)
return rc;
159 for (
i = 0;
i < blk_cnt;
i++) {
162 last_index += blk_size;
165 attr.ov_vec.v_count[
i] = 0;
170 memset(&
obj, 0,
sizeof obj);
254 attr.ov_vec.v_count[0] = 0;
333 attr.ov_vec.v_count[0] = 0;
334 attr.ov_vec.v_count[1] = 0;
335 attr.ov_vec.v_count[2] = 0;
391 void *stashed_buffers[2];
429 attr.ov_vec.v_count[0] = 0;
430 attr.ov_vec.v_count[1] = 0;
502 for (
i = 0;
i < nr_objs;
i++) {
504 memset(&ext[
i], 0,
sizeof ext[
i]);
509 for (
i = 0;
i < nr_objs;
i++) {
520 attr[
i].ov_vec.v_count[0] = 0;
524 for (
i = 0;
i < nr_objs;
i++) {
538 if (
i != nr_objs)
goto CLEANUP;
543 for (
i = 0;
i < nr_objs;
i++) {
558 for (
i = 0;
i < nr_objs;
i++) {
564 for (
i = 0;
i < nr_objs;
i++) {
565 if (ext !=
NULL && ext[
i].iv_vec.v_nr != 0)
637 {
"read_multiple_blocks",
639 {
"read_multiple_blocks_into_aligned_buffers",
641 {
"read_objs_in_parallel",
647 #undef M0_TRACE_SUBSYSTEM
int st_entity_create(struct m0_fid *pool, struct m0_entity *entity, struct m0_op **op)
void st_op_free(struct m0_op *op)
M0_INTERNAL int m0_indexvec_alloc(struct m0_indexvec *ivec, uint32_t len)
const m0_time_t M0_TIME_NEVER
int const char const void * value
uint64_t m0_client_layout_id(const struct m0_client *instance)
M0_INTERNAL void m0_indexvec_free(struct m0_indexvec *ivec)
M0_INTERNAL void m0_free_aligned(void *data, size_t size, unsigned shift)
const struct m0_uint128 M0_UBER_REALM
static int st_read_suite_fini(void)
static void read_multiple_blocks(void)
#define ST_ASSERT_FATAL(a)
M0_INTERNAL int m0_bufvec_alloc(struct m0_bufvec *bufvec, uint32_t num_segs, m0_bcount_t seg_size)
M0_INTERNAL void m0_bufvec_free(struct m0_bufvec *bufvec)
struct st_suite st_suite_m0_read
static uint64_t layout_id
static void attr(struct m0_addb2__context *ctx, const uint64_t *v, char *buf)
void st_container_init(struct m0_container *con, struct m0_realm *parent, const struct m0_uint128 *id, struct m0_client *instance)
static char pattern[CHAR_NUM]
struct m0_entity re_entity
int oid_get(struct m0_uint128 *oid)
struct m0_container st_read_container
static int create_objs(int nr_objs)
static void read_objs_in_parallel(void)
static void read_multiple_blocks_into_aligned_buffers(void)
static uint32_t unit_size
void console_printf(const char *fmt,...)
static void mem_free(const struct m0_be_btree *btree, struct m0_be_tx *tx, void *ptr)
static struct m0_uint128 read_oid_get(int idx)
void st_obj_init(struct m0_obj *obj, struct m0_realm *parent, const struct m0_uint128 *id, uint64_t layout_id)
static int write_objs(void)
static void read_one_block(void)
void st_obj_op(struct m0_obj *obj, enum m0_obj_opcode opcode, struct m0_indexvec *ext, struct m0_bufvec *data, struct m0_bufvec *attr, uint64_t mask, uint32_t flags, struct m0_op **op)
#define MEM_ALLOC_ARR(arr, nr)
void read_block_has_val(struct m0_bufvec *data, int block_idx, char val)
struct m0_client * st_get_instance()
#define M0_CLIENT_THREAD_ENTER
void st_op_launch(struct m0_op **op, uint32_t nr)
void st_entity_fini(struct m0_entity *entity)
static struct m0_uint128 read_oids[MAX_READ_OID_NUM]
void st_entity_open(struct m0_entity *entity)
static int st_read_suite_init(void)
M0_INTERNAL void * m0_alloc_aligned(size_t size, unsigned shift)
struct m0_addb_ctx m0_addb_ctx
int32_t st_op_wait(struct m0_op *op, uint64_t bits, m0_time_t to)
void st_op_fini(struct m0_op *op)