41 #define KPRN(fmt,...) printk(KERN_ERR fmt, ## __VA_ARGS__) 46 #define DELAY_MS(ms) m0_nanosleep(m0_time(0, (ms) * 1000000ULL), NULL) 185 m0_nep_tlist_del(
ep);
209 if (strcmp(utep->
addr, ap) == 0) {
471 if ((
buf_size / buf_segs) > buf_seg_size) {
488 static const char *
p =
"descriptor";
489 size_t len = strlen(
p)+1;
543 #define UT_CB_CALL(_qt) ut_buffer_event_callback(ev, _qt, true) 628 int rc,
i, reuse_cnt;
641 struct m0_bitmap *procmask = (
void *) -1;
642 enum { NUM_REUSES = 2 };
714 m0tt_to_period =
m0_time(120, 0);
1002 for (reuse_cnt = 0; reuse_cnt < NUM_REUSES; ++reuse_cnt) {
1004 if (reuse_cnt == NUM_REUSES - 1)
1090 M0_UT_ASSERT((qs[0].nqs_num_f_events + qs[0].nqs_num_s_events)
1092 M0_UT_ASSERT(qs[0].nqs_num_f_events + qs[0].nqs_num_s_events > 0 &&
1093 qs[0].nqs_time_in_queue > 0);
1099 #define QS(x) KPRN("\t" #x "=%" PRId64 "\n", qs[i].nqs_##x) 1100 #define QS2(x) KPRN("\t" #x "=%" PRId64 " [%" PRId64 "]\n", qs[i].nqs_##x, x[i]) 1116 qs[
i].nqs_num_s_events > 0 &&
1117 qs[
i].nqs_time_in_queue > 0);
static bool ut_bev_pending(struct m0_net_transfer_mc *tm)
M0_INTERNAL m0_bcount_t m0_net_domain_get_max_buffer_segment_size(struct m0_net_domain *dom)
const struct m0_net_xprt_ops * nx_ops
static uint64_t num_adds[M0_NET_QT_NR]
static struct m0_addb2_philter p
M0_INTERNAL void m0_chan_wait(struct m0_clink *link)
struct m0_net_transfer_mc * nb_tm
static bool ut_bev_pending_called
#define M0_ALLOC_ARR(arr, nr)
static m0_bcount_t ut_get_max_buffer_segment_size(const struct m0_net_domain *dom)
void m0_net_domain_fini(struct m0_net_domain *dom)
M0_INTERNAL int m0_net_tm_start(struct m0_net_transfer_mc *tm, const char *addr)
M0_INTERNAL void m0_clink_init(struct m0_clink *link, m0_chan_cb_t cb)
M0_INTERNAL void m0_clink_del_lock(struct m0_clink *link)
static const struct m0_bitmap * ut_tm_confine_bm
static m0_bcount_t ut_get_max_buffer_desc_size(const struct m0_net_domain *dom)
struct m0_bufvec nb_buffer
M0_INTERNAL int m0_net_buffer_register(struct m0_net_buffer *buf, struct m0_net_domain *dom)
static void ut_multi_use_cb(const struct m0_net_buffer_event *ev)
static bool ut_get_max_buffer_segments_called
int m0_thread_join(struct m0_thread *q)
static int32_t ut_get_max_buffer_segments(const struct m0_net_domain *dom)
static int ut_tm_confine(struct m0_net_transfer_mc *tm, const struct m0_bitmap *processors)
const m0_time_t M0_TIME_NEVER
static void ut_passive_bulk_recv_cb(const struct m0_net_buffer_event *ev)
static bool ut_end_point_create_called
M0_INTERNAL bool m0_mutex_is_not_locked(const struct m0_mutex *mutex)
static void ut_post_tm_started_ev_thread(struct m0_net_end_point *ep)
static void ut_active_bulk_recv_cb(const struct m0_net_buffer_event *ev)
static m0_bcount_t ut_get_max_buffer_size(const struct m0_net_domain *dom)
static bool ut_multi_use_expect_queued
M0_INTERNAL int m0_net_tm_stats_get(struct m0_net_transfer_mc *tm, enum m0_net_queue_type qtype, struct m0_net_qstats *qs, bool reset)
enum m0_net_tm_state ntm_state
static void ut_tm_fini(struct m0_net_transfer_mc *tm)
struct m0_thread ut_del_thread
static bool ut_tm_fini_called
static void ut_end_point_release(struct m0_ref *ref)
struct m0_net_domain * ntm_dom
static void ut_active_bulk_send_cb(const struct m0_net_buffer_event *ev)
struct m0_net_buffer_callbacks ut_buf_multi_use_cb
static bool ut_buf_register_called
#define M0_THREAD_INIT(thread, TYPE, init, func, arg, namefmt,...)
M0_INTERNAL bool m0_net_buffer_del(struct m0_net_buffer *buf, struct m0_net_transfer_mc *tm)
struct m0_mutex m0_net_mutex
m0_bcount_t nb_min_receive_size
#define container_of(ptr, type, member)
struct m0_net_buffer * nbe_buffer
m0_time_t m0_time(uint64_t secs, long ns)
M0_INTERNAL void m0_net_buffer_event_post(const struct m0_net_buffer_event *ev)
struct m0_net_end_point * nbe_ep
bool ntm_bev_auto_deliver
static int ut_cb_calls[M0_NET_QT_NR]
struct m0_tl ntm_end_points
static bool ut_tm_stop_called
M0_INTERNAL int m0_bufvec_alloc(struct m0_bufvec *bufvec, uint32_t num_segs, m0_bcount_t seg_size)
static struct @424 ut_xprt_pvt
uint32_t nb_msgs_received
static void make_desc(struct m0_net_buf_desc *desc)
M0_INTERNAL void m0_bufvec_free(struct m0_bufvec *bufvec)
static int net_bulk_if_init(void)
struct m0_net_end_point uep
static void ut_post_state_change_ev_thread(int n)
static void ut_buf_del(struct m0_net_buffer *nb)
void m0_ref_init(struct m0_ref *ref, int init_num, void(*release)(struct m0_ref *ref))
M0_INTERNAL void m0_ref_get(struct m0_ref *ref)
M0_INTERNAL int m0_net_tm_init(struct m0_net_transfer_mc *tm, struct m0_net_domain *dom)
static void ut_msg_send_cb(const struct m0_net_buffer_event *ev)
static bool ut_bev_notify_called
enum m0_net_queue_type nb_qtype
uint32_t nb_max_receive_msgs
static int ut_tm_init(struct m0_net_transfer_mc *tm)
static int ut_end_point_create(struct m0_net_end_point **epp, struct m0_net_transfer_mc *tm, const char *addr)
struct m0_ut_suite m0_net_bulk_if_ut
M0_INTERNAL void m0_net_tm_fini(struct m0_net_transfer_mc *tm)
static struct m0_net_xprt_ops ut_xprt_ops
M0_INTERNAL bool m0_mutex_is_locked(const struct m0_mutex *mutex)
const struct m0_net_xprt * nd_xprt
static bool ut_end_point_release_called
static bool ut_buf_deregister_called
static struct m0_net_buffer * allocate_buffers(m0_bcount_t buf_size, m0_bcount_t buf_seg_size, int32_t buf_segs)
void(* ntc_event_cb)(const struct m0_net_tm_event *ev)
m0_time_t m0_time_now(void)
static m0_bcount_t max_bytes[M0_NET_QT_NR]
struct m0_atomic64 ref_cnt
static bool ut_dom_init_called
static int ut_tm_stop(struct m0_net_transfer_mc *tm, bool cancel)
void m0_thread_fini(struct m0_thread *q)
static struct m0_stob_domain * dom
static bool ut_bev_deliver_all_called
static bool ut_dom_fini_called
static bool ut_tm_init_called
static bool ut_buf_add_called
static int ut_dom_init(const struct m0_net_xprt *xprt, struct m0_net_domain *dom)
struct m0_list_link ntm_dom_linkage
static bool ut_bev_deliver_sync_called
struct m0_net_domain * nb_dom
static bool ut_tm_confine_called
void * m0_alloc(size_t size)
M0_INTERNAL void m0_net_tm_event_post(const struct m0_net_tm_event *ev)
const struct m0_net_buffer_callbacks * nb_callbacks
M0_INTERNAL bool m0_list_contains(const struct m0_list *list, const struct m0_list_link *link)
static bool ut_buf_del_called
static int ut_tm_event_cb_calls
M0_INTERNAL void m0_net_desc_free(struct m0_net_buf_desc *desc)
static struct m0_thread ut_tm_thread
M0_INTERNAL void m0_net_end_point_get(struct m0_net_end_point *ep)
M0_INTERNAL m0_bcount_t m0_net_domain_get_max_buffer_size(struct m0_net_domain *dom)
m0_net_buffer_cb_proc_t nbc_cb[M0_NET_QT_NR]
struct m0_net_transfer_mc * nep_tm
M0_INTERNAL int m0_net_desc_copy(const struct m0_net_buf_desc *from_desc, struct m0_net_buf_desc *to_desc)
m0_time_t m0_time_add(const m0_time_t t1, const m0_time_t t2)
static struct m0_net_buffer * ut_multi_use_got_buf
static struct m0_net_transfer_mc ut_tm
M0_INTERNAL int m0_net_tm_stop(struct m0_net_transfer_mc *tm, bool abort)
static void ut_bev_notify(struct m0_net_transfer_mc *tm, struct m0_chan *chan)
M0_INTERNAL m0_bcount_t m0_vec_count(const struct m0_vec *vec)
M0_INTERNAL void m0_net_buffer_event_deliver_all(struct m0_net_transfer_mc *tm)
int(* xo_tm_confine)(struct m0_net_transfer_mc *tm, const struct m0_bitmap *processors)
static int ut_buf_add(struct m0_net_buffer *nb)
static int ut_bev_pending_last
static void ut_post_del_thread(struct m0_net_buffer *nb)
static int64_t m0_atomic64_get(const struct m0_atomic64 *a)
void m0_clink_add_lock(struct m0_chan *chan, struct m0_clink *link)
void m0_net_end_point_put(struct m0_net_end_point *ep)
M0_INTERNAL void m0_net_buffer_event_notify(struct m0_net_transfer_mc *tm, struct m0_chan *chan)
int(* xo_end_point_create)(struct m0_net_end_point **epp, struct m0_net_transfer_mc *tm, const char *addr)
static void ut_msg_recv_cb(const struct m0_net_buffer_event *ev)
static int ut_buf_register(struct m0_net_buffer *nb)
M0_INTERNAL void m0_net_buffer_deregister(struct m0_net_buffer *buf, struct m0_net_domain *dom)
static bool ut_tm_start_called
int m0_net_domain_init(struct m0_net_domain *dom, const struct m0_net_xprt *xprt)
static bool ut_get_max_buffer_size_called
M0_INTERNAL bool m0_net_buffer_event_pending(struct m0_net_transfer_mc *tm)
static struct m0_chan chan[RDWR_REQUEST_MAX]
M0_INTERNAL int m0_net_buffer_event_deliver_synchronously(struct m0_net_transfer_mc *tm)
struct m0_net_end_point * ntm_ep
void ut_tm_event_cb(const struct m0_net_tm_event *ev)
static uint64_t num_dels[M0_NET_QT_NR]
#define M0_ALLOC_PTR(ptr)
M0_INTERNAL int m0_net_buffer_add(struct m0_net_buffer *buf, struct m0_net_transfer_mc *tm)
static void ut_bev_deliver_all(struct m0_net_transfer_mc *tm)
static struct m0_net_end_point * ut_last_ep_released
m0_time_t m0_time_sub(const m0_time_t t1, const m0_time_t t2)
M0_INTERNAL int m0_net_tm_confine(struct m0_net_transfer_mc *tm, const struct m0_bitmap *processors)
M0_INTERNAL void m0_clink_fini(struct m0_clink *link)
static m0_bcount_t total_bytes[M0_NET_QT_NR]
struct m0_net_transfer_mc * tm
static void ut_dom_fini(struct m0_net_domain *dom)
static bool ut_get_max_buffer_segment_size_called
M0_INTERNAL int32_t m0_net_domain_get_max_buffer_segments(struct m0_net_domain *dom)
static void ut_buffer_event_callback(const struct m0_net_buffer_event *ev, enum m0_net_queue_type qt, bool queue_check)
struct m0_net_tm_callbacks ut_tm_cb
int(* xo_dom_init)(const struct m0_net_xprt *xprt, struct m0_net_domain *dom)
static void ut_passive_bulk_send_cb(const struct m0_net_buffer_event *ev)
struct m0_net_buf_desc nb_desc
enum m0_net_tm_ev_type nte_type
static struct m0_net_xprt ut_xprt
struct m0_net_buffer_callbacks ut_buf_cb
struct m0_net_xprt * xprt
static void test_net_bulk_if(void)
#define m0_tl_for(name, head, obj)
int(* xo_bev_deliver_sync)(struct m0_net_transfer_mc *tm)
M0_INTERNAL int m0_net_end_point_create(struct m0_net_end_point **epp, struct m0_net_transfer_mc *tm, const char *addr)
static int ut_tm_start(struct m0_net_transfer_mc *tm, const char *addr)
static int ut_bev_deliver_sync(struct m0_net_transfer_mc *tm)
static struct m0_net_domain utdom
const struct m0_net_tm_callbacks * ntm_callbacks
static uint64_t max64u(uint64_t a, uint64_t b)
struct m0_net_end_point * nb_ep
static struct m0_net_transfer_mc * ut_evt_tm
static void ut_buf_deregister(struct m0_net_buffer *nb)