35 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_BE 79 .ldsc_items_pending_max = 0,
191 operation_nr = producer ?
198 for (
i = end - step;
i < end; ++
i) {
215 .blgi_producer = is_producer,
217 .blgi_operation_nr = 0,
282 #undef M0_TRACE_SUBSYSTEM M0_INTERNAL void m0_be_log_discard_item_finished(struct m0_be_log_discard *ld, struct m0_be_log_discard_item *ldi)
#define M0_ALLOC_ARR(arr, nr)
M0_INTERNAL void m0_mutex_unlock(struct m0_mutex *mutex)
static void be_ut_log_discard_gp_discard(struct m0_be_log_discard *ld, struct m0_be_log_discard_item *ldi)
struct m0_atomic64 blgp_consume_nr
static struct m0_semaphore sem
M0_INTERNAL void m0_be_log_discard_flush(struct m0_be_log_discard *ld, struct m0_be_op *op)
void m0_be_ut_log_discard_getput(void)
M0_UT_THREADS_DEFINE(be_ut_log_discard_gp_producers, &be_ut_log_discard_gp_thread)
void(* ldsc_sync)(struct m0_be_log_discard *ld, struct m0_be_op *op, struct m0_be_log_discard_item *ldi)
#define M0_BE_OP_SYNC(op_obj, action)
M0_INTERNAL void m0_be_log_discard_item_starting(struct m0_be_log_discard *ld, struct m0_be_log_discard_item *ldi)
static void be_ut_log_discard_gp_thread(void *param)
static void be_ut_log_discard_gp_set(struct be_ut_log_discard_gp_test_item *item, bool is_producer, int index, struct be_ut_log_discard_gp_test *test)
M0_INTERNAL void m0_mutex_lock(struct m0_mutex *mutex)
static struct m0_rpc_item * item
void m0_be_ut_log_discard_usecase(void)
M0_INTERNAL int m0_be_log_discard_init(struct m0_be_log_discard *ld, struct m0_be_log_discard_cfg *ld_cfg)
M0_INTERNAL void m0_be_log_discard_item_get(struct m0_be_log_discard *ld, struct m0_be_op *op, struct m0_be_log_discard_item **ldi)
M0_INTERNAL void m0_be_log_discard_item_put(struct m0_be_log_discard *ld, struct m0_be_log_discard_item *ldi)
struct m0_atomic64 blgp_produce_nr
struct m0_be_log_discard_item * blgp_item[BE_UT_LOG_DISCARD_GP_ITEM_MAX]
M0_INTERNAL int m0_semaphore_init(struct m0_semaphore *semaphore, unsigned value)
M0_INTERNAL void m0_mutex_init(struct m0_mutex *mutex)
M0_INTERNAL void m0_be_op_done(struct m0_be_op *op)
struct m0_be_log_discard blgp_ld
static void be_ut_log_discard_usecase_discard(struct m0_be_log_discard *ld, struct m0_be_log_discard_item *ldi)
M0_INTERNAL void m0_be_log_discard_fini(struct m0_be_log_discard *ld)
M0_INTERNAL void m0_be_op_active(struct m0_be_op *op)
M0_INTERNAL struct m0_locality * m0_locality0_get(void)
#define M0_ALLOC_PTR(ptr)
M0_INTERNAL void m0_semaphore_fini(struct m0_semaphore *semaphore)
static void be_ut_log_discard_gp_produce(struct be_ut_log_discard_gp_test *test)
M0_INTERNAL void m0_mutex_fini(struct m0_mutex *mutex)
#define M0_UT_THREADS_STOP(name)
M0_INTERNAL void * m0_be_log_discard_item_user_data(struct m0_be_log_discard_item *ldi)
struct be_ut_log_discard_gp_test * blgi_test
struct m0_semaphore blgp_sem
M0_INTERNAL void m0_semaphore_down(struct m0_semaphore *semaphore)
struct m0_mutex blgp_lock
#define M0_UT_THREADS_START(name, thread_nr, param_array)
M0_INTERNAL void m0_semaphore_up(struct m0_semaphore *semaphore)
be_ut_log_discard_gp_role
static void be_ut_log_discard_usecase_sync(struct m0_be_log_discard *ld, struct m0_be_op *op, struct m0_be_log_discard_item *ldi)
static void be_ut_log_discard_gp_consume(struct be_ut_log_discard_gp_test *test)
M0_INTERNAL void m0_be_log_discard_item_user_data_set(struct m0_be_log_discard_item *ldi, void *data)
static void be_ut_log_discard_gp_sync(struct m0_be_log_discard *ld, struct m0_be_op *op, struct m0_be_log_discard_item *ldi)
static int64_t m0_atomic64_add_return(struct m0_atomic64 *a, int64_t d)
static void m0_atomic64_set(struct m0_atomic64 *a, int64_t num)
#define M0_IMPOSSIBLE(fmt,...)