Lines Matching +full:lock +full:- +full:step

11  *      - Redistributions of source code must retain the above
15 * - Redistributions in binary form must reproduce the above
56 enum step { enum
93 pthread_mutex_t lock; member
98 #define INIT_LIST(x) ((x)->prev = (x)->next = (x))
110 #define start_perf(n, s) gettimeofday(&((n)->times[s][0]), NULL)
111 #define end_perf(n, s) gettimeofday(&((n)->times[s][1]), NULL)
118 prev = list->prev; in __list_delete()
119 next = list->next; in __list_delete()
120 prev->next = next; in __list_delete()
121 next->prev = prev; in __list_delete()
127 return list->list.next == &list->list; in __list_empty()
134 list_item = work_list->list.next; in __list_remove_head()
142 pthread_mutex_lock(&work_list->lock); in list_add_tail()
144 req->prev = work_list->list.prev; in list_add_tail()
145 req->next = &work_list->list; in list_add_tail()
146 req->prev->next = work_list->list.prev = req; in list_add_tail()
147 pthread_mutex_unlock(&work_list->lock); in list_add_tail()
149 pthread_cond_signal(&work_list->cond); in list_add_tail()
154 return !(t->tv_sec || t->tv_usec); in zero_time()
159 return (end->tv_sec - start->tv_sec) * 1000000. + (end->tv_usec - start->tv_usec); in diff_us()
182 printf("step total ms max ms min us us / conn\n"); in show_perf()
188 printf("%-13s: %11.2f%11.2f%11.2f%11.2f\n", step_str[i], us / 1000., in show_perf()
245 pthread_mutex_lock(&req_work.lock); in req_handler_thread()
247 pthread_cond_wait(&req_work.cond, &req_work.lock); in req_handler_thread()
249 pthread_mutex_unlock(&req_work.lock); in req_handler_thread()
250 __req_handler(work->id); in req_handler_thread()
260 pthread_mutex_lock(&disc_work.lock); in disc_handler_thread()
262 pthread_cond_wait(&disc_work.cond, &disc_work.lock); in disc_handler_thread()
264 pthread_mutex_unlock(&disc_work.lock); in disc_handler_thread()
265 rdma_disconnect(work->id); in disc_handler_thread()
266 rdma_destroy_id(work->id); in disc_handler_thread()
274 struct node *n = id->context; in cma_handler()
277 switch (event->event) { in cma_handler()
292 request->id = id; in cma_handler()
301 if (n->retries--) { in cma_handler()
302 if (!rdma_resolve_addr(n->id, rai->ai_src_addr, in cma_handler()
303 rai->ai_dst_addr, timeout)) in cma_handler()
306 printf("RDMA_CM_EVENT_ADDR_ERROR, error: %d\n", event->status); in cma_handler()
308 n->error = 1; in cma_handler()
311 if (n->retries--) { in cma_handler()
312 if (!rdma_resolve_route(n->id, timeout)) in cma_handler()
315 printf("RDMA_CM_EVENT_ROUTE_ERROR, error: %d\n", event->status); in cma_handler()
317 n->error = 1; in cma_handler()
323 rdma_event_str(event->event), event->status); in cma_handler()
325 n->error = 1; in cma_handler()
336 request->id = id; in cma_handler()
357 return -ENOMEM; in alloc_nodes()
375 while (--i >= 0) in alloc_nodes()
404 cma_handler(event->id, event); in process_events()
421 ret = pthread_mutex_init(&req_work.lock, NULL); in run_server()
427 ret = pthread_mutex_init(&disc_work.lock, NULL); in run_server()
469 ret = rdma_bind_addr(listen_id, rai->ai_src_addr); in run_server()
501 conn_param.private_data = rai->ai_connect; in run_client()
502 conn_param.private_data_len = rai->ai_connect_len; in run_client()
515 ret = rdma_bind_addr(nodes[i].id, rai->ai_src_addr); in run_client()
533 ret = rdma_resolve_addr(nodes[i].id, rai->ai_src_addr, in run_client()
534 rai->ai_dst_addr, timeout); in run_client()
617 while ((op = getopt(argc, argv, "s:b:c:p:r:t:")) != -1) { in main()
639 printf("\t[-s server_address]\n"); in main()
640 printf("\t[-b bind_address]\n"); in main()
641 printf("\t[-c connections]\n"); in main()
642 printf("\t[-p port_number]\n"); in main()
643 printf("\t[-r retries]\n"); in main()
644 printf("\t[-t timeout_ms]\n"); in main()