58 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_ADDB 184 M0_PRE(
conf->co_buffer_size %
sizeof(uint64_t) == 0);
202 mach_tlist_init(&sys->
sy_pool);
230 mach_tlist_fini(&sys->
sy_pool);
342 if (
service->sc_type == M0_CST_ADDB2) {
358 uint64_t
key,
bool mkfs,
bool force,
431 &
counter->co_sensor.s_linkage.t_link);
453 if (
m0_get()->i_disable_addb2_storage ||
662 return mach_tlist_length(&sys->
sy_pool) +
691 0, +
t->o_tr.tr_nr)));
694 #undef M0_TRACE_SUBSYSTEM struct m0_addb2_config sy_conf
struct m0_sm_ast_wait sy_astwait
static void sys_idle(struct m0_addb2_mach *mach)
static struct m0_addb2_storage * stor
struct m0_addb2_storage * sy_stor
M0_INTERNAL void m0_addb2_net_fini(struct m0_addb2_net *net)
M0_INTERNAL void m0_mutex_unlock(struct m0_mutex *mutex)
void m0_addb2_sys_net_stop(struct m0_addb2_sys *sys)
static m0_bcount_t sys_size(const struct m0_addb2_sys *sys)
static struct m0_addb2_mach * m
void m0_addb2_sys_sm_stop(struct m0_addb2_sys *sys)
static struct buffer * cur(struct m0_addb2_mach *mach, m0_bcount_t space)
void m0_addb2_counter_add(struct m0_addb2_counter *counter, uint64_t label, int idx)
void(* sa_cb)(struct m0_sm_group *grp, struct m0_sm_ast *)
M0_INTERNAL void m0_list_init(struct m0_list *head)
void m0_addb2_sys_sm_start(struct m0_addb2_sys *sys)
struct m0_addb2_mach * tls_addb2_mach
static struct m0_sm_group * grp
#define M0_LOG(level,...)
M0_INTERNAL void m0_sm_ast_wait(struct m0_sm_ast_wait *wait)
M0_INTERNAL bool m0_mutex_is_not_locked(const struct m0_mutex *mutex)
static void sys_ast(struct m0_sm_group *grp, struct m0_sm_ast *ast)
void(* sto_idle)(struct m0_addb2_storage *stor)
static const struct m0_addb2_storage_ops sys_stor_ops
static void sys_qunlock(struct m0_addb2_sys *sys)
static const struct m0_addb2_mach_ops sys_mach_ops
struct m0_addb2_net * sy_net
void m0_addb2_mach_fini(struct m0_addb2_mach *mach)
M0_INTERNAL void m0_list_del(struct m0_list_link *old)
M0_INTERNAL void * m0_addb2_storage_cookie(const struct m0_addb2_storage *stor)
M0_INTERNAL void m0_sm_ast_wait_init(struct m0_sm_ast_wait *wait, struct m0_mutex *ch_guard)
struct m0_tlink s_linkage
M0_INTERNAL void m0_addb2_storage_stop(struct m0_addb2_storage *stor)
void m0_addb2_sys_attach(struct m0_addb2_sys *sys, struct m0_addb2_sys *src)
static struct m0_addb2_mach * mach
M0_INTERNAL struct m0 * m0_get(void)
M0_INTERNAL bool m0_addb2_net__is_not_locked(const struct m0_addb2_net *net)
M0_INTERNAL void m0_mutex_lock(struct m0_mutex *mutex)
M0_INTERNAL bool m0_addb2_storage__is_not_locked(const struct m0_addb2_storage *stor)
M0_INTERNAL void m0_addb2__mach_print(const struct m0_addb2_mach *m)
void(* m0_addb2__sys_submit_trap)(struct m0_addb2_sys *sys, struct m0_addb2_trace_obj *obj)
M0_INTERNAL struct m0_addb2_net * m0_addb2_net_init(void)
struct m0_addb2_trace o_tr
#define M0_CHECK_EX(cond)
static int head(struct m0_sm *mach)
M0_INTERNAL struct m0_thread_tls * m0_thread_tls(void)
static struct m0_sm_ast ast[NR]
struct m0_addb2_mach * sy_stash
void m0_addb2_trace_done(const struct m0_addb2_trace *ctrace)
M0_INTERNAL void m0_addb2_storage_fini(struct m0_addb2_storage *stor)
return M0_ERR(-EOPNOTSUPP)
void m0_addb2_sys_fini(struct m0_addb2_sys *sys)
#define M0_AMB(obj, ptr, field)
#define m0_tl_teardown(name, head, obj)
void m0_addb2_sys_detach(struct m0_addb2_sys *sys)
void(* m0_addb2__sys_ast_trap)(struct m0_addb2_sys *sys)
int m0_addb2_sys_init(struct m0_addb2_sys **out, const struct m0_addb2_config *conf)
M0_INTERNAL bool m0_mutex_is_locked(const struct m0_mutex *mutex)
void m0_addb2_mach_stop(struct m0_addb2_mach *mach)
static struct m0_thread t[8]
static void sys_post(struct m0_addb2_sys *sys)
M0_INTERNAL int m0_semaphore_init(struct m0_semaphore *semaphore, unsigned value)
int m0_addb2_sys_submit(struct m0_addb2_sys *sys, struct m0_addb2_trace_obj *obj)
M0_INTERNAL void m0_mutex_init(struct m0_mutex *mutex)
struct m0_sm_ast * sa_next
static void net_idle(struct m0_addb2_net *net, void *datum)
int(* apo_submit)(struct m0_addb2_mach *mach, struct m0_addb2_trace_obj *tobj)
M0_INTERNAL int m0_addb2_net_submit(struct m0_addb2_net *net, struct m0_addb2_trace_obj *obj)
M0_INTERNAL bool m0_list_is_empty(const struct m0_list *head)
static void sys_lock(struct m0_addb2_sys *sys)
int m0_addb2_sys_net_start_with(struct m0_addb2_sys *sys, struct m0_tl *head)
static void stor_idle(struct m0_addb2_storage *stor)
M0_INTERNAL struct m0_locality * m0_locality_here(void)
struct m0_addb2_sensor co_sensor
M0_INTERNAL int m0_addb2_net_add(struct m0_addb2_net *net, struct m0_rpc_conn *conn)
static void stor_stop(struct m0_addb2_sys *sys)
M0_INTERNAL void m0_sm_ast_wait_post(struct m0_sm_ast_wait *wait, struct m0_sm_group *grp, struct m0_sm_ast *ast)
struct m0_addb2_mach * m0_addb2_sys_get(struct m0_addb2_sys *sys)
M0_INTERNAL struct m0_addb2_storage * m0_addb2_storage_init(const char *location, uint64_t key, bool mkfs, bool force, const struct m0_addb2_storage_ops *ops, m0_bcount_t size, void *cookie)
#define M0_FI_ENABLED(tag)
void m0_addb2_sys_counter_add(struct m0_addb2_sys *sys, struct m0_addb2_counter *counter, uint64_t id)
struct m0_list_link t_link
void * m0_addb2_mach_cookie(const struct m0_addb2_mach *mach)
#define M0_ALLOC_PTR(ptr)
M0_INTERNAL void m0_semaphore_fini(struct m0_semaphore *semaphore)
static void sys_balance(struct m0_addb2_sys *sys)
static void net_stop(struct m0_addb2_sys *sys)
int m0_addb2_sys_stor_start(struct m0_addb2_sys *sys, const char *location, uint64_t key, bool mkfs, bool force, m0_bcount_t size)
M0_INTERNAL void m0_sm_ast_wait_fini(struct m0_sm_ast_wait *wait)
M0_INTERNAL int m0_addb2_storage_submit(struct m0_addb2_storage *stor, struct m0_addb2_trace_obj *obj)
M0_INTERNAL void m0_mutex_fini(struct m0_mutex *mutex)
struct m0_semaphore sy_wait
static int sys_submit(struct m0_addb2_mach *mach, struct m0_addb2_trace_obj *obj)
int m0_addb2_sys_net_start(struct m0_addb2_sys *sys)
#define M0_ASSERT_INFO(cond, fmt,...)
M0_INTERNAL void m0_addb2_net_stop(struct m0_addb2_net *net, void(*callback)(struct m0_addb2_net *, void *), void *datum)
static struct m0_addb2_net * net
void m0_addb2_sys_put(struct m0_addb2_sys *sys, struct m0_addb2_mach *m)
M0_INTERNAL void m0_semaphore_down(struct m0_semaphore *semaphore)
static void sys_qlock(struct m0_addb2_sys *sys)
M0_INTERNAL void m0_semaphore_up(struct m0_semaphore *semaphore)
static struct m0_list_link * m0_list_first(const struct m0_list *head)
M0_INTERNAL void m0_list_add_tail(struct m0_list *head, struct m0_list_link *new)
void m0_addb2_sys_stor_stop(struct m0_addb2_sys *sys)
#define m0_tl_for(name, head, obj)
static void sys_unlock(struct m0_addb2_sys *sys)
struct m0_list sy_counters
static struct m0_reqh_service * service[REQH_IN_UT_MAX]
struct m0_pdclust_src_addr src
M0_INTERNAL void m0_sm_ast_wait_signal(struct m0_sm_ast_wait *wait)
static bool sys_queue_invariant(const struct m0_addb2_sys *sys)
void m0_addb2_mach_wait(struct m0_addb2_mach *mach)
struct m0_addb2_mach * m0_addb2_mach_init(const struct m0_addb2_mach_ops *ops, void *cookie)
static bool sys_invariant(const struct m0_addb2_sys *sys)