├── .gitignore ├── LICENSE.md ├── README.md ├── WRITE_compare ├── .DS_Store └── ibverbs │ ├── .DS_Store │ ├── README.md │ ├── ibv_client │ ├── .log │ ├── Makefile │ ├── README │ ├── client.sh │ ├── exp.sh │ ├── exp_backup.sh │ ├── exp_mult_wr.sh │ ├── fair_READ_1G_noprint.txt │ ├── fair_READ_1G_noprint_multi_wr.txt │ ├── fair_READ_1M_noprint.txt │ ├── fair_WRITE_1M_noprint.txt │ ├── fair_WRITE_1M_noprint_multi_wr.txt │ ├── fair_read.sh │ ├── fair_write.sh │ ├── get_avg │ ├── get_avg_multi_wr │ ├── rdma-client │ ├── rdma-client.c │ ├── rdma-client.o │ ├── rdma-common.c │ ├── rdma-common.h │ ├── rdma-common.o │ └── sftp-config.json │ └── ibv_server │ ├── .DS_Store │ ├── Makefile │ ├── rdma-common.c │ ├── rdma-common.h │ ├── rdma-common.o │ ├── rdma-server │ ├── rdma-server.c │ ├── rdma-server.o │ └── sftp-config.json ├── WRITE_compare_accurate └── ibverbs │ └── ibv_client │ ├── Makefile │ ├── get_clock.c │ ├── get_clock.h │ ├── rdma-client.c │ ├── rdma-common.c │ ├── rdma-common.h │ ├── rdma-common_cp.c │ └── rdma_common_try.c ├── calculate_bw └── parser.py ├── compile_X3.sh ├── frdma_bench ├── .gitignore ├── Makefile ├── README.md ├── cal_avgs.sh ├── diffout ├── get_avg.py ├── get_clock.c ├── get_clock.h ├── run1.sh ├── run2.sh ├── test_mouse.sh ├── test_multi.sh ├── write_bw.c ├── write_bw_batch ├── write_bw_batch.c └── write_bw_single_old.c ├── holding_hw.lsf ├── install_frdma.sh ├── libibverbs-1.2.1mlnx1 ├── .gitignore ├── .gitreview ├── AUTHORS ├── COPYING ├── ChangeLog ├── Makefile.am ├── README ├── autogen.sh ├── config │ ├── .gitignore │ ├── libtool.m4 │ ├── ltoptions.m4 │ ├── ltsugar.m4 │ ├── ltversion.m4 │ ├── lt~obsolete.m4 │ └── test-driver ├── configure.ac ├── debian │ ├── changelog │ ├── compat │ ├── control │ ├── copyright │ ├── ibverbs-utils.install │ ├── libibverbs-dev.install │ ├── libibverbs-dev.links │ ├── libibverbs1.install │ ├── libibverbs1.postinst │ ├── rules │ ├── source │ │ └── format │ └── watch ├── examples │ ├── .gitignore │ ├── asyncwatch.c │ ├── cc_pingpong.c │ ├── cc_pingpong.h │ ├── dc.h │ ├── dcini.c │ ├── dctgt.c │ ├── device_list.c │ ├── devinfo.c │ ├── get_clock.c │ ├── get_clock.h │ ├── intf.c │ ├── pingpong.c │ ├── pingpong.h │ ├── polldcinfo.c │ ├── rc_pingpong.c │ ├── shared_mr.c │ ├── srq_pingpong.c │ ├── task_pingpong.c │ ├── uc_pingpong.c │ ├── ud_pingpong.c │ ├── umr_rc.c │ └── xsrq_pingpong.c ├── include │ └── infiniband │ │ ├── arch.h │ │ ├── driver.h │ │ ├── driver_exp.h │ │ ├── kern-abi.h │ │ ├── kern-abi_exp.h │ │ ├── marshall.h │ │ ├── ofa_verbs.h │ │ ├── opcode.h │ │ ├── peer_ops.h │ │ ├── sa-kern-abi.h │ │ ├── sa.h │ │ ├── verbs.h │ │ └── verbs_exp.h ├── libibverbs.spec.in ├── man │ ├── ibv_alloc_mw.3 │ ├── ibv_alloc_pd.3 │ ├── ibv_asyncwatch.1 │ ├── ibv_attach_mcast.3 │ ├── ibv_bind_mw.3 │ ├── ibv_cc_pingpong.1 │ ├── ibv_create_ah.3 │ ├── ibv_create_ah_from_wc.3 │ ├── ibv_create_comp_channel.3 │ ├── ibv_create_cq.3 │ ├── ibv_create_flow.3 │ ├── ibv_create_qp.3 │ ├── ibv_create_qp_ex.3 │ ├── ibv_create_srq.3 │ ├── ibv_create_srq_ex.3 │ ├── ibv_devices.1 │ ├── ibv_devinfo.1 │ ├── ibv_event_type_str.3 │ ├── ibv_exp_alloc_ec_calc.3 │ ├── ibv_exp_alloc_mkey_list_memory.3 │ ├── ibv_exp_bind_mw.3 │ ├── ibv_exp_create_cq.3 │ ├── ibv_exp_create_dct.3 │ ├── ibv_exp_create_flow.3 │ ├── ibv_exp_create_mr.3 │ ├── ibv_exp_create_qp.3 │ ├── ibv_exp_create_res_domain.3 │ ├── ibv_exp_create_rwq_ind_table.3 │ ├── ibv_exp_create_wq.3 │ ├── ibv_exp_dealloc_mkey_list_memory.3 │ ├── ibv_exp_ec_decode_async.3 │ ├── ibv_exp_ec_encode_async.3 │ ├── ibv_exp_ec_update_async.3 │ ├── ibv_exp_get_provider_func.3 │ ├── ibv_exp_modify_cq.3 │ ├── ibv_exp_modify_qp.3 │ ├── ibv_exp_modify_wq.3 │ ├── ibv_exp_peer_commit_qp.3 │ ├── ibv_exp_poll_cq.3 │ ├── ibv_exp_post_send.3 │ ├── ibv_exp_post_task.3 │ ├── ibv_exp_prefetch_mr.3 │ ├── ibv_exp_query_dct.3 │ ├── ibv_exp_query_device.3 │ ├── ibv_exp_query_gid_attr.3 │ ├── ibv_exp_query_intf.3 │ ├── ibv_exp_query_mkey.3 │ ├── ibv_exp_query_values.3 │ ├── ibv_exp_reg_mr.3 │ ├── ibv_exp_reg_shared_mr.3 │ ├── ibv_exp_rereg_mr.3 │ ├── ibv_fork_init.3 │ ├── ibv_get_async_event.3 │ ├── ibv_get_cq_event.3 │ ├── ibv_get_device_guid.3 │ ├── ibv_get_device_list.3 │ ├── ibv_get_device_name.3 │ ├── ibv_get_srq_num.3 │ ├── ibv_inc_rkey.3 │ ├── ibv_intf.1 │ ├── ibv_modify_qp.3 │ ├── ibv_modify_srq.3 │ ├── ibv_open_device.3 │ ├── ibv_open_qp.3 │ ├── ibv_open_xrcd.3 │ ├── ibv_poll_cq.3 │ ├── ibv_post_recv.3 │ ├── ibv_post_send.3 │ ├── ibv_post_srq_recv.3 │ ├── ibv_query_device.3 │ ├── ibv_query_device_ex.3 │ ├── ibv_query_gid.3 │ ├── ibv_query_pkey.3 │ ├── ibv_query_port.3 │ ├── ibv_query_qp.3 │ ├── ibv_query_srq.3 │ ├── ibv_rate_to_mbps.3 │ ├── ibv_rate_to_mult.3 │ ├── ibv_rc_pingpong.1 │ ├── ibv_reg_mr.3 │ ├── ibv_req_notify_cq.3 │ ├── ibv_rereg_mr.3 │ ├── ibv_resize_cq.3 │ ├── ibv_shared_mr.1 │ ├── ibv_srq_pingpong.1 │ ├── ibv_task_pingpong.1 │ ├── ibv_uc_pingpong.1 │ ├── ibv_ud_pingpong.1 │ ├── peer_direct.7 │ └── verbs.7 ├── src │ ├── .gitignore │ ├── .vscode │ │ └── settings.json │ ├── cmd.c │ ├── cmd_exp.c │ ├── compat-1_0.c │ ├── device.c │ ├── enum_strs.c │ ├── ibverbs.h │ ├── init.c │ ├── libibverbs.map │ ├── marshall.c │ ├── memory.c │ ├── neigh.c │ ├── neigh.h │ ├── sysfs.c │ └── verbs.c └── tests │ ├── api │ ├── gtest_cd.h │ ├── gtest_cd_tc1.cc │ ├── gtest_cd_tc2.cc │ ├── gtest_cd_tc3.cc │ ├── gtest_cd_tc4.cc │ ├── gtest_cd_tc5.cc │ ├── gtest_cd_tc6.cc │ ├── gtest_cd_tc7.cc │ ├── gtest_cd_tc8.cc │ └── gtest_init.cc │ ├── cmn │ ├── gtest_cmn.cc │ └── gtest_cmn.h │ ├── gtest │ ├── gtest-all.cc │ └── gtest.h │ └── gtest_main.cc ├── libibverbs-41mlnx1 ├── .gitignore ├── .gitreview ├── AUTHORS ├── COPYING ├── ChangeLog ├── Makefile.am ├── README ├── autogen.sh ├── config │ ├── .gitignore │ ├── libtool.m4 │ ├── ltoptions.m4 │ ├── ltsugar.m4 │ ├── ltversion.m4 │ ├── lt~obsolete.m4 │ └── test-driver ├── configure.ac ├── debian │ ├── changelog │ ├── compat │ ├── control │ ├── copyright │ ├── ibverbs-utils.install │ ├── libibverbs-dev.install │ ├── libibverbs-dev.links │ ├── libibverbs1.install │ ├── libibverbs1.postinst │ ├── rules │ ├── source │ │ └── format │ └── watch ├── examples │ ├── .gitignore │ ├── asyncwatch.c │ ├── cc_pingpong.c │ ├── cc_pingpong.h │ ├── dc.h │ ├── dcini.c │ ├── dctgt.c │ ├── device_list.c │ ├── devinfo.c │ ├── get_clock.c │ ├── get_clock.h │ ├── intf.c │ ├── pingpong.c │ ├── pingpong.h │ ├── polldcinfo.c │ ├── rc_pingpong.c │ ├── srq_pingpong.c │ ├── task_pingpong.c │ ├── uc_pingpong.c │ ├── ud_pingpong.c │ ├── umr_rc.c │ └── xsrq_pingpong.c ├── include │ └── infiniband │ │ ├── arch.h │ │ ├── driver.h │ │ ├── driver_exp.h │ │ ├── kern-abi.h │ │ ├── kern-abi_exp.h │ │ ├── marshall.h │ │ ├── ofa_verbs.h │ │ ├── opcode.h │ │ ├── peer_ops.h │ │ ├── sa-kern-abi.h │ │ ├── sa.h │ │ ├── verbs.h │ │ └── verbs_exp.h ├── libibverbs.spec.in ├── man │ ├── ibv_alloc_mw.3 │ ├── ibv_alloc_pd.3 │ ├── ibv_asyncwatch.1 │ ├── ibv_attach_mcast.3 │ ├── ibv_bind_mw.3 │ ├── ibv_cc_pingpong.1 │ ├── ibv_create_ah.3 │ ├── ibv_create_ah_from_wc.3 │ ├── ibv_create_comp_channel.3 │ ├── ibv_create_cq.3 │ ├── ibv_create_flow.3 │ ├── ibv_create_qp.3 │ ├── ibv_create_qp_ex.3 │ ├── ibv_create_srq.3 │ ├── ibv_create_srq_ex.3 │ ├── ibv_devices.1 │ ├── ibv_devinfo.1 │ ├── ibv_event_type_str.3 │ ├── ibv_exp_alloc_dm.3 │ ├── ibv_exp_alloc_ec_calc.3 │ ├── ibv_exp_alloc_mkey_list_memory.3 │ ├── ibv_exp_bind_mw.3 │ ├── ibv_exp_cqe_ts_to_ns.3 │ ├── ibv_exp_create_cq.3 │ ├── ibv_exp_create_dct.3 │ ├── ibv_exp_create_flow.3 │ ├── ibv_exp_create_mr.3 │ ├── ibv_exp_create_qp.3 │ ├── ibv_exp_create_res_domain.3 │ ├── ibv_exp_create_rwq_ind_table.3 │ ├── ibv_exp_create_srq.3 │ ├── ibv_exp_create_wq.3 │ ├── ibv_exp_dealloc_mkey_list_memory.3 │ ├── ibv_exp_ec_decode_async.3 │ ├── ibv_exp_ec_encode_async.3 │ ├── ibv_exp_ec_update_async.3 │ ├── ibv_exp_get_provider_func.3 │ ├── ibv_exp_modify_cq.3 │ ├── ibv_exp_modify_qp.3 │ ├── ibv_exp_modify_wq.3 │ ├── ibv_exp_open_device.3 │ ├── ibv_exp_peer_commit_qp.3 │ ├── ibv_exp_poll_cq.3 │ ├── ibv_exp_post_send.3 │ ├── ibv_exp_post_srq_ops.3 │ ├── ibv_exp_post_task.3 │ ├── ibv_exp_prefetch_mr.3 │ ├── ibv_exp_query_dct.3 │ ├── ibv_exp_query_device.3 │ ├── ibv_exp_query_gid_attr.3 │ ├── ibv_exp_query_intf.3 │ ├── ibv_exp_query_mkey.3 │ ├── ibv_exp_query_values.3 │ ├── ibv_exp_reg_mr.3 │ ├── ibv_exp_rereg_mr.3 │ ├── ibv_fork_init.3 │ ├── ibv_get_async_event.3 │ ├── ibv_get_cq_event.3 │ ├── ibv_get_device_guid.3 │ ├── ibv_get_device_list.3 │ ├── ibv_get_device_name.3 │ ├── ibv_get_srq_num.3 │ ├── ibv_inc_rkey.3 │ ├── ibv_intf.1 │ ├── ibv_modify_qp.3 │ ├── ibv_modify_srq.3 │ ├── ibv_open_device.3 │ ├── ibv_open_qp.3 │ ├── ibv_open_xrcd.3 │ ├── ibv_poll_cq.3 │ ├── ibv_post_recv.3 │ ├── ibv_post_send.3 │ ├── ibv_post_srq_recv.3 │ ├── ibv_query_device.3 │ ├── ibv_query_device_ex.3 │ ├── ibv_query_gid.3 │ ├── ibv_query_pkey.3 │ ├── ibv_query_port.3 │ ├── ibv_query_qp.3 │ ├── ibv_query_srq.3 │ ├── ibv_rate_to_mbps.3 │ ├── ibv_rate_to_mult.3 │ ├── ibv_rc_pingpong.1 │ ├── ibv_reg_mr.3 │ ├── ibv_req_notify_cq.3 │ ├── ibv_rereg_mr.3 │ ├── ibv_resize_cq.3 │ ├── ibv_srq_pingpong.1 │ ├── ibv_task_pingpong.1 │ ├── ibv_uc_pingpong.1 │ ├── ibv_ud_pingpong.1 │ ├── peer_direct.7 │ └── verbs.7 ├── src │ ├── .gitignore │ ├── cmd.c │ ├── cmd_exp.c │ ├── compat-1_0.c │ ├── device.c │ ├── enum_strs.c │ ├── ibverbs.h │ ├── init.c │ ├── libibverbs.map │ ├── marshall.c │ ├── memory.c │ ├── neigh.c │ ├── neigh.h │ ├── sysfs.c │ └── verbs.c ├── tests │ ├── api │ │ ├── gtest_cd.h │ │ ├── gtest_cd_tc1.cc │ │ ├── gtest_cd_tc2.cc │ │ ├── gtest_cd_tc3.cc │ │ ├── gtest_cd_tc4.cc │ │ ├── gtest_cd_tc5.cc │ │ ├── gtest_cd_tc6.cc │ │ ├── gtest_cd_tc7.cc │ │ ├── gtest_cd_tc8.cc │ │ └── gtest_init.cc │ ├── cmn │ │ ├── gtest_cmn.cc │ │ └── gtest_cmn.h │ ├── gtest │ │ ├── gtest-all.cc │ │ └── gtest.h │ └── gtest_main.cc └── util │ └── util.h ├── libmlx4 ├── .gitignore ├── AUTHORS ├── COPYING ├── Makefile.am ├── Makefile.in ├── README ├── aclocal.m4 ├── autogen.sh ├── autom4te.cache │ ├── output.0 │ ├── output.1 │ ├── requests │ ├── traces.0 │ └── traces.1 ├── config.h.in ├── config.h.in~ ├── config │ └── .gitignore ├── configure ├── configure.ac ├── debian │ ├── changelog │ ├── compat │ ├── control │ ├── copyright │ ├── libmlx4-1.install │ ├── libmlx4-dev.install │ ├── patches │ │ ├── driver-plugin-directory.patch │ │ └── series │ ├── rules │ ├── source │ │ └── format │ └── watch ├── libmlx4.spec ├── libmlx4.spec.in ├── mlx4.driver └── src │ ├── .gitignore │ ├── bitmap.h │ ├── buf.c │ ├── countmin.c │ ├── countmin.h │ ├── cq.c │ ├── dbrec.c │ ├── doorbell.h │ ├── get_clock.c │ ├── get_clock.h │ ├── list.h │ ├── massdal.c │ ├── massdal.h │ ├── mlx4-abi.h │ ├── mlx4.c │ ├── mlx4.h │ ├── mlx4.map │ ├── mlx4_exp.h │ ├── mmio.h │ ├── pacer.c │ ├── pacer.h │ ├── prng.c │ ├── prng.h │ ├── qp.c │ ├── qp_pacer.h │ ├── queue.h │ ├── srq.c │ ├── verbs.c │ ├── verbs_exp.c │ └── wqe.h ├── libmlx5-41mlnx1 ├── .gitignore ├── .gitreview ├── AUTHORS ├── COPYING ├── Makefile.am ├── README ├── autogen.sh ├── config │ └── .gitignore ├── configure.ac ├── debian │ ├── changelog │ ├── compat │ ├── control │ ├── copyright │ ├── libmlx5-1.install │ ├── libmlx5-1.links │ ├── libmlx5-dev.install │ ├── patches │ │ ├── driver-plugin-directory.patch │ │ └── series │ ├── rules │ ├── source │ │ └── format │ └── watch ├── libmlx5.spec.in ├── mlx5.driver ├── scripts │ └── expose_libmlx5_headers │ │ ├── defines.txt │ │ ├── enumerations.txt │ │ ├── libmlx_expose_headers │ │ └── structures.txt └── src │ ├── .gitignore │ ├── bitmap.h │ ├── buf.c │ ├── cq.c │ ├── dbrec.c │ ├── doorbell.h │ ├── ec.c │ ├── ec.h │ ├── get_clock.c │ ├── get_clock.h │ ├── implicit_lkey.c │ ├── implicit_lkey.h │ ├── list.h │ ├── mlx5-abi.h │ ├── mlx5.c │ ├── mlx5.h │ ├── mlx5.map │ ├── mlx5dv.h │ ├── pacer.c │ ├── pacer.h │ ├── qp.c │ ├── qp_pacer.h │ ├── srq.c │ ├── verbs.c │ └── wqe.h ├── new_busy_poll ├── .DS_Store ├── COPYING ├── Makefile ├── Makefile_CP ├── Makefiletemp ├── README ├── clock_test.c ├── get_clock.c ├── get_clock.h ├── ib_test.sh ├── perftest.spec ├── rdma_bw.c ├── rdma_lat.c ├── read_bw.c ├── read_lat.c ├── run.sh ├── runme ├── send_bw.c ├── send_lat.c ├── sftp-config.json ├── temp ├── write_bw.c ├── write_bw_cp.c ├── write_bw_old ├── write_bw_old.c ├── write_bw_postlist.c └── write_lat.c ├── parse_new ├── .DS_Store ├── 1M_lat.txt ├── 1M_lat_coarse.txt ├── Makefile ├── get_median ├── get_median_49s ├── main3.cpp ├── main3.o ├── out.txt ├── test.txt ├── testin4.txt └── testin5.txt ├── perftest-4.2 ├── .gitignore ├── COPYING ├── Makefile.am ├── README ├── README_sparc ├── autogen.sh ├── configure.ac ├── debian │ ├── changelog │ ├── control │ ├── perftest.install │ └── rules ├── perftest.spec ├── run_perftest_loopback ├── run_perftest_multi_devices ├── runme └── src │ ├── atomic_bw.c │ ├── atomic_lat.c │ ├── clock_test.c │ ├── get_clock.c │ ├── get_clock.h │ ├── multicast_resources.c │ ├── multicast_resources.h │ ├── perftest_communication.c │ ├── perftest_communication.h │ ├── perftest_parameters.c │ ├── perftest_parameters.h │ ├── perftest_resources.c │ ├── perftest_resources.h │ ├── raw_ethernet_fs_rate.c │ ├── raw_ethernet_resources.c │ ├── raw_ethernet_resources.h │ ├── raw_ethernet_send_burst_lat.c │ ├── raw_ethernet_send_bw.c │ ├── raw_ethernet_send_lat.c │ ├── read_bw.c │ ├── read_lat.c │ ├── send_bw.c │ ├── send_lat.c │ ├── write_bw.c │ └── write_lat.c ├── rdma_pacer ├── Makefile ├── README ├── countmin.c ├── countmin.h ├── get_clock.c ├── get_clock.h ├── massdal.c ├── massdal.h ├── monitor.c ├── monitor.h ├── pacer.c ├── pacer.h ├── pingpong.c ├── pingpong.h ├── pingpong_utils.c ├── pingpong_utils.h ├── prng.c ├── prng.h ├── queue.c └── queue.h ├── scripts ├── cleanup_shm.sh ├── compile_X3_driver.sh ├── compile_pacer.sh ├── configure_m510_p1.sh ├── configure_m510_p2.sh ├── configure_m510_p2_v2.sh ├── configure_m510_p3.sh ├── cpm_nodes ├── cpn_nodes ├── dynamic_exp_Baseline.sh ├── dynamic_exp_Justitia.sh ├── incast_exp_IB_Justitia.sh ├── incast_exp_IB_baseline.sh ├── incast_exp_m510_baseline.sh ├── incast_exp_m510_justitia.sh ├── incast_exp_m510_justitia_no_pacer.sh ├── incast_exp_roce.sh ├── incast_exp_roce_Justitia.sh ├── incast_exp_roce_dcqcn.sh ├── incast_exp_roce_dcqcn_Justitia.sh ├── incast_exp_roce_dcqcn_Justitia_Vsize.sh ├── incast_exp_roce_dcqcn_Vsize.sh ├── install_gcc5.sh ├── kill_proc.sh ├── kill_proc2.sh ├── kill_proc3.sh ├── large_net_exp_m510_baseline.sh ├── large_net_exp_m510_justitia.sh ├── large_net_exp_m510_justitia_no_normal.sh ├── nodes ├── nodes_incast ├── normal_nodes ├── normal_receiver_nodes ├── normal_sender_node_receiver_ip ├── normal_sender_nodes ├── set_authorized_keys.sh ├── set_ipoib_ip.sh ├── setup_frdma.sh ├── setup_m510.txt ├── upgrade_mlnx.sh ├── weight_exp_baseline.sh └── weight_exp_justitia.sh ├── setup_X3.sh ├── setup_X4.sh ├── setup_conflux.sh ├── with_ACK ├── .DS_Store ├── single_dir_multi_wr │ ├── .DS_Store │ └── ibverbs │ │ ├── .DS_Store │ │ ├── README.md │ │ ├── ibv_client │ │ ├── .log │ │ ├── Makefile │ │ ├── README │ │ ├── client.sh │ │ ├── exp.sh │ │ ├── exp_backup.sh │ │ ├── exp_mult_wr.sh │ │ ├── fair_READ_1G_noprint.txt │ │ ├── fair_READ_1G_noprint_multi_wr.txt │ │ ├── fair_READ_1M_noprint.txt │ │ ├── fair_WRITE_1M_noprint.txt │ │ ├── fair_WRITE_1M_noprint_multi_wr.txt │ │ ├── fair_read.sh │ │ ├── fair_write.sh │ │ ├── get_avg │ │ ├── get_avg_multi_wr │ │ ├── rdma-client │ │ ├── rdma-client.c │ │ ├── rdma-client.o │ │ ├── rdma-common.c │ │ ├── rdma-common.h │ │ ├── rdma-common.o │ │ └── sftp-config.json │ │ └── ibv_server │ │ ├── .DS_Store │ │ ├── Makefile │ │ ├── rdma-common.c │ │ ├── rdma-common.h │ │ ├── rdma-common.o │ │ ├── rdma-server │ │ ├── rdma-server.c │ │ └── rdma-server.o ├── single_dir_multi_wr_SEND │ └── ibverbs │ │ ├── README.md │ │ ├── ibv_client │ │ ├── .log │ │ ├── Makefile │ │ ├── README │ │ ├── client.sh │ │ ├── exp.sh │ │ ├── exp_backup.sh │ │ ├── exp_mult_wr.sh │ │ ├── fair.sh │ │ ├── get_avg │ │ ├── get_avg_multi_wr │ │ ├── rdma-client │ │ ├── rdma-client.c │ │ ├── rdma-client.o │ │ ├── rdma-common.c │ │ ├── rdma-common.h │ │ ├── rdma-common.o │ │ └── sftp-config.json │ │ └── ibv_server │ │ ├── Makefile │ │ ├── rdma-common.c │ │ ├── rdma-common.h │ │ ├── rdma-common.o │ │ ├── rdma-server │ │ ├── rdma-server.c │ │ ├── rdma-server.o │ │ └── sftp-config.json └── single_dir_multi_wr_WRITE_IMM │ ├── ibverbs │ ├── README.md │ ├── ibv_client │ │ ├── .log │ │ ├── Makefile │ │ ├── README │ │ ├── client.sh │ │ ├── exp.sh │ │ ├── exp_backup.sh │ │ ├── exp_mult_wr.sh │ │ ├── fair.sh │ │ ├── get_avg │ │ ├── get_avg_multi_wr │ │ ├── rdma-client │ │ ├── rdma-client.c │ │ ├── rdma-client.o │ │ ├── rdma-common.c │ │ ├── rdma-common.h │ │ └── rdma-common.o │ └── ibv_server │ │ ├── Makefile │ │ ├── rdma-common.c │ │ ├── rdma-common.h │ │ ├── rdma-common.o │ │ ├── rdma-server │ │ ├── rdma-server.c │ │ └── rdma-server.o │ └── sftp-config.json └── without_ACK ├── .DS_Store ├── single_dir_multi_wr ├── .DS_Store └── ibverbs │ ├── .DS_Store │ ├── README.md │ ├── ibv_client │ ├── .log │ ├── Makefile │ ├── README │ ├── client.sh │ ├── exp.sh │ ├── exp_backup.sh │ ├── exp_mult_wr.sh │ ├── fair_READ_1G_noprint.txt │ ├── fair_READ_1G_noprint_multi_wr.txt │ ├── fair_READ_1M_noprint.txt │ ├── fair_WRITE_1M_noprint.txt │ ├── fair_WRITE_1M_noprint_multi_wr.txt │ ├── fair_read.sh │ ├── fair_write.sh │ ├── get_avg │ ├── get_avg_multi_wr │ ├── rdma-client │ ├── rdma-client.c │ ├── rdma-client.o │ ├── rdma-common.c │ ├── rdma-common.h │ ├── rdma-common.o │ └── sftp-config.json │ └── ibv_server │ ├── .DS_Store │ ├── Makefile │ ├── rdma-common.c │ ├── rdma-common.h │ ├── rdma-common.o │ ├── rdma-server │ ├── rdma-server.c │ ├── rdma-server.o │ └── sftp-config.json ├── single_dir_multi_wr_SEND └── ibverbs │ ├── README.md │ ├── ibv_client │ ├── .log │ ├── Makefile │ ├── README │ ├── client.sh │ ├── exp.sh │ ├── exp_backup.sh │ ├── exp_mult_wr.sh │ ├── fair.sh │ ├── get_avg │ ├── get_avg_multi_wr │ ├── rdma-client │ ├── rdma-client.c │ ├── rdma-client.o │ ├── rdma-common.c │ ├── rdma-common.h │ ├── rdma-common.o │ └── sftp-config.json │ └── ibv_server │ ├── Makefile │ ├── rdma-common.c │ ├── rdma-common.h │ ├── rdma-common.o │ ├── rdma-server │ ├── rdma-server.c │ ├── rdma-server.o │ └── sftp-config.json └── single_dir_multi_wr_WRITE_IMM ├── ibverbs ├── README.md ├── ibv_client │ ├── .log │ ├── Makefile │ ├── README │ ├── client.sh │ ├── exp.sh │ ├── exp_backup.sh │ ├── exp_mult_wr.sh │ ├── fair.sh │ ├── get_avg │ ├── get_avg_multi_wr │ ├── rdma-client │ ├── rdma-client.c │ ├── rdma-client.o │ ├── rdma-common.c │ ├── rdma-common.h │ ├── rdma-common.o │ └── sftp-config.json └── ibv_server │ ├── Makefile │ ├── rdma-common.c │ ├── rdma-common.h │ ├── rdma-common.o │ ├── rdma-server │ ├── rdma-server.c │ ├── rdma-server.o │ └── sftp-config.json └── sftp-config.json /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, University of California Berkeley. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | * Redistributions of source code must retain the above copyright 7 | notice, this list of conditions and the following disclaimer. 8 | * Redistributions in binary form must reproduce the above copyright 9 | notice, this list of conditions and the following disclaimer in the 10 | documentation and/or other materials provided with the distribution. 11 | * Neither the name of the organization nor the 12 | names of its contributors may be used to endorse or promote products 13 | derived from this software without specific prior written permission. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 16 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY 19 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /WRITE_compare/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/WRITE_compare/.DS_Store -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/WRITE_compare/ibverbs/.DS_Store -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/README.md: -------------------------------------------------------------------------------- 1 | This program tests RDMA(based on IB_verbs) performance. 2 | Souce code is modified from "The Geek in the corner" 02-read-write sample. 3 | Modification: 4 | 1.Server post no operations. 5 | 2.Procedures in client is divided into : 6 | build connection/context, (include memory malloc time) 7 | memory resigster exchange. 8 | post operation, (including finishing) 9 | clean up, exchanging MSG_DON(receive can be before post operation) 10 | 11 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/.log: -------------------------------------------------------------------------------- 1 | build malloc mr_x post end\n 2 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -Werror -g 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := rdma-client 8 | 9 | all: ${APPS} 10 | 11 | rdma-client: rdma-common.o rdma-client.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | rdma-server: rdma-common.o rdma-server.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/README: -------------------------------------------------------------------------------- 1 | measure_gettime_latency is used to calibrate the time overheads from time_stamp() 2 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/client.sh: -------------------------------------------------------------------------------- 1 | #rdma-client 2 | iters=100 3 | log_file="w"${2}".log" 4 | echo "build malloc mr_x post end" > $log_file 5 | for ((i=1;i<=${iters};i++)); do 6 | echo $i 7 | ./rdma-client write cp-2 $1 $2 >> $log_file 8 | usleep 1000 9 | done; 10 | 11 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/fair_READ_1G_noprint.txt: -------------------------------------------------------------------------------- 1 | address resolved. 2 | route resolved. 3 | Size message sent to the server. 4 | Client received and copied server's MR key. Posting RDMA READ work request. 5 | RDMA read operation completed with success. 6 | MSG_DONE sent successfully. Client is ready to disconnect. 7 | disconnected. 8 | 1.setup time 2.RDMA R/W latency 3.cleanup time 4.total time 9 | 255266 195690013 36333 195981612 10 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/fair_READ_1G_noprint_multi_wr.txt: -------------------------------------------------------------------------------- 1 | address resolved. 2 | route resolved. 3 | Size message sent to the server. 4 | Client received and copied server's MR key. Posting RDMA READ work request. 5 | RDMA read operation completed with success. 6 | MSG_DONE sent successfully. Client is ready to disconnect. 7 | disconnected. 8 | 1.setup time 2.RDMA R/W latency 3.cleanup time 4.total time 9 | 256721 187171233 41077 187469031 10 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/fair_READ_1M_noprint.txt: -------------------------------------------------------------------------------- 1 | address resolved. 2 | route resolved. 3 | Size message sent to the server. 4 | Client received and copied server's MR key. Posting RDMA READ work request. 5 | RDMA read operation completed with success. 6 | MSG_DONE sent successfully. Client is ready to disconnect. 7 | disconnected. 8 | 1.setup time 2.RDMA R/W latency 3.cleanup time 4.total time 9 | 7742 210843229 1350 210852321 10 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/fair_WRITE_1M_noprint.txt: -------------------------------------------------------------------------------- 1 | address resolved. 2 | route resolved. 3 | Size message sent to the server. 4 | Client received and copied server's MR key. Posting RDMA WRITE work request. 5 | RDMA write operation completed with success. 6 | MSG_DONE sent successfully. Client is ready to disconnect. 7 | disconnected. 8 | 1.setup time 2.RDMA R/W latency 3.cleanup time 4.total time 9 | 7167 216774182 1482 216782831 10 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/fair_WRITE_1M_noprint_multi_wr.txt: -------------------------------------------------------------------------------- 1 | address resolved. 2 | route resolved. 3 | Size message sent to the server. 4 | Client received and copied server's MR key. Posting RDMA WRITE work request. 5 | RDMA write operation completed with success. 6 | MSG_DONE sent successfully. Client is ready to disconnect. 7 | disconnected. 8 | 1.setup time 2.RDMA R/W latency 3.cleanup time 4.total time 9 | 255754 193716696 38254 194010704 10 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/fair_read.sh: -------------------------------------------------------------------------------- 1 | ./rdma-client read 192.168.0.18 34197 1000000 1 > fair_WRITE_1G_vs_READ_1G_B.txt 2 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/fair_write.sh: -------------------------------------------------------------------------------- 1 | ./rdma-client write 192.168.0.18 34197 1000000 1 > fair_WRITE_1G_vs_WRITE_1M_B.txt 2 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/get_avg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/WRITE_compare/ibverbs/ibv_client/get_avg -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/get_avg_multi_wr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/WRITE_compare/ibverbs/ibv_client/get_avg_multi_wr -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/rdma-client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/WRITE_compare/ibverbs/ibv_client/rdma-client -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/rdma-client.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/WRITE_compare/ibverbs/ibv_client/rdma-client.o -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/rdma-common.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_COMMON_H 2 | #define RDMA_COMMON_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | #define TEST_NZ(x) do { if ( (x)) die("error: " #x " failed (returned non-zero)." ); } while (0) 13 | #define TEST_Z(x) do { if (!(x)) die("error: " #x " failed (returned zero/null)."); } while (0) 14 | 15 | enum mode { 16 | M_WRITE, 17 | M_READ 18 | }; 19 | 20 | void die(const char *reason); 21 | 22 | void build_connection(struct rdma_cm_id *id); 23 | void build_params(struct rdma_conn_param *params); 24 | void destroy_connection(void *context); 25 | //void * get_local_message_region(void *context); 26 | void on_connect(void *context); 27 | //void send_mr(void *context); 28 | void register_MR(void *context); 29 | void send_sz(void *context); 30 | void set_mode(enum mode m); 31 | void checkpoint(int i); 32 | void measure_time(); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/rdma-common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/WRITE_compare/ibverbs/ibv_client/rdma-common.o -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_client/sftp-config.json: -------------------------------------------------------------------------------- 1 | { 2 | // The tab key will cycle through the settings when first created 3 | // Visit http://wbond.net/sublime_packages/sftp/settings for help 4 | 5 | // sftp, ftp or ftps 6 | "type": "sftp", 7 | 8 | "save_before_upload": true, 9 | "upload_on_save": false, 10 | "sync_down_on_open": false, 11 | "sync_skip_deletes": false, 12 | "sync_same_age": true, 13 | "confirm_downloads": false, 14 | "confirm_sync": true, 15 | "confirm_overwrite_newer": false, 16 | 17 | "host": "apt024.apt.emulab.net", 18 | "user": "yiwenzhg", 19 | //"password": "password", 20 | //"port": "22", 21 | 22 | "remote_path": "/users/yiwenzhg/rdma_fairness/without_ACK/single_dir_multi_wr/ibverbs/ibv_client/", 23 | "ignore_regexes": [ 24 | "\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json", 25 | "sftp-settings\\.json", "/venv/", "\\.svn/", "\\.hg/", "\\.git/", 26 | "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini" 27 | ], 28 | //"file_permissions": "664", 29 | //"dir_permissions": "775", 30 | 31 | //"extra_list_connections": 0, 32 | 33 | "connect_timeout": 30, 34 | //"keepalive": 120, 35 | //"ftp_passive_mode": true, 36 | //"ftp_obey_passive_host": false, 37 | //"ssh_key_file": "~/.ssh/id_rsa", 38 | //"sftp_flags": ["-F", "/path/to/ssh_config"], 39 | 40 | //"preserve_modification_times": false, 41 | //"remote_time_offset_in_hours": 0, 42 | //"remote_encoding": "utf-8", 43 | //"remote_locale": "C", 44 | //"allow_config_upload": false, 45 | } 46 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_server/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/WRITE_compare/ibverbs/ibv_server/.DS_Store -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_server/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -Werror -g 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := rdma-server 8 | 9 | all: ${APPS} 10 | 11 | rdma-client: rdma-common.o rdma-client.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | rdma-server: rdma-common.o rdma-server.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_server/rdma-common.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_COMMON_H 2 | #define RDMA_COMMON_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | #define TEST_NZ(x) do { if ( (x)) die("error: " #x " failed (returned non-zero)." ); } while (0) 12 | #define TEST_Z(x) do { if (!(x)) die("error: " #x " failed (returned zero/null)."); } while (0) 13 | 14 | enum mode { 15 | M_WRITE, 16 | M_READ 17 | }; 18 | 19 | void die(const char *reason); 20 | 21 | void build_connection(struct rdma_cm_id *id); 22 | void build_params(struct rdma_conn_param *params); 23 | void destroy_connection(void *context); 24 | void * get_local_message_region(void *context); 25 | void on_connect(void *context); 26 | void send_mr(void *context); 27 | //void set_mode(enum mode m); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_server/rdma-common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/WRITE_compare/ibverbs/ibv_server/rdma-common.o -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_server/rdma-server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/WRITE_compare/ibverbs/ibv_server/rdma-server -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_server/rdma-server.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/WRITE_compare/ibverbs/ibv_server/rdma-server.o -------------------------------------------------------------------------------- /WRITE_compare/ibverbs/ibv_server/sftp-config.json: -------------------------------------------------------------------------------- 1 | { 2 | // The tab key will cycle through the settings when first created 3 | // Visit http://wbond.net/sublime_packages/sftp/settings for help 4 | 5 | // sftp, ftp or ftps 6 | "type": "sftp", 7 | 8 | "save_before_upload": true, 9 | "upload_on_save": false, 10 | "sync_down_on_open": false, 11 | "sync_skip_deletes": false, 12 | "sync_same_age": true, 13 | "confirm_downloads": false, 14 | "confirm_sync": true, 15 | "confirm_overwrite_newer": false, 16 | 17 | "host": "apt019.apt.emulab.net", 18 | "user": "yiwenzhg", 19 | //"password": "password", 20 | //"port": "22", 21 | 22 | "remote_path": "/users/yiwenzhg/rdma_fairness/without_ACK/single_dir_multi_wr/ibverbs/ibv_server/", 23 | "ignore_regexes": [ 24 | "\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json", 25 | "sftp-settings\\.json", "/venv/", "\\.svn/", "\\.hg/", "\\.git/", 26 | "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini" 27 | ], 28 | //"file_permissions": "664", 29 | //"dir_permissions": "775", 30 | 31 | //"extra_list_connections": 0, 32 | 33 | "connect_timeout": 30, 34 | //"keepalive": 120, 35 | //"ftp_passive_mode": true, 36 | //"ftp_obey_passive_host": false, 37 | //"ssh_key_file": "~/.ssh/id_rsa", 38 | //"sftp_flags": ["-F", "/path/to/ssh_config"], 39 | 40 | //"preserve_modification_times": false, 41 | //"remote_time_offset_in_hours": 0, 42 | //"remote_encoding": "utf-8", 43 | //"remote_locale": "C", 44 | //"allow_config_upload": false, 45 | } 46 | -------------------------------------------------------------------------------- /WRITE_compare_accurate/ibverbs/ibv_client/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -Werror -g 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := rdma-client 8 | 9 | all: ${APPS} 10 | 11 | rdma-client: rdma-common.o rdma-client.o get_clock.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | rdma-server: rdma-common.o rdma-server.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /WRITE_compare_accurate/ibverbs/ibv_client/rdma-common.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_COMMON_H 2 | #define RDMA_COMMON_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include "get_clock.h" 13 | #include 14 | 15 | #define TEST_NZ(x) do { if ( (x)) { printf("ret = %d; ", x); die("error: " #x " failed (returned non-zero)." );} } while (0) 16 | #define TEST_Z(x) do { if (!(x)) die("error: " #x " failed (returned zero/null)."); } while (0) 17 | 18 | enum mode { 19 | M_WRITE, 20 | M_READ 21 | }; 22 | 23 | void die(const char *reason); 24 | 25 | void build_connection(struct rdma_cm_id *id); 26 | void build_params(struct rdma_conn_param *params); 27 | void destroy_connection(void *context); 28 | //void * get_local_message_region(void *context); 29 | void on_connect(void *context); 30 | //void send_mr(void *context); 31 | void register_MR(void *context); 32 | void run_iter(void *context); 33 | void send_sz(void *context); 34 | void set_mode(enum mode m); 35 | void checkpoint(int i); 36 | void measure_time(const char * filename, cycles_t START_cycle); 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /compile_X3.sh: -------------------------------------------------------------------------------- 1 | cd /users/yiwenzhg/frdma/libmlx4 2 | make clean 3 | ./autogen.sh 4 | ./configure --prefix=/usr libdir=/usr/lib64 5 | make 6 | sudo make install -------------------------------------------------------------------------------- /frdma_bench/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store -------------------------------------------------------------------------------- /frdma_bench/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -g -D_GNU_SOURCE -O2 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := write_bw 8 | 9 | all: ${APPS} 10 | 11 | write_bw: write_bw.o get_clock.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | clean: 15 | rm -f *.o ${APPS} 16 | 17 | -------------------------------------------------------------------------------- /frdma_bench/cal_avgs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | grep "\[message per sec\]" $1 | awk 'NF>1{print $NF}' > temp_msgpersec 4 | #grep -A 1 "\[message per sec\]" $1 | tail -n 1 > temp_median 5 | 6 | python get_avg.py temp_msgpersec -------------------------------------------------------------------------------- /frdma_bench/get_avg.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python2.7 2 | import sys 3 | with open(sys.argv[1]) as f1: 4 | lines1 = f1.read().splitlines() 5 | l1 = [float(i) for i in lines1] 6 | print "avg msg/s: " 7 | print reduce(lambda x, y: x + y, l1) / len(l1) 8 | print "aggr msg/s: " 9 | print reduce(lambda x, y: x + y, l1) 10 | 11 | #with open(sys.argv[2]) as f2: 12 | # lines2 = f2.read().splitlines() 13 | #l2 = [float(i) for i in lines2] 14 | #print "avg median latency: " 15 | #print reduce(lambda x, y: x + y, l2) / len(l2) 16 | 17 | -------------------------------------------------------------------------------- /frdma_bench/run1.sh: -------------------------------------------------------------------------------- 1 | #./write_bw 192.168.0.28 -F -s 1000000 -n 1000000 -O 0 -e -o 1M_vs_1M_10_A.txt 2 | #./write_bw 192.168.0.28 -F -s 1000000 -n 1000000 -O 0 -e -o 1M_vs_1M_1000_A.txt 3 | #./write_bw 192.168.0.28 -F -s 1000000 -n 1000000 -O 0 -e -o 1M_vs_1G_10000_A.txt 4 | #./write_bw 192.168.0.28 -F -s 1000000 -n 1000000 -O 0 -e -o 1M_vs_1G_1000_A.txt 5 | #./write_bw 192.168.0.28 -F -s 1000000000 -n 1000 -O 0 -e -o 1G_1000_vs_1M_A.txt 6 | #./write_bw 192.168.0.28 -F -s 1000000000 -n 1000 -O 0 -e -o temp 7 | #./write_bw 192.168.0.28 -F -s 1000000000 -n 1000 -O 0 -e -o new_1G_vs_1M_t1000_A.txt 8 | #./write_bw 192.168.0.28 -F -s 1000000 -n 1000000 -O 0 -e -o new_1M_vs_1M_t1000_A.txt 9 | #./write_bw 192.168.0.28 -F -s 1000000000 -n 1000 -O 0 -e -o new_1G_split_vs_1M_t1000_A.txt 10 | ./write_bw 192.168.0.28 -F -s 1000000000 -n 1000 -O 0 -e -o new_1G_split_vs_1M_t1_A.txt 11 | -------------------------------------------------------------------------------- /frdma_bench/run2.sh: -------------------------------------------------------------------------------- 1 | #./write_bw 192.168.0.28 -F -s 1000000 -n 1000000 -w 10 -p 8888 -O 0 -e -o 1M_vs_1M_10_B.txt 2 | #./write_bw 192.168.0.28 -F -s 1000000 -n 1000000 -w 1000 -p 8888 -O 0 -e -o 1M_vs_1M_1000_B.txt 3 | #./write_bw 192.168.0.28 -F -s 1000000000 -n 1000 -w 10000 -p 8888 -O 0 -e -o 1M_vs_1G_10000_B.txt 4 | #./write_bw 192.168.0.28 -F -s 1000000000 -n 1000 -w 1000 -p 8888 -O 0 -e -o 1M_vs_1G_1000_B.txt 5 | #./write_bw 192.168.0.28 -F -s 1000000 -n 1000000 -p 8888 -O 0 -e -o 1G_1000_vs_1M_B.txt 6 | #./write_bw 192.168.0.28 -F -s 1000000 -n 1000000 -p 8888 -t 1000 -O 0 -e -o new_1G_vs_1M_t1000_B.txt 7 | #./write_bw 192.168.0.28 -F -s 1000000 -n 1000000 -p 8888 -t 1000 -O 0 -e -o new_1M_vs_1M_t1000_B.txt 8 | ./write_bw 192.168.0.28 -F -s 1000000 -n 1000000 -p 8888 -O 0 -e -o new_1G_split_vs_1M_t1_B.txt 9 | -------------------------------------------------------------------------------- /frdma_bench/test_mouse.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | CNT=0 3 | SIZE=$1 4 | ITER=$2 5 | NUM_FLOW=$3 6 | PORT=8888 7 | while [ $CNT -lt $NUM_FLOW ]; do 8 | #./write_bw -F -s $SIZE -n $ITER -t 32 -p $(( $PORT + $CNT )) $4 & 9 | ./write_bw -F -s $SIZE -n $ITER -t 64 -p $(( $PORT + $CNT )) $4 & 10 | #if [ -z "$4" ]; then 11 | # ./ib_write_bw -e -F -s $SIZE -n $ITER -t 1 -l 1 -p $(($PORT + $CNT)) & 12 | #else 13 | # ./ib_write_bw -e -F -s $SIZE -n $ITER -t 1 -l 1 -p $(( $PORT + $CNT )) $4 & 14 | #fi 15 | CNT=$(( $CNT + 1 )) 16 | done 17 | #./test_mouse.sh 64 10000000 32 192.168.0.28 > mouse_64_batch64_32.txt 18 | #./ib_write_bw -e -F -s 1000000 -n 100000 -t 1 -l 1 192.168.0.28 & 19 | #./ib_write_bw -e -F -s 1000000 -n 100000 -t 1 -l 1 192.168.0.28 -p 8888 & 20 | #./ib_write_bw -e -F -s 1000000 -n 100000 -t 1 -l 1 192.168.0.28 -p 9999 & 21 | #./ib_write_bw -e -F -s 1000000 -n 100000 -t 1 -l 1 192.168.0.28 -p 11111 & 22 | #./ib_write_bw -e -F -s 1000000 -n 100000 -t 1 -l 1 192.168.0.28 -p 22222 & 23 | #./ib_write_bw -e -F -s 1000000 -n 100000 -t 1 -l 1 192.168.0.28 -p 33333 -------------------------------------------------------------------------------- /frdma_bench/test_multi.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | CNT=0 3 | SIZE=$1 4 | ITER=$2 5 | NUM_FLOW=$3 6 | PORT=8888 7 | while [ $CNT -lt $NUM_FLOW ]; do 8 | ./ib_write_bw -e -F -s $SIZE -n $ITER -t 1 -l 16 -p $(( $PORT + $CNT )) $4 & 9 | #if [ -z "$4" ]; then 10 | # ./ib_write_bw -e -F -s $SIZE -n $ITER -t 1 -l 1 -p $(($PORT + $CNT)) & 11 | #else 12 | # ./ib_write_bw -e -F -s $SIZE -n $ITER -t 1 -l 1 -p $(( $PORT + $CNT )) $4 & 13 | #fi 14 | CNT=$(( $CNT + 1 )) 15 | done 16 | #./test_multi.sh 100000 100000 3 192.168.0.28 17 | #./ib_write_bw -e -F -s 1000000 -n 100000 -t 1 -l 1 192.168.0.28 & 18 | #./ib_write_bw -e -F -s 1000000 -n 100000 -t 1 -l 1 192.168.0.28 -p 8888 & 19 | #./ib_write_bw -e -F -s 1000000 -n 100000 -t 1 -l 1 192.168.0.28 -p 9999 & 20 | #./ib_write_bw -e -F -s 1000000 -n 100000 -t 1 -l 1 192.168.0.28 -p 11111 & 21 | #./ib_write_bw -e -F -s 1000000 -n 100000 -t 1 -l 1 192.168.0.28 -p 22222 & 22 | #./ib_write_bw -e -F -s 1000000 -n 100000 -t 1 -l 1 192.168.0.28 -p 33333 -------------------------------------------------------------------------------- /frdma_bench/write_bw_batch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/frdma_bench/write_bw_batch -------------------------------------------------------------------------------- /holding_hw.lsf: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | #BSUB -W 24:00 # 24 hours of walltime requested 4 | #BSUB -n 80 # number of tasks in job 5 | #BSUB -R "span[ptile=40]" # limit 40 processes per node. See note above about HT 6 | #BSUB -J gittins12 # job name 7 | #BSUB -e errors.%J # error file name in which %J is replaced by the job ID 8 | #BSUB -o output.%J # output file name in which %J is replaced by the job ID 9 | #BSUB -q gpu_p100 # choose the queue to use: normal or large_memory 10 | #BSUB -B # email job start notification 11 | #BSUB -N # email job end notification 12 | #BSUB -u yiwenzhg@umich.edu # email address to send notifications 13 | 14 | sleep 1d 15 | -------------------------------------------------------------------------------- /install_frdma.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/bash 2 | mkdir -p $HOME/tools/frdma_build 3 | cd $HOME/frdma/libibverbs-41mlnx1/ 4 | ./autogen.sh 5 | ./configure --prefix=$HOME/tools/frdma_build 6 | make -j 7 | make install 8 | export CPATH=$HOME/tools/frdma_build/include 9 | export LD_LIBRARY_PATH=$HOME/tools/frdma_build/lib 10 | export INCLUDE=$CPATH 11 | export LIB=$LD_LIBRARY_PATH 12 | cd ../libmlx5-41mlnx1/ 13 | ./autogen.sh 14 | ./configure --prefix=$HOME/tools/frdma_build 15 | make -j 16 | make install 17 | echo "Remember to export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.lo 3 | configure 4 | Makefile.in 5 | autom4te.cache 6 | aclocal.m4 7 | stamp-h.in 8 | config.h.in 9 | config.log 10 | config.h 11 | .libs 12 | .deps 13 | libibverbs.spec 14 | Makefile 15 | config.status 16 | stamp-h1 17 | libtool 18 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/.gitreview: -------------------------------------------------------------------------------- 1 | [gerrit] 2 | host=r-webdev02.lab.mtl.com 3 | port=29418 4 | project=mlnx_ofed_2_0/libibverbs.git 5 | defaultbranch=mlnx_ofed_2_1 6 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/AUTHORS: -------------------------------------------------------------------------------- 1 | Roland Dreier 2 | Dotan Barak 3 | Sean Hefty 4 | Michael S. Tsirkin 5 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/autogen.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh -exE 2 | 3 | aclocal -I config 4 | libtoolize --force --copy 5 | autoheader 6 | automake --foreign --add-missing --copy 7 | autoconf 8 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/config/.gitignore: -------------------------------------------------------------------------------- 1 | mkinstalldirs 2 | depcomp 3 | compile 4 | missing 5 | config.guess 6 | config.sub 7 | ltmain.sh 8 | install-sh 9 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/config/ltversion.m4: -------------------------------------------------------------------------------- 1 | # ltversion.m4 -- version numbers -*- Autoconf -*- 2 | # 3 | # Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. 4 | # Written by Scott James Remnant, 2004 5 | # 6 | # This file is free software; the Free Software Foundation gives 7 | # unlimited permission to copy and/or distribute it, with or without 8 | # modifications, as long as this notice is preserved. 9 | 10 | # @configure_input@ 11 | 12 | # serial 4179 ltversion.m4 13 | # This file is part of GNU Libtool 14 | 15 | m4_define([LT_PACKAGE_VERSION], [2.4.6]) 16 | m4_define([LT_PACKAGE_REVISION], [2.4.6]) 17 | 18 | AC_DEFUN([LTVERSION_VERSION], 19 | [macro_version='2.4.6' 20 | macro_revision='2.4.6' 21 | _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) 22 | _LT_DECL(, macro_revision, 0) 23 | ]) 24 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/debian/compat: -------------------------------------------------------------------------------- 1 | 7 2 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/debian/ibverbs-utils.install: -------------------------------------------------------------------------------- 1 | usr/bin 2 | usr/share/man/man1 3 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/debian/libibverbs-dev.install: -------------------------------------------------------------------------------- 1 | usr/include 2 | usr/lib/libibverbs*.a 3 | usr/lib/libibverbs*.so 4 | usr/share/man/man3 5 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/debian/libibverbs-dev.links: -------------------------------------------------------------------------------- 1 | usr/share/man/man3/ibv_get_async_event.3 usr/share/man/man3/ibv_ack_async_event.3 2 | usr/share/man/man3/ibv_get_cq_event.3 usr/share/man/man3/ibv_ack_cq_events.3 3 | usr/share/man/man3/ibv_open_device.3 usr/share/man/man3/ibv_close_device.3 4 | usr/share/man/man3/ibv_alloc_pd.3 usr/share/man/man3/ibv_dealloc_pd.3 5 | usr/share/man/man3/ibv_reg_mr.3 usr/share/man/man3/ibv_dereg_mr.3 6 | usr/share/man/man3/ibv_create_ah.3 usr/share/man/man3/ibv_destroy_ah.3 7 | usr/share/man/man3/ibv_create_comp_channel.3 usr/share/man/man3/ibv_destroy_comp_channel.3 8 | usr/share/man/man3/ibv_create_cq.3 usr/share/man/man3/ibv_destroy_cq.3 9 | usr/share/man/man3/ibv_create_qp.3 usr/share/man/man3/ibv_destroy_qp.3 10 | usr/share/man/man3/ibv_create_srq.3 usr/share/man/man3/ibv_destroy_srq.3 11 | usr/share/man/man3/ibv_attach_mcast.3 usr/share/man/man3/ibv_detach_mcast.3 12 | usr/share/man/man3/ibv_get_device_list.3 usr/share/man/man3/ibv_free_device_list.3 13 | usr/share/man/man3/ibv_create_ah_from_wc.3 usr/share/man/man3/ibv_init_ah_from_wc.3 14 | usr/share/man/man3/ibv_rate_to_mult.3 usr/share/man/man3/mult_to_ibv_rate.3 15 | usr/share/man/man3/ibv_event_type_str.3 usr/share/man/man3/ibv_node_type_str.3 16 | usr/share/man/man3/ibv_event_type_str.3 usr/share/man/man3/ibv_port_state_str.3 17 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/debian/libibverbs1.install: -------------------------------------------------------------------------------- 1 | usr/lib/libibverbs*.so.* 2 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/debian/libibverbs1.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for libibverbs1 3 | 4 | set -e 5 | 6 | if [ "$1" = configure ]; then 7 | getent group rdma > /dev/null 2>&1 || addgroup --system --quiet rdma 8 | fi 9 | 10 | #DEBHELPER# 11 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- mode: makefile; coding: utf-8 -*- 3 | 4 | %: 5 | dh $@ 6 | 7 | override_dh_strip: 8 | dh_strip --dbg-package=libibverbs1-dbg 9 | 10 | override_dh_makeshlibs: 11 | dh_makeshlibs -V 'libibverbs1 (>= 1.1.2)' 12 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) 2 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/debian/watch: -------------------------------------------------------------------------------- 1 | version=3 2 | opts="uversionmangle=s/-rc/~rc/" \ 3 | http://www.openfabrics.org/downloads/verbs/libibverbs-(.+)\.tar\.gz 4 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/examples/.gitignore: -------------------------------------------------------------------------------- 1 | .dirstamp 2 | ibv_asyncwatch 3 | ibv_devices 4 | ibv_devinfo 5 | ibv_rc_pingpong 6 | ibv_srq_pingpong 7 | ibv_uc_pingpong 8 | ibv_ud_pingpong 9 | .libs 10 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_alloc_pd.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_ALLOC_PD 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_alloc_pd, ibv_dealloc_pd \- allocate or deallocate a protection domain (PDs) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "struct ibv_pd *ibv_alloc_pd(struct ibv_context " "*context" ); 11 | .sp 12 | .BI "int ibv_dealloc_pd(struct ibv_pd " "*pd" ); 13 | .fi 14 | .SH "DESCRIPTION" 15 | .B ibv_alloc_pd() 16 | allocates a PD for the RDMA device context 17 | .I context\fR. 18 | .PP 19 | .B ibv_dealloc_pd() 20 | deallocates the PD 21 | .I pd\fR. 22 | .SH "RETURN VALUE" 23 | .B ibv_alloc_pd() 24 | returns a pointer to the allocated PD, or NULL if the request fails. 25 | .PP 26 | .B ibv_dealloc_pd() 27 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 28 | .SH "NOTES" 29 | .B ibv_dealloc_pd() 30 | may fail if any other resource is still associated with the PD being 31 | freed. 32 | .SH "SEE ALSO" 33 | .BR ibv_reg_mr (3), 34 | .BR ibv_create_srq (3), 35 | .BR ibv_create_qp (3), 36 | .BR ibv_create_ah (3), 37 | .BR ibv_create_ah_from_wc (3) 38 | .SH "AUTHORS" 39 | .TP 40 | Dotan Barak 41 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_asyncwatch.1: -------------------------------------------------------------------------------- 1 | .TH IBV_ASYNCWATCH 1 "August 30, 2005" "libibverbs" "USER COMMANDS" 2 | 3 | .SH NAME 4 | ibv_asyncwatch \- display asynchronous events 5 | 6 | .SH SYNOPSIS 7 | .B ibv_asyncwatch 8 | 9 | .SH DESCRIPTION 10 | .PP 11 | Display asynchronous events forwarded to userspace for an RDMA device. 12 | 13 | .SH AUTHORS 14 | .TP 15 | Roland Dreier 16 | .RI < rolandd@cisco.com > 17 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_devices.1: -------------------------------------------------------------------------------- 1 | .TH IBV_DEVICES 1 "August 30, 2005" "libibverbs" "USER COMMANDS" 2 | 3 | .SH NAME 4 | ibv_devices \- list RDMA devices 5 | 6 | .SH SYNOPSIS 7 | .B ibv_devices 8 | 9 | .SH DESCRIPTION 10 | .PP 11 | List RDMA devices available for use from userspace. 12 | 13 | .SH SEE ALSO 14 | .BR ibv_devinfo (1) 15 | 16 | .SH AUTHORS 17 | .TP 18 | Roland Dreier 19 | .RI < rolandd@cisco.com > 20 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_devinfo.1: -------------------------------------------------------------------------------- 1 | .TH IBV_DEVINFO 1 "August 30, 2005" "libibverbs" "USER COMMANDS" 2 | 3 | .SH NAME 4 | ibv_devinfo \- query RDMA devices 5 | 6 | .SH SYNOPSIS 7 | .B ibv_devinfo 8 | [\-d device] [\-i port] [\-l] [\-v] 9 | 10 | .SH DESCRIPTION 11 | .PP 12 | Print information about RDMA devices available for use from userspace. 13 | 14 | .SH OPTIONS 15 | 16 | .PP 17 | .TP 18 | \fB\-d\fR, \fB\-\-ib\-dev\fR=\fIDEVICE\fR 19 | use IB device \fIDEVICE\fR (default first device found) 20 | 21 | \fB\-i\fR, \fB\-\-ib\-port\fR=\fIPORT\fR 22 | query port \fIPORT\fR (default all ports) 23 | 24 | \fB\-l\fR, \fB\-\-list\fR 25 | only list names of RDMA devices 26 | 27 | \fB\-v\fR, \fB\-\-verbose\fR 28 | print all available information about RDMA devices 29 | 30 | .SH SEE ALSO 31 | .BR ibv_devices (1) 32 | 33 | .SH AUTHORS 34 | .TP 35 | Dotan Barak 36 | .RI < dotanba@gmail.com > 37 | .TP 38 | Roland Dreier 39 | .RI < rolandd@cisco.com > 40 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_event_type_str.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EVENT_TYPE_STR 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | .nf 6 | ibv_event_type_str \- Return string describing event_type enum value 7 | .sp 8 | ibv_node_type_str \- Return string describing node_type enum value 9 | .sp 10 | ibv_port_state_str \- Return string describing port_state enum value 11 | .SH "SYNOPSIS" 12 | .nf 13 | .B #include 14 | .sp 15 | .BI "const char *ibv_event_type_str(enum ibv_event_type " "event_type"); 16 | .sp 17 | .BI "const char *ibv_node_type_str(enum ibv_node_type " "node_type"); 18 | .sp 19 | .BI "const char *ibv_port_state_str(enum ibv_port_state " "port_state"); 20 | .fi 21 | .SH "DESCRIPTION" 22 | .B ibv_node_type_str() 23 | returns a string describing the node type enum value 24 | .IR node_type . 25 | .PP 26 | .B ibv_port_state_str() 27 | returns a string describing the port state enum value 28 | .IR port_state . 29 | .PP 30 | .B ibv_event_type_str() 31 | returns a string describing the event type enum value 32 | .IR event_type . 33 | .SH "RETURN VALUE" 34 | These functions return a constant string that describes the enum value 35 | passed as their argument. 36 | .SH "AUTHOR" 37 | .TP 38 | Roland Dreier 39 | .RI < rolandd@cisco.com > 40 | 41 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_exp_dealloc_mkey_list_memory.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_DEALLOC_MKEY_LIST_MOMORY 3 2014-08-28 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_dealloc_mkey_list_memory \- deallocates the struct that was allocated using ibv_exp_alloc_mkey_list_memory() 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_exp_dealloc_mkey_list_memory(struct ibv_exp_mkey_list_container " "*mem" ); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_exp_dealloc_mkey_list_memory() 14 | dallocates the argument 15 | .I mem 16 | that was allocated using ibv_exp_alloc_mkey_list_memory() 17 | .PP 18 | The argument 19 | .I mem 20 | is an ibv_exp_mkey_list_container struct and is defined in as follow: 21 | .PP 22 | .nf 23 | struct ibv_exp_list_container { 24 | .in +8 25 | uint32_t max_klm_list_size; /* maximum number of KLMs we can use to create the UMR */ 26 | struct ibv_context *context; /* RDMA device context */ 27 | .in -8 28 | }; 29 | 30 | .SH "RETURN VALUE" 31 | .B ibv_exp_dealloc_mkey_list_memory() 32 | returns 0 on success, the value of errno on failure (which indicates the failure reason). 33 | .PP 34 | .SH "SEE ALSO" 35 | .BR ibv_exp_alloc_mkey_list_memory (3) 36 | .SH "AUTHORS" 37 | .TP 38 | Haggai Abramovsky 39 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_exp_get_provider_func.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_GET_PROVIDER_FUNC 3 2014-04-23 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_get_provider_func \- gets provider's function pointer 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "void *ibv_exp_get_provider_func(struct ibv_context " "*context" ", enum ibv_exp_func_name " "name"); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_exp_get_provider_func() 14 | returns a function's pointer of function 15 | .I name 16 | associated with device context 17 | .I context. 18 | This verb can be used to achieve direct access to provider's data path functions. 19 | .PP 20 | .sp 21 | .fi 22 | .PP 23 | The argument 24 | .I name 25 | is an ibv_exp_func_name enum, as defined in . It should be one of the following values: 26 | .PP 27 | .nf 28 | .TP 29 | .B IBV_EXP_POST_SEND_FUNC \fR Get the exp_post_send's provider's function. 30 | .TP 31 | .B IBV_EXP_POLL_CQ_FUNC \fR Get the exp_poll_cq's provider's function. 32 | .TP 33 | .B IBV_POST_SEND_FUNC \fR Get the post_send's provider's function. 34 | .TP 35 | .B IBV_POLL_CQ_FUNC \fR Get the poll_cq's provider's function. 36 | .TP 37 | .B IBV_POST_RECV_FUNC \fR Get the post_recv's provider's function. 38 | 39 | .SH "RETURN VALUE" 40 | On success, 41 | .B ibv_exp_get_provider_func() 42 | returns a function's pointer, and null on error. 43 | .SH "AUTHORS" 44 | .TP 45 | Majd Dibbiny 46 | 47 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_exp_modify_wq.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_MODIFY_WQ 3 2015-08-04 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_modify_wq \- Modify a Work Queue (WQ). 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "struct int ibv_exp_modify_wq(struct ibv_exp_wq " "*wq," 11 | .BI " struct ibv_exp_wq_attr " "*wq_attr" ); 12 | .sp 13 | .fi 14 | .SH "DESCRIPTION" 15 | .B ibv_exp_modify_wq() 16 | modifys a WQ 17 | .I wq\fR. 18 | The argument 19 | .I wq_attr 20 | is an ibv_exp_wq_attr struct, as defined in . 21 | .PP 22 | .nf 23 | struct ibv_exp_wq_attr { 24 | .in +8 25 | uint32_t attr_mask; /* Use enum ibv_exp_wq_attr_mask */ 26 | enum ibv_exp_wq_state wq_state; /* Move to this state */ 27 | enum ibv_exp_wq_state curr_wq_state; /* Assume this is the current state */ 28 | uint16_t vlan_offloads; /* Change WQ's VLAN offloading behaviour */ 29 | .in -8 30 | }; 31 | .fi 32 | .PP 33 | The function 34 | .B ibv_exp_modify_wq() 35 | will modify the WQ based on the given 36 | .I wq_attr\fB\fR->attr_mask 37 | .SH "RETURN VALUE" 38 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 39 | .SH "SEE ALSO" 40 | .BR ibv_exp_create_wq (3), 41 | .BR ibv_exp_destroy_wq (3), 42 | .SH "AUTHORS" 43 | .TP 44 | Yishai Hadas 45 | .TP 46 | Noa Osherovich 47 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_exp_query_gid_attr.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_QUERY_GID_ATTR 3 2015-08-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_query_gid_attr \- query a GID attributes 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_exp_query_gid_attr(struct ibv_context " "*context" ", uint8_t " "port_num" , 11 | .BI " unsigned int " "index" ", struct ibv_exp_gid_attr " "*gid_attr" ); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_exp_query_gid_attr() 15 | returns the GID attributes in entry 16 | .I index 17 | of port 18 | .I port_num 19 | for device context 20 | .I context 21 | through the pointer 22 | .I gid_attr\fR. 23 | .PP 24 | The argument 25 | .I gid_attr 26 | is an ibv_exp_gid_attr struct, as defined in . 27 | .PP 28 | .nf 29 | struct ibv_exp_gid_attr { 30 | .in +8 31 | uint32_t comp_mask; /* Use ibv_exp_query_gid_attr */ 32 | enum ibv_exp_roce_gid_type type; /* The GID type */ 33 | union ibv_gid gid; /* The GID in the desired index of the specified port */ 34 | .in -8 35 | }; 36 | 37 | comp_mask is used as an input to the verb, to choose which of the fields should 38 | be queried, and as an output to indicate which fields were queried. 39 | 40 | .SH "RETURN VALUE" 41 | .B ibv_exp_query_gid_attr() 42 | returns 0 on success, and errno on failure. 43 | .SH "SEE ALSO" 44 | .BR ibv_query_gid (3), 45 | .SH "AUTHORS" 46 | .TP 47 | Majd Dibbiny 48 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_exp_query_mkey.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_QUERY_MKEY 3 2014-08-28 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_query_mkey \- query MR's attribute, for MRs created by ibv_exp_create_mr() function 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_exp_query_mkey(struct ibv_mr " "*mr" ", struct ibv_exp_mkey_attr " "*attr"); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_exp_query_mkey() 14 | gets the attributes of the memory region (MR) 15 | .I mr 16 | into the argument 17 | .I attr. 18 | .PP 19 | The argument 20 | .I attr 21 | is an ibv_exp_mkey_attr struct, as defined in . 22 | .PP 23 | .nf 24 | struct ibv_exp_mkey_attr { 25 | .in +8 26 | uint32_t max_klm_list_size; /* maximum number of MRs we can use to create the UMR */ 27 | uint32_t comp_mask; /* reserved for future growth (must be 0) */ 28 | .in -8 29 | }; 30 | .fi 31 | .PP 32 | The function 33 | .B ibv_exp_query_mkey() 34 | will update the 35 | .I attr 36 | struct with the actual \s-1mr\s0 values of the MR that were queried. 37 | .PP 38 | .SH "RETURN VALUE" 39 | .B ibv_exp_query_mkey() 40 | returns 0 on success, or the value of errno on failure. 41 | 42 | .SH "NOTES" 43 | .PP 44 | .SH "SEE ALSO" 45 | .BR ibv_exp_create_mr (3), 46 | .SH "AUTHORS" 47 | .TP 48 | Haggai Abramovsky 49 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_get_device_guid.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_GET_DEVICE_GUID 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_get_device_guid \- get an RDMA device's GUID 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "uint64_t ibv_get_device_guid(struct ibv_device " "*device" "); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_get_device_guid() 14 | returns the Global Unique IDentifier (GUID) of the RDMA device 15 | .I device\fR. 16 | .SH "RETURN VALUE" 17 | .B ibv_get_device_guid() 18 | returns the GUID of the device in network byte order. 19 | .SH "SEE ALSO" 20 | .BR ibv_get_device_list (3), 21 | .BR ibv_get_device_name (3), 22 | .BR ibv_open_device (3) 23 | .SH "AUTHORS" 24 | .TP 25 | Dotan Barak 26 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_get_device_name.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_GET_DEVICE_NAME 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_get_device_name \- get an RDMA device's name 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "const char *ibv_get_device_name(struct ibv_device " "*device" "); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_get_device_name() 14 | returns a human-readable name associated with the RDMA device 15 | .I device\fR. 16 | .SH "RETURN VALUE" 17 | .B ibv_get_device_name() 18 | returns a pointer to the device name, or NULL if the request fails. 19 | .SH "SEE ALSO" 20 | .BR ibv_get_device_list (3), 21 | .BR ibv_get_device_guid (3), 22 | .BR ibv_open_device (3) 23 | .SH "AUTHORS" 24 | .TP 25 | Dotan Barak 26 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_get_srq_num.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_GET_SRQ_NUM 3 2013-06-26 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_get_srq_num \- return srq number associated with the given shared receive queue (SRQ) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_get_srq_num(struct ibv_srq " "*srq" , 11 | .BI " uint32_t " "*srq_num" ); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_get_srq_num() 15 | return srq number associated with the given shared receive queue 16 | The argument 17 | .I srq 18 | is an ibv_srq struct, as defined in . 19 | .I srq_num 20 | is an output parameter that holds the returned srq number. 21 | .PP 22 | .nf 23 | .SH "RETURN VALUE" 24 | .B ibv_get_srq_num() 25 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 26 | .SH "SEE ALSO" 27 | .BR ibv_alloc_pd (3), 28 | .BR ibv_modify_srq (3), 29 | .BR ibv_create_srq_ex (3) 30 | .SH "AUTHORS" 31 | .TP 32 | Yishai Hadas 33 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_inc_rkey.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_INC_RKEY 3 2015-01-29 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | .nf 6 | ibv_inc_rkey \- creates a new rkey from the given one 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "uint32_t ibv_inc_rkey(uint32_t " "rkey" "); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_inc_rkey() 15 | Increases the 8 LSB of 16 | .I rkey 17 | and returns the new value. 18 | .PP 19 | .SH "RETURN VALUE" 20 | .B ibv_inc_rkey() 21 | returns the new rkey. 22 | .SH "NOTES" 23 | .PP 24 | The verb generates a new rkey that is different from the previous one on its tag part 25 | but has the same index (bits 0xffffff00). 26 | A use case for this verb can be to create a new rkey from a Memory window's rkey 27 | when binding it to a Memory region. 28 | .SH "AUTHORS" 29 | .TP 30 | Majd Dibbiny 31 | .TP 32 | Yishai Hadas 33 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_open_device.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_OPEN_DEVICE 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_open_device, ibv_close_device \- open and close an RDMA device context 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "struct ibv_context *ibv_open_device(struct ibv_device " "*device" "); 11 | .sp 12 | .BI "int ibv_close_device(struct ibv_context " "*context" "); 13 | .fi 14 | .SH "DESCRIPTION" 15 | .B ibv_open_device() 16 | opens the device 17 | .I device 18 | and creates a context for further use. 19 | .PP 20 | .B ibv_close_device() 21 | closes the device context 22 | .I context\fR. 23 | .SH "RETURN VALUE" 24 | .B ibv_open_device() 25 | returns a pointer to the allocated device context, or NULL if the request fails. 26 | .PP 27 | .B ibv_close_device() 28 | returns 0 on success, \-1 on failure. 29 | .SH "NOTES" 30 | .B ibv_close_device() 31 | does not release all the resources allocated using context 32 | .I context\fR. 33 | To avoid resource leaks, the user should release all associated 34 | resources before closing a context. 35 | .SH "SEE ALSO" 36 | .BR ibv_get_device_list (3), 37 | .BR ibv_query_device (3), 38 | .BR ibv_query_port (3), 39 | .BR ibv_query_gid (3), 40 | .BR ibv_query_pkey (3) 41 | .SH "AUTHORS" 42 | .TP 43 | Dotan Barak 44 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_query_gid.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_QUERY_GID 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_query_gid \- query an InfiniBand port's GID table 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_query_gid(struct ibv_context " "*context" ", uint8_t " "port_num" , 11 | .BI " int " "index" ", union ibv_gid " "*gid" ); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_query_gid() 15 | returns the GID value in entry 16 | .I index 17 | of port 18 | .I port_num 19 | for device context 20 | .I context 21 | through the pointer 22 | .I gid\fR. 23 | .SH "RETURN VALUE" 24 | .B ibv_query_gid() 25 | returns 0 on success, and \-1 on error. 26 | .SH "SEE ALSO" 27 | .BR ibv_open_device (3), 28 | .BR ibv_query_device (3), 29 | .BR ibv_query_port (3), 30 | .BR ibv_query_pkey (3) 31 | .SH "AUTHORS" 32 | .TP 33 | Dotan Barak 34 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_query_pkey.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_QUERY_PKEY 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_query_pkey \- query an InfiniBand port's P_Key table 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_query_pkey(struct ibv_context " "*context" ", uint8_t " "port_num" , 11 | .BI " int " "index" ", uint16_t " "*pkey" "); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_query_pkey() 15 | returns the P_Key value (in network byte order) in entry 16 | .I index 17 | of port 18 | .I port_num 19 | for device context 20 | .I context 21 | through the pointer 22 | .I pkey\fR. 23 | .SH "RETURN VALUE" 24 | .B ibv_query_pkey() 25 | returns 0 on success, and \-1 on error. 26 | .SH "SEE ALSO" 27 | .BR ibv_open_device (3), 28 | .BR ibv_query_device (3), 29 | .BR ibv_query_port (3), 30 | .BR ibv_query_gid (3) 31 | .SH "AUTHORS" 32 | .TP 33 | Dotan Barak 34 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_query_srq.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_QUERY_SRQ 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_query_srq \- get the attributes of a shared receive queue (SRQ) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_query_srq(struct ibv_srq " "*srq" ", struct ibv_srq_attr " "*srq_attr" ); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_query_srq() 14 | gets the attributes of the SRQ 15 | .I srq 16 | and returns them through the pointer 17 | .I srq_attr\fR. 18 | The argument 19 | .I srq_attr 20 | is an ibv_srq_attr struct, as defined in . 21 | .PP 22 | .nf 23 | struct ibv_srq_attr { 24 | .in +8 25 | uint32_t max_wr; /* maximum number of outstanding work requests (WRs) in the SRQ */ 26 | uint32_t max_sge; /* maximum number of scatter elements per WR */ 27 | uint32_t srq_limit; /* the limit value of the SRQ */ 28 | .in -8 29 | }; 30 | .fi 31 | .SH "RETURN VALUE" 32 | .B ibv_query_srq() 33 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 34 | .SH "NOTES" 35 | If the value returned for srq_limit is 0, then the SRQ limit reached 36 | ("low watermark") event is not (or no longer) armed, and no 37 | asynchronous events will be generated until the event is rearmed. 38 | .SH "SEE ALSO" 39 | .BR ibv_create_srq (3), 40 | .BR ibv_destroy_srq (3), 41 | .BR ibv_modify_srq (3) 42 | .SH "AUTHORS" 43 | .TP 44 | Dotan Barak 45 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_rate_to_mbps.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_RATE_TO_MBPS 3 2012-03-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | .nf 6 | ibv_rate_to_mbps \- convert IB rate enumeration to Mbit/sec 7 | .sp 8 | mbps_to_ibv_rate \- convert Mbit/sec to an IB rate enumeration 9 | .SH "SYNOPSIS" 10 | .nf 11 | .B #include 12 | .sp 13 | .BI "int ibv_rate_to_mbps(enum ibv_rate " "rate" "); 14 | .sp 15 | .BI "enum ibv_rate mbps_to_ibv_rate(int " "mbps" "); 16 | .fi 17 | .SH "DESCRIPTION" 18 | .B ibv_rate_to_mbps() 19 | converts the IB transmission rate enumeration 20 | .I rate 21 | to a number of Mbit/sec. For example, if 22 | .I rate 23 | is 24 | .BR IBV_RATE_5_GBPS\fR, 25 | the value 5000 will be returned (5 Gbit/sec = 5000 Mbit/sec). 26 | .PP 27 | .B mbps_to_ibv_rate() 28 | converts the number of Mbit/sec 29 | .I mult 30 | to an IB transmission rate enumeration. For example, if 31 | .I mult 32 | is 5000, the rate enumeration 33 | .BR IBV_RATE_5_GBPS 34 | will be returned. 35 | .SH "RETURN VALUE" 36 | .B ibv_rate_to_mbps() 37 | returns the number of Mbit/sec. 38 | .PP 39 | .B mbps_to_ibv_rate() 40 | returns the enumeration representing the IB transmission rate. 41 | .SH "SEE ALSO" 42 | .BR ibv_query_port (3) 43 | .SH "AUTHORS" 44 | .TP 45 | Dotan Barak 46 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_rate_to_mult.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_RATE_TO_MULT 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | .nf 6 | ibv_rate_to_mult \- convert IB rate enumeration to multiplier of 2.5 Gbit/sec 7 | .sp 8 | mult_to_ibv_rate \- convert multiplier of 2.5 Gbit/sec to an IB rate enumeration 9 | .SH "SYNOPSIS" 10 | .nf 11 | .B #include 12 | .sp 13 | .BI "int ibv_rate_to_mult(enum ibv_rate " "rate" "); 14 | .sp 15 | .BI "enum ibv_rate mult_to_ibv_rate(int " "mult" "); 16 | .fi 17 | .SH "DESCRIPTION" 18 | .B ibv_rate_to_mult() 19 | converts the IB transmission rate enumeration 20 | .I rate 21 | to a multiple of 2.5 Gbit/sec (the base rate). For example, if 22 | .I rate 23 | is 24 | .BR IBV_RATE_5_GBPS\fR, 25 | the value 2 will be returned (5 Gbit/sec = 2 * 2.5 Gbit/sec). 26 | .PP 27 | .B mult_to_ibv_rate() 28 | converts the multiplier value (of 2.5 Gbit/sec) 29 | .I mult 30 | to an IB transmission rate enumeration. For example, if 31 | .I mult 32 | is 2, the rate enumeration 33 | .BR IBV_RATE_5_GBPS 34 | will be returned. 35 | .SH "RETURN VALUE" 36 | .B 37 | ibv_rate_to_mult() 38 | returns the multiplier of the base rate 2.5 Gbit/sec. 39 | .PP 40 | .B mult_to_ibv_rate() 41 | returns the enumeration representing the IB transmission rate. 42 | .SH "SEE ALSO" 43 | .BR ibv_query_port (3) 44 | .SH "AUTHORS" 45 | .TP 46 | Dotan Barak 47 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_req_notify_cq.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_REQ_NOTIFY_CQ 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_req_notify_cq \- request completion notification on a completion queue (CQ) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_req_notify_cq(struct ibv_cq " "*cq" ", int " "solicited_only" "); 11 | .SH "DESCRIPTION" 12 | .B ibv_req_notify_cq() 13 | requests a completion notification on the completion queue (CQ) 14 | .I cq\fR. 15 | .PP 16 | Upon the addition of a new CQ entry (CQE) to 17 | .I cq\fR, 18 | a completion event will be added to the completion channel associated 19 | with the CQ. 20 | If the argument 21 | .I solicited_only 22 | is zero, a completion event is generated for any new CQE. If 23 | .I solicited_only 24 | is non\-zero, an event is only generated for a new CQE with that is 25 | considered "solicited." A CQE is solicited if it is a receive 26 | completion for a message with the Solicited Event header bit set, or 27 | if the status is not successful. All other successful receive 28 | completions, or any successful send completion is unsolicited. 29 | .SH "RETURN VALUE" 30 | .B 31 | ibv_req_notify_cq() 32 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 33 | .SH "NOTES" 34 | The request for notification is "one shot." Only one completion event 35 | will be generated for each call to 36 | .B ibv_req_notify_cq()\fR. 37 | .SH "SEE ALSO" 38 | .BR ibv_create_comp_channel (3), 39 | .BR ibv_create_cq (3), 40 | .BR ibv_get_cq_event (3) 41 | .SH "AUTHORS" 42 | .TP 43 | Dotan Barak 44 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_resize_cq.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_RESIZE_CQ 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_resize_cq \- resize a completion queue (CQ) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_resize_cq(struct ibv_cq " "*cq" ", int " "cqe" "); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_resize_cq() 14 | resizes the completion queue (CQ) 15 | .I cq 16 | to have at least 17 | .I cqe 18 | entries. 19 | .I cqe 20 | must be at least the number of unpolled entries in the CQ 21 | .I cq\fR. 22 | If 23 | .I cqe 24 | is a valid value less than the current CQ size, 25 | .B ibv_resize_cq() 26 | may not do anything, since this function is only guaranteed to resize 27 | the CQ to a size at least as big as the requested size. 28 | .SH "RETURN VALUE" 29 | .B ibv_resize_cq() 30 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 31 | .SH "NOTES" 32 | .B ibv_resize_cq() 33 | may assign a CQ size greater than or equal to the requested size. 34 | The cqe member of 35 | .I cq 36 | will be updated to the actual size. 37 | .SH "SEE ALSO" 38 | .BR ibv_create_cq (3) 39 | .BR ibv_destroy_cq (3) 40 | .SH "AUTHORS" 41 | .TP 42 | Dotan Barak 43 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/man/ibv_shared_mr.1: -------------------------------------------------------------------------------- 1 | .TH IBV_SHARED_MR 1 "August 28, 2012" "libibverbs" "USER COMMANDS" 2 | 3 | .SH NAME 4 | ibv_shared_mr \- simple InfiniBand program which demonstrates the usage of a shared memory region 5 | 6 | .SH SYNOPSIS 7 | .B ibv_shared_mr 8 | [\-p port] [\-d device] [\-s size] [\-n no-rdma] 9 | \fBHOSTNAME\fR 10 | 11 | .SH DESCRIPTION 12 | .PP 13 | Run a simple shared memory region test over InfiniBand. 14 | Server creates a shared memory region,client gets its ID and writes some data directly to 15 | its memory, server verifies the data. 16 | Note - both client and server must run on same machine. 17 | 18 | .SH OPTIONS 19 | 20 | .PP 21 | .TP 22 | \fB\-p\fR, \fB\-\-port\fR=\fIPORT\fR 23 | use TCP port \fIPORT\fR for initial synchronization (default 18515) 24 | .TP 25 | \fB\-d\fR, \fB\-\-ib\-dev\fR=\fIDEVICE\fR 26 | use IB device \fIDEVICE\fR (default first device found) 27 | .TP 28 | \fB\-s\fR, \fB\-\-size\fR=\fISIZE\fR 29 | messages of size \fISIZE\fR (default 4096) 30 | .TP 31 | \fB\-s\fR, \fB\-\-no-rdma\fR 32 | shared memory region is used only for shared memory purposes - no rdma. 33 | .SH AUTHORS 34 | .TP 35 | Yishai Hadas 36 | .RI 37 | 38 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/src/.gitignore: -------------------------------------------------------------------------------- 1 | *.la 2 | .dirstamp 3 | .libs 4 | -------------------------------------------------------------------------------- /libibverbs-1.2.1mlnx1/src/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "ostream": "c" 4 | } 5 | } -------------------------------------------------------------------------------- /libibverbs-41mlnx1/.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.lo 3 | configure 4 | Makefile.in 5 | autom4te.cache 6 | aclocal.m4 7 | stamp-h.in 8 | config.h.in 9 | config.log 10 | config.h 11 | .libs 12 | .deps 13 | libibverbs.spec 14 | Makefile 15 | config.status 16 | stamp-h1 17 | libtool 18 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/.gitreview: -------------------------------------------------------------------------------- 1 | [gerrit] 2 | host=r-webdev02.lab.mtl.com 3 | port=29418 4 | project=mlnx_ofed_2_0/libibverbs.git 5 | defaultbranch=mlnx_ofed_2_1 6 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/AUTHORS: -------------------------------------------------------------------------------- 1 | Roland Dreier 2 | Dotan Barak 3 | Sean Hefty 4 | Michael S. Tsirkin 5 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/autogen.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh -exE 2 | 3 | aclocal -I config 4 | libtoolize --force --copy 5 | autoheader 6 | automake --foreign --add-missing --copy 7 | autoconf 8 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/config/.gitignore: -------------------------------------------------------------------------------- 1 | mkinstalldirs 2 | depcomp 3 | compile 4 | missing 5 | config.guess 6 | config.sub 7 | ltmain.sh 8 | install-sh 9 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/config/ltversion.m4: -------------------------------------------------------------------------------- 1 | # ltversion.m4 -- version numbers -*- Autoconf -*- 2 | # 3 | # Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. 4 | # Written by Scott James Remnant, 2004 5 | # 6 | # This file is free software; the Free Software Foundation gives 7 | # unlimited permission to copy and/or distribute it, with or without 8 | # modifications, as long as this notice is preserved. 9 | 10 | # @configure_input@ 11 | 12 | # serial 4179 ltversion.m4 13 | # This file is part of GNU Libtool 14 | 15 | m4_define([LT_PACKAGE_VERSION], [2.4.6]) 16 | m4_define([LT_PACKAGE_REVISION], [2.4.6]) 17 | 18 | AC_DEFUN([LTVERSION_VERSION], 19 | [macro_version='2.4.6' 20 | macro_revision='2.4.6' 21 | _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) 22 | _LT_DECL(, macro_revision, 0) 23 | ]) 24 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/debian/compat: -------------------------------------------------------------------------------- 1 | 7 2 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/debian/ibverbs-utils.install: -------------------------------------------------------------------------------- 1 | usr/bin 2 | usr/share/man/man1 3 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/debian/libibverbs-dev.install: -------------------------------------------------------------------------------- 1 | usr/include 2 | usr/lib/libibverbs*.a 3 | usr/lib/libibverbs*.so 4 | usr/share/man/man3 5 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/debian/libibverbs-dev.links: -------------------------------------------------------------------------------- 1 | usr/share/man/man3/ibv_get_async_event.3 usr/share/man/man3/ibv_ack_async_event.3 2 | usr/share/man/man3/ibv_get_cq_event.3 usr/share/man/man3/ibv_ack_cq_events.3 3 | usr/share/man/man3/ibv_open_device.3 usr/share/man/man3/ibv_close_device.3 4 | usr/share/man/man3/ibv_alloc_pd.3 usr/share/man/man3/ibv_dealloc_pd.3 5 | usr/share/man/man3/ibv_reg_mr.3 usr/share/man/man3/ibv_dereg_mr.3 6 | usr/share/man/man3/ibv_create_ah.3 usr/share/man/man3/ibv_destroy_ah.3 7 | usr/share/man/man3/ibv_create_comp_channel.3 usr/share/man/man3/ibv_destroy_comp_channel.3 8 | usr/share/man/man3/ibv_create_cq.3 usr/share/man/man3/ibv_destroy_cq.3 9 | usr/share/man/man3/ibv_create_qp.3 usr/share/man/man3/ibv_destroy_qp.3 10 | usr/share/man/man3/ibv_create_srq.3 usr/share/man/man3/ibv_destroy_srq.3 11 | usr/share/man/man3/ibv_attach_mcast.3 usr/share/man/man3/ibv_detach_mcast.3 12 | usr/share/man/man3/ibv_get_device_list.3 usr/share/man/man3/ibv_free_device_list.3 13 | usr/share/man/man3/ibv_create_ah_from_wc.3 usr/share/man/man3/ibv_init_ah_from_wc.3 14 | usr/share/man/man3/ibv_rate_to_mult.3 usr/share/man/man3/mult_to_ibv_rate.3 15 | usr/share/man/man3/ibv_event_type_str.3 usr/share/man/man3/ibv_node_type_str.3 16 | usr/share/man/man3/ibv_event_type_str.3 usr/share/man/man3/ibv_port_state_str.3 17 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/debian/libibverbs1.install: -------------------------------------------------------------------------------- 1 | usr/lib/libibverbs*.so.* 2 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/debian/libibverbs1.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for libibverbs1 3 | 4 | set -e 5 | 6 | if [ "$1" = configure ]; then 7 | getent group rdma > /dev/null 2>&1 || addgroup --system --quiet rdma 8 | fi 9 | 10 | #DEBHELPER# 11 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- mode: makefile; coding: utf-8 -*- 3 | 4 | %: 5 | dh $@ 6 | 7 | override_dh_strip: 8 | dh_strip --dbg-package=libibverbs1-dbg 9 | 10 | override_dh_makeshlibs: 11 | dh_makeshlibs -V 'libibverbs1 (>= 1.1.2)' 12 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) 2 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/debian/watch: -------------------------------------------------------------------------------- 1 | version=3 2 | opts="uversionmangle=s/-rc/~rc/" \ 3 | http://www.openfabrics.org/downloads/verbs/libibverbs-(.+)\.tar\.gz 4 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/examples/.gitignore: -------------------------------------------------------------------------------- 1 | .dirstamp 2 | ibv_asyncwatch 3 | ibv_devices 4 | ibv_devinfo 5 | ibv_rc_pingpong 6 | ibv_srq_pingpong 7 | ibv_uc_pingpong 8 | ibv_ud_pingpong 9 | .libs 10 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_alloc_pd.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_ALLOC_PD 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_alloc_pd, ibv_dealloc_pd \- allocate or deallocate a protection domain (PDs) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "struct ibv_pd *ibv_alloc_pd(struct ibv_context " "*context" ); 11 | .sp 12 | .BI "int ibv_dealloc_pd(struct ibv_pd " "*pd" ); 13 | .fi 14 | .SH "DESCRIPTION" 15 | .B ibv_alloc_pd() 16 | allocates a PD for the RDMA device context 17 | .I context\fR. 18 | .PP 19 | .B ibv_dealloc_pd() 20 | deallocates the PD 21 | .I pd\fR. 22 | .SH "RETURN VALUE" 23 | .B ibv_alloc_pd() 24 | returns a pointer to the allocated PD, or NULL if the request fails. 25 | .PP 26 | .B ibv_dealloc_pd() 27 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 28 | .SH "NOTES" 29 | .B ibv_dealloc_pd() 30 | may fail if any other resource is still associated with the PD being 31 | freed. 32 | .SH "SEE ALSO" 33 | .BR ibv_reg_mr (3), 34 | .BR ibv_create_srq (3), 35 | .BR ibv_create_qp (3), 36 | .BR ibv_create_ah (3), 37 | .BR ibv_create_ah_from_wc (3) 38 | .SH "AUTHORS" 39 | .TP 40 | Dotan Barak 41 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_asyncwatch.1: -------------------------------------------------------------------------------- 1 | .TH IBV_ASYNCWATCH 1 "August 30, 2005" "libibverbs" "USER COMMANDS" 2 | 3 | .SH NAME 4 | ibv_asyncwatch \- display asynchronous events 5 | 6 | .SH SYNOPSIS 7 | .B ibv_asyncwatch 8 | 9 | .SH DESCRIPTION 10 | .PP 11 | Display asynchronous events forwarded to userspace for an RDMA device. 12 | 13 | .SH AUTHORS 14 | .TP 15 | Roland Dreier 16 | .RI < rolandd@cisco.com > 17 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_devices.1: -------------------------------------------------------------------------------- 1 | .TH IBV_DEVICES 1 "August 30, 2005" "libibverbs" "USER COMMANDS" 2 | 3 | .SH NAME 4 | ibv_devices \- list RDMA devices 5 | 6 | .SH SYNOPSIS 7 | .B ibv_devices 8 | 9 | .SH DESCRIPTION 10 | .PP 11 | List RDMA devices available for use from userspace. 12 | 13 | .SH SEE ALSO 14 | .BR ibv_devinfo (1) 15 | 16 | .SH AUTHORS 17 | .TP 18 | Roland Dreier 19 | .RI < rolandd@cisco.com > 20 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_devinfo.1: -------------------------------------------------------------------------------- 1 | .TH IBV_DEVINFO 1 "August 30, 2005" "libibverbs" "USER COMMANDS" 2 | 3 | .SH NAME 4 | ibv_devinfo \- query RDMA devices 5 | 6 | .SH SYNOPSIS 7 | .B ibv_devinfo 8 | [\-d device] [\-i port] [\-l] [\-v] 9 | 10 | .SH DESCRIPTION 11 | .PP 12 | Print information about RDMA devices available for use from userspace. 13 | 14 | .SH OPTIONS 15 | 16 | .PP 17 | .TP 18 | \fB\-d\fR, \fB\-\-ib\-dev\fR=\fIDEVICE\fR 19 | use IB device \fIDEVICE\fR (default first device found) 20 | 21 | \fB\-i\fR, \fB\-\-ib\-port\fR=\fIPORT\fR 22 | query port \fIPORT\fR (default all ports) 23 | 24 | \fB\-l\fR, \fB\-\-list\fR 25 | only list names of RDMA devices 26 | 27 | \fB\-v\fR, \fB\-\-verbose\fR 28 | print all available information about RDMA devices 29 | 30 | .SH SEE ALSO 31 | .BR ibv_devices (1) 32 | 33 | .SH AUTHORS 34 | .TP 35 | Dotan Barak 36 | .RI < dotanba@gmail.com > 37 | .TP 38 | Roland Dreier 39 | .RI < rolandd@cisco.com > 40 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_event_type_str.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EVENT_TYPE_STR 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | .nf 6 | ibv_event_type_str \- Return string describing event_type enum value 7 | .sp 8 | ibv_node_type_str \- Return string describing node_type enum value 9 | .sp 10 | ibv_port_state_str \- Return string describing port_state enum value 11 | .SH "SYNOPSIS" 12 | .nf 13 | .B #include 14 | .sp 15 | .BI "const char *ibv_event_type_str(enum ibv_event_type " "event_type"); 16 | .sp 17 | .BI "const char *ibv_node_type_str(enum ibv_node_type " "node_type"); 18 | .sp 19 | .BI "const char *ibv_port_state_str(enum ibv_port_state " "port_state"); 20 | .fi 21 | .SH "DESCRIPTION" 22 | .B ibv_node_type_str() 23 | returns a string describing the node type enum value 24 | .IR node_type . 25 | .PP 26 | .B ibv_port_state_str() 27 | returns a string describing the port state enum value 28 | .IR port_state . 29 | .PP 30 | .B ibv_event_type_str() 31 | returns a string describing the event type enum value 32 | .IR event_type . 33 | .SH "RETURN VALUE" 34 | These functions return a constant string that describes the enum value 35 | passed as their argument. 36 | .SH "AUTHOR" 37 | .TP 38 | Roland Dreier 39 | .RI < rolandd@cisco.com > 40 | 41 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_exp_cqe_ts_to_ns.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_CQE_TS_TO_NS 3 2017-05-25 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_cqe_to_ns \- translate hw timestamp to nano-seconds 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "static inline uint64_t ibv_exp_cqe_ts_to_ns(struct ibv_exp_clock_info " "*clock_info" ", 11 | .BI " uint64_t " "ts"); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_exp_cqe_ts_to_ns() 15 | translates the HW timestamp value in \fBts\fR to nano-seconds using the provided translation 16 | object \fBclock_info\fR. See \fBibv_exp_query_values\fR for details how to create a 17 | translation object. 18 | .SH "RETURN VALUE" 19 | .B ibv_exp_cqe_ts_to_ns() 20 | returns ts translated to nano-seconds, or 0 on error (errno will contain the 21 | error value). 22 | .SH "NOTES" 23 | While the implementation may vary from hardware to hardware it is recommended to update the 24 | clock_info object at least once a second prior to its use in order to improve the accuracy 25 | of the translation. 26 | .SH "SEE ALSO" 27 | .BR ibv_exp_query_values (3), 28 | .SH "AUTHORS" 29 | .TP 30 | Eitan Rabin 31 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_exp_dealloc_mkey_list_memory.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_DEALLOC_MKEY_LIST_MOMORY 3 2014-08-28 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_dealloc_mkey_list_memory \- deallocates the struct that was allocated using ibv_exp_alloc_mkey_list_memory() 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_exp_dealloc_mkey_list_memory(struct ibv_exp_mkey_list_container " "*mem" ); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_exp_dealloc_mkey_list_memory() 14 | dallocates the argument 15 | .I mem 16 | that was allocated using ibv_exp_alloc_mkey_list_memory() 17 | .PP 18 | The argument 19 | .I mem 20 | is an ibv_exp_mkey_list_container struct and is defined in as follow: 21 | .PP 22 | .nf 23 | struct ibv_exp_list_container { 24 | .in +8 25 | uint32_t max_klm_list_size; /* maximum number of KLMs we can use to create the UMR */ 26 | struct ibv_context *context; /* RDMA device context */ 27 | .in -8 28 | }; 29 | 30 | .SH "RETURN VALUE" 31 | .B ibv_exp_dealloc_mkey_list_memory() 32 | returns 0 on success, the value of errno on failure (which indicates the failure reason). 33 | .PP 34 | .SH "SEE ALSO" 35 | .BR ibv_exp_alloc_mkey_list_memory (3) 36 | .SH "AUTHORS" 37 | .TP 38 | Haggai Abramovsky 39 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_exp_get_provider_func.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_GET_PROVIDER_FUNC 3 2014-04-23 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_get_provider_func \- gets provider's function pointer 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "void *ibv_exp_get_provider_func(struct ibv_context " "*context" ", enum ibv_exp_func_name " "name"); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_exp_get_provider_func() 14 | returns a function's pointer of function 15 | .I name 16 | associated with device context 17 | .I context. 18 | This verb can be used to achieve direct access to provider's data path functions. 19 | .PP 20 | .sp 21 | .fi 22 | .PP 23 | The argument 24 | .I name 25 | is an ibv_exp_func_name enum, as defined in . It should be one of the following values: 26 | .PP 27 | .nf 28 | .TP 29 | .B IBV_EXP_POST_SEND_FUNC \fR Get the exp_post_send's provider's function. 30 | .TP 31 | .B IBV_EXP_POLL_CQ_FUNC \fR Get the exp_poll_cq's provider's function. 32 | .TP 33 | .B IBV_POST_SEND_FUNC \fR Get the post_send's provider's function. 34 | .TP 35 | .B IBV_POLL_CQ_FUNC \fR Get the poll_cq's provider's function. 36 | .TP 37 | .B IBV_POST_RECV_FUNC \fR Get the post_recv's provider's function. 38 | 39 | .SH "RETURN VALUE" 40 | On success, 41 | .B ibv_exp_get_provider_func() 42 | returns a function's pointer, and null on error. 43 | .SH "AUTHORS" 44 | .TP 45 | Majd Dibbiny 46 | 47 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_exp_modify_wq.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_MODIFY_WQ 3 2015-08-04 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_modify_wq \- Modify a Work Queue (WQ). 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "struct int ibv_exp_modify_wq(struct ibv_exp_wq " "*wq," 11 | .BI " struct ibv_exp_wq_attr " "*wq_attr" ); 12 | .sp 13 | .fi 14 | .SH "DESCRIPTION" 15 | .B ibv_exp_modify_wq() 16 | modifys a WQ 17 | .I wq\fR. 18 | The argument 19 | .I wq_attr 20 | is an ibv_exp_wq_attr struct, as defined in . 21 | .PP 22 | .nf 23 | struct ibv_exp_wq_attr { 24 | .in +8 25 | uint32_t attr_mask; /* Use enum ibv_exp_wq_attr_mask */ 26 | enum ibv_exp_wq_state wq_state; /* Move to this state */ 27 | enum ibv_exp_wq_state curr_wq_state; /* Assume this is the current state */ 28 | uint16_t vlan_offloads; /* Change WQ's VLAN offloading behaviour */ 29 | .in -8 30 | }; 31 | .fi 32 | .PP 33 | The function 34 | .B ibv_exp_modify_wq() 35 | will modify the WQ based on the given 36 | .I wq_attr\fB\fR->attr_mask 37 | .SH "RETURN VALUE" 38 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 39 | .SH "SEE ALSO" 40 | .BR ibv_exp_create_wq (3), 41 | .BR ibv_exp_destroy_wq (3), 42 | .SH "AUTHORS" 43 | .TP 44 | Yishai Hadas 45 | .TP 46 | Noa Osherovich 47 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_exp_query_gid_attr.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_QUERY_GID_ATTR 3 2015-08-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_query_gid_attr \- query a GID attributes 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_exp_query_gid_attr(struct ibv_context " "*context" ", uint8_t " "port_num" , 11 | .BI " unsigned int " "index" ", struct ibv_exp_gid_attr " "*gid_attr" ); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_exp_query_gid_attr() 15 | returns the GID attributes in entry 16 | .I index 17 | of port 18 | .I port_num 19 | for device context 20 | .I context 21 | through the pointer 22 | .I gid_attr\fR. 23 | .PP 24 | The argument 25 | .I gid_attr 26 | is an ibv_exp_gid_attr struct, as defined in . 27 | .PP 28 | .nf 29 | struct ibv_exp_gid_attr { 30 | .in +8 31 | uint32_t comp_mask; /* Use ibv_exp_query_gid_attr */ 32 | enum ibv_exp_roce_gid_type type; /* The GID type */ 33 | union ibv_gid gid; /* The GID in the desired index of the specified port */ 34 | .in -8 35 | }; 36 | 37 | comp_mask is used as an input to the verb, to choose which of the fields should 38 | be queried, and as an output to indicate which fields were queried. 39 | 40 | .SH "RETURN VALUE" 41 | .B ibv_exp_query_gid_attr() 42 | returns 0 on success, and errno on failure. 43 | .SH "SEE ALSO" 44 | .BR ibv_query_gid (3), 45 | .SH "AUTHORS" 46 | .TP 47 | Majd Dibbiny 48 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_exp_query_mkey.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_QUERY_MKEY 3 2014-08-28 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_query_mkey \- query MR's attribute, for MRs created by ibv_exp_create_mr() function 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_exp_query_mkey(struct ibv_mr " "*mr" ", struct ibv_exp_mkey_attr " "*attr"); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_exp_query_mkey() 14 | gets the attributes of the memory region (MR) 15 | .I mr 16 | into the argument 17 | .I attr. 18 | .PP 19 | The argument 20 | .I attr 21 | is an ibv_exp_mkey_attr struct, as defined in . 22 | .PP 23 | .nf 24 | struct ibv_exp_mkey_attr { 25 | .in +8 26 | uint32_t max_klm_list_size; /* maximum number of MRs we can use to create the UMR */ 27 | uint32_t comp_mask; /* reserved for future growth (must be 0) */ 28 | .in -8 29 | }; 30 | .fi 31 | .PP 32 | The function 33 | .B ibv_exp_query_mkey() 34 | will update the 35 | .I attr 36 | struct with the actual \s-1mr\s0 values of the MR that were queried. 37 | .PP 38 | .SH "RETURN VALUE" 39 | .B ibv_exp_query_mkey() 40 | returns 0 on success, or the value of errno on failure. 41 | 42 | .SH "NOTES" 43 | .PP 44 | .SH "SEE ALSO" 45 | .BR ibv_exp_create_mr (3), 46 | .SH "AUTHORS" 47 | .TP 48 | Haggai Abramovsky 49 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_get_device_guid.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_GET_DEVICE_GUID 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_get_device_guid \- get an RDMA device's GUID 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "uint64_t ibv_get_device_guid(struct ibv_device " "*device" "); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_get_device_guid() 14 | returns the Global Unique IDentifier (GUID) of the RDMA device 15 | .I device\fR. 16 | .SH "RETURN VALUE" 17 | .B ibv_get_device_guid() 18 | returns the GUID of the device in network byte order. 19 | .SH "SEE ALSO" 20 | .BR ibv_get_device_list (3), 21 | .BR ibv_get_device_name (3), 22 | .BR ibv_open_device (3) 23 | .SH "AUTHORS" 24 | .TP 25 | Dotan Barak 26 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_get_device_name.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_GET_DEVICE_NAME 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_get_device_name \- get an RDMA device's name 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "const char *ibv_get_device_name(struct ibv_device " "*device" "); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_get_device_name() 14 | returns a human-readable name associated with the RDMA device 15 | .I device\fR. 16 | .SH "RETURN VALUE" 17 | .B ibv_get_device_name() 18 | returns a pointer to the device name, or NULL if the request fails. 19 | .SH "SEE ALSO" 20 | .BR ibv_get_device_list (3), 21 | .BR ibv_get_device_guid (3), 22 | .BR ibv_open_device (3) 23 | .SH "AUTHORS" 24 | .TP 25 | Dotan Barak 26 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_get_srq_num.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_GET_SRQ_NUM 3 2013-06-26 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_get_srq_num \- return srq number associated with the given shared receive queue (SRQ) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_get_srq_num(struct ibv_srq " "*srq" , 11 | .BI " uint32_t " "*srq_num" ); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_get_srq_num() 15 | return srq number associated with the given shared receive queue 16 | The argument 17 | .I srq 18 | is an ibv_srq struct, as defined in . 19 | .I srq_num 20 | is an output parameter that holds the returned srq number. 21 | .PP 22 | .nf 23 | .SH "RETURN VALUE" 24 | .B ibv_get_srq_num() 25 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 26 | .SH "SEE ALSO" 27 | .BR ibv_alloc_pd (3), 28 | .BR ibv_modify_srq (3), 29 | .BR ibv_create_srq_ex (3) 30 | .SH "AUTHORS" 31 | .TP 32 | Yishai Hadas 33 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_inc_rkey.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_INC_RKEY 3 2015-01-29 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | .nf 6 | ibv_inc_rkey \- creates a new rkey from the given one 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "uint32_t ibv_inc_rkey(uint32_t " "rkey" "); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_inc_rkey() 15 | Increases the 8 LSB of 16 | .I rkey 17 | and returns the new value. 18 | .PP 19 | .SH "RETURN VALUE" 20 | .B ibv_inc_rkey() 21 | returns the new rkey. 22 | .SH "NOTES" 23 | .PP 24 | The verb generates a new rkey that is different from the previous one on its tag part 25 | but has the same index (bits 0xffffff00). 26 | A use case for this verb can be to create a new rkey from a Memory window's rkey 27 | when binding it to a Memory region. 28 | .SH "AUTHORS" 29 | .TP 30 | Majd Dibbiny 31 | .TP 32 | Yishai Hadas 33 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_open_device.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_OPEN_DEVICE 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_open_device, ibv_close_device \- open and close an RDMA device context 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "struct ibv_context *ibv_open_device(struct ibv_device " "*device" "); 11 | .sp 12 | .BI "int ibv_close_device(struct ibv_context " "*context" "); 13 | .fi 14 | .SH "DESCRIPTION" 15 | .B ibv_open_device() 16 | opens the device 17 | .I device 18 | and creates a context for further use. 19 | .PP 20 | .B ibv_close_device() 21 | closes the device context 22 | .I context\fR. 23 | .SH "RETURN VALUE" 24 | .B ibv_open_device() 25 | returns a pointer to the allocated device context, or NULL if the request fails. 26 | .PP 27 | .B ibv_close_device() 28 | returns 0 on success, \-1 on failure. 29 | .SH "NOTES" 30 | .B ibv_close_device() 31 | does not release all the resources allocated using context 32 | .I context\fR. 33 | To avoid resource leaks, the user should release all associated 34 | resources before closing a context. 35 | .SH "SEE ALSO" 36 | .BR ibv_get_device_list (3), 37 | .BR ibv_query_device (3), 38 | .BR ibv_query_port (3), 39 | .BR ibv_query_gid (3), 40 | .BR ibv_query_pkey (3) 41 | .SH "AUTHORS" 42 | .TP 43 | Dotan Barak 44 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_query_gid.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_QUERY_GID 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_query_gid \- query an InfiniBand port's GID table 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_query_gid(struct ibv_context " "*context" ", uint8_t " "port_num" , 11 | .BI " int " "index" ", union ibv_gid " "*gid" ); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_query_gid() 15 | returns the GID value in entry 16 | .I index 17 | of port 18 | .I port_num 19 | for device context 20 | .I context 21 | through the pointer 22 | .I gid\fR. 23 | .SH "RETURN VALUE" 24 | .B ibv_query_gid() 25 | returns 0 on success, and \-1 on error. 26 | .SH "SEE ALSO" 27 | .BR ibv_open_device (3), 28 | .BR ibv_query_device (3), 29 | .BR ibv_query_port (3), 30 | .BR ibv_query_pkey (3) 31 | .SH "AUTHORS" 32 | .TP 33 | Dotan Barak 34 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_query_pkey.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_QUERY_PKEY 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_query_pkey \- query an InfiniBand port's P_Key table 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_query_pkey(struct ibv_context " "*context" ", uint8_t " "port_num" , 11 | .BI " int " "index" ", uint16_t " "*pkey" "); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_query_pkey() 15 | returns the P_Key value (in network byte order) in entry 16 | .I index 17 | of port 18 | .I port_num 19 | for device context 20 | .I context 21 | through the pointer 22 | .I pkey\fR. 23 | .SH "RETURN VALUE" 24 | .B ibv_query_pkey() 25 | returns 0 on success, and \-1 on error. 26 | .SH "SEE ALSO" 27 | .BR ibv_open_device (3), 28 | .BR ibv_query_device (3), 29 | .BR ibv_query_port (3), 30 | .BR ibv_query_gid (3) 31 | .SH "AUTHORS" 32 | .TP 33 | Dotan Barak 34 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_query_srq.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_QUERY_SRQ 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_query_srq \- get the attributes of a shared receive queue (SRQ) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_query_srq(struct ibv_srq " "*srq" ", struct ibv_srq_attr " "*srq_attr" ); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_query_srq() 14 | gets the attributes of the SRQ 15 | .I srq 16 | and returns them through the pointer 17 | .I srq_attr\fR. 18 | The argument 19 | .I srq_attr 20 | is an ibv_srq_attr struct, as defined in . 21 | .PP 22 | .nf 23 | struct ibv_srq_attr { 24 | .in +8 25 | uint32_t max_wr; /* maximum number of outstanding work requests (WRs) in the SRQ */ 26 | uint32_t max_sge; /* maximum number of scatter elements per WR */ 27 | uint32_t srq_limit; /* the limit value of the SRQ */ 28 | .in -8 29 | }; 30 | .fi 31 | .SH "RETURN VALUE" 32 | .B ibv_query_srq() 33 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 34 | .SH "NOTES" 35 | If the value returned for srq_limit is 0, then the SRQ limit reached 36 | ("low watermark") event is not (or no longer) armed, and no 37 | asynchronous events will be generated until the event is rearmed. 38 | .SH "SEE ALSO" 39 | .BR ibv_create_srq (3), 40 | .BR ibv_destroy_srq (3), 41 | .BR ibv_modify_srq (3) 42 | .SH "AUTHORS" 43 | .TP 44 | Dotan Barak 45 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_rate_to_mbps.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_RATE_TO_MBPS 3 2012-03-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | .nf 6 | ibv_rate_to_mbps \- convert IB rate enumeration to Mbit/sec 7 | .sp 8 | mbps_to_ibv_rate \- convert Mbit/sec to an IB rate enumeration 9 | .SH "SYNOPSIS" 10 | .nf 11 | .B #include 12 | .sp 13 | .BI "int ibv_rate_to_mbps(enum ibv_rate " "rate" "); 14 | .sp 15 | .BI "enum ibv_rate mbps_to_ibv_rate(int " "mbps" "); 16 | .fi 17 | .SH "DESCRIPTION" 18 | .B ibv_rate_to_mbps() 19 | converts the IB transmission rate enumeration 20 | .I rate 21 | to a number of Mbit/sec. For example, if 22 | .I rate 23 | is 24 | .BR IBV_RATE_5_GBPS\fR, 25 | the value 5000 will be returned (5 Gbit/sec = 5000 Mbit/sec). 26 | .PP 27 | .B mbps_to_ibv_rate() 28 | converts the number of Mbit/sec 29 | .I mult 30 | to an IB transmission rate enumeration. For example, if 31 | .I mult 32 | is 5000, the rate enumeration 33 | .BR IBV_RATE_5_GBPS 34 | will be returned. 35 | .SH "RETURN VALUE" 36 | .B ibv_rate_to_mbps() 37 | returns the number of Mbit/sec. 38 | .PP 39 | .B mbps_to_ibv_rate() 40 | returns the enumeration representing the IB transmission rate. 41 | .SH "SEE ALSO" 42 | .BR ibv_query_port (3) 43 | .SH "AUTHORS" 44 | .TP 45 | Dotan Barak 46 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_rate_to_mult.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_RATE_TO_MULT 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | .nf 6 | ibv_rate_to_mult \- convert IB rate enumeration to multiplier of 2.5 Gbit/sec 7 | .sp 8 | mult_to_ibv_rate \- convert multiplier of 2.5 Gbit/sec to an IB rate enumeration 9 | .SH "SYNOPSIS" 10 | .nf 11 | .B #include 12 | .sp 13 | .BI "int ibv_rate_to_mult(enum ibv_rate " "rate" "); 14 | .sp 15 | .BI "enum ibv_rate mult_to_ibv_rate(int " "mult" "); 16 | .fi 17 | .SH "DESCRIPTION" 18 | .B ibv_rate_to_mult() 19 | converts the IB transmission rate enumeration 20 | .I rate 21 | to a multiple of 2.5 Gbit/sec (the base rate). For example, if 22 | .I rate 23 | is 24 | .BR IBV_RATE_5_GBPS\fR, 25 | the value 2 will be returned (5 Gbit/sec = 2 * 2.5 Gbit/sec). 26 | .PP 27 | .B mult_to_ibv_rate() 28 | converts the multiplier value (of 2.5 Gbit/sec) 29 | .I mult 30 | to an IB transmission rate enumeration. For example, if 31 | .I mult 32 | is 2, the rate enumeration 33 | .BR IBV_RATE_5_GBPS 34 | will be returned. 35 | .SH "RETURN VALUE" 36 | .B 37 | ibv_rate_to_mult() 38 | returns the multiplier of the base rate 2.5 Gbit/sec. 39 | .PP 40 | .B mult_to_ibv_rate() 41 | returns the enumeration representing the IB transmission rate. 42 | .SH "SEE ALSO" 43 | .BR ibv_query_port (3) 44 | .SH "AUTHORS" 45 | .TP 46 | Dotan Barak 47 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_req_notify_cq.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_REQ_NOTIFY_CQ 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_req_notify_cq \- request completion notification on a completion queue (CQ) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_req_notify_cq(struct ibv_cq " "*cq" ", int " "solicited_only" "); 11 | .SH "DESCRIPTION" 12 | .B ibv_req_notify_cq() 13 | requests a completion notification on the completion queue (CQ) 14 | .I cq\fR. 15 | .PP 16 | Upon the addition of a new CQ entry (CQE) to 17 | .I cq\fR, 18 | a completion event will be added to the completion channel associated 19 | with the CQ. 20 | If the argument 21 | .I solicited_only 22 | is zero, a completion event is generated for any new CQE. If 23 | .I solicited_only 24 | is non\-zero, an event is only generated for a new CQE with that is 25 | considered "solicited." A CQE is solicited if it is a receive 26 | completion for a message with the Solicited Event header bit set, or 27 | if the status is not successful. All other successful receive 28 | completions, or any successful send completion is unsolicited. 29 | .SH "RETURN VALUE" 30 | .B 31 | ibv_req_notify_cq() 32 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 33 | .SH "NOTES" 34 | The request for notification is "one shot." Only one completion event 35 | will be generated for each call to 36 | .B ibv_req_notify_cq()\fR. 37 | .SH "SEE ALSO" 38 | .BR ibv_create_comp_channel (3), 39 | .BR ibv_create_cq (3), 40 | .BR ibv_get_cq_event (3) 41 | .SH "AUTHORS" 42 | .TP 43 | Dotan Barak 44 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/man/ibv_resize_cq.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_RESIZE_CQ 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_resize_cq \- resize a completion queue (CQ) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_resize_cq(struct ibv_cq " "*cq" ", int " "cqe" "); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_resize_cq() 14 | resizes the completion queue (CQ) 15 | .I cq 16 | to have at least 17 | .I cqe 18 | entries. 19 | .I cqe 20 | must be at least the number of unpolled entries in the CQ 21 | .I cq\fR. 22 | If 23 | .I cqe 24 | is a valid value less than the current CQ size, 25 | .B ibv_resize_cq() 26 | may not do anything, since this function is only guaranteed to resize 27 | the CQ to a size at least as big as the requested size. 28 | .SH "RETURN VALUE" 29 | .B ibv_resize_cq() 30 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 31 | .SH "NOTES" 32 | .B ibv_resize_cq() 33 | may assign a CQ size greater than or equal to the requested size. 34 | The cqe member of 35 | .I cq 36 | will be updated to the actual size. 37 | .SH "SEE ALSO" 38 | .BR ibv_create_cq (3) 39 | .BR ibv_destroy_cq (3) 40 | .SH "AUTHORS" 41 | .TP 42 | Dotan Barak 43 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/src/.gitignore: -------------------------------------------------------------------------------- 1 | *.la 2 | .dirstamp 3 | .libs 4 | -------------------------------------------------------------------------------- /libibverbs-41mlnx1/util/util.h: -------------------------------------------------------------------------------- 1 | /* GPLv2 or OpenIB.org BSD (MIT) See COPYING file */ 2 | #ifndef UTIL_UTIL_H 3 | #define UTIL_UTIL_H 4 | 5 | /* Return true if the snprintf succeeded, false if there was truncation or 6 | * error */ 7 | #define check_snprintf(buf, len, fmt, ...) \ 8 | ({ \ 9 | int rc = snprintf(buf, len, fmt, ##__VA_ARGS__); \ 10 | (rc < len && rc >= 0); \ 11 | }) 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /libmlx4/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /libmlx4/AUTHORS: -------------------------------------------------------------------------------- 1 | Roland Dreier 2 | -------------------------------------------------------------------------------- /libmlx4/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CFLAGS = -g -Wall -Werror -D_GNU_SOURCE 2 | 3 | mlx4_version_script = @MLX4_VERSION_SCRIPT@ 4 | 5 | MLX4_SOURCES = src/buf.c src/cq.c src/dbrec.c src/mlx4.c src/qp.c \ 6 | src/srq.c src/verbs.c src/verbs_exp.c src/massdal.c src/prng.c \ 7 | src/countmin.c src/pacer.c src/get_clock.c 8 | noinst_HEADERS = src/bitmap.h src/doorbell.h src/list.h src/mlx4-abi.h src/mlx4_exp.h src/mlx4.h src/mmio.h src/wqe.h \ 9 | src/massdal.h src/prng.c src/countmin.h src/get_clock.h src/pacer.h 10 | 11 | if HAVE_IBV_DEVICE_LIBRARY_EXTENSION 12 | lib_LTLIBRARIES = 13 | else 14 | mlx4lib_LTLIBRARIES = 15 | endif 16 | 17 | if HAVE_IBV_DEVICE_LIBRARY_EXTENSION 18 | lib_LTLIBRARIES += src/libmlx4.la 19 | src_libmlx4_la_SOURCES = $(MLX4_SOURCES) 20 | src_libmlx4_la_LDFLAGS = -avoid-version -release @IBV_DEVICE_LIBRARY_EXTENSION@ \ 21 | $(mlx4_version_script) 22 | mlx4confdir = $(sysconfdir)/libibverbs.d 23 | mlx4conf_DATA = mlx4.driver 24 | else 25 | mlx4libdir = $(libdir)/infiniband 26 | mlx4lib_LTLIBRARIES += src/mlx4.la 27 | src_mlx4_la_SOURCES = $(MLX4_SOURCES) 28 | src_mlx4_la_LDFLAGS = -avoid-version -module $(mlx4_version_script) 29 | endif 30 | 31 | EXTRA_DIST = src/mlx4.map libmlx4.spec.in mlx4.driver 32 | EXTRA_DIST += debian 33 | EXTRA_DIST += autogen.sh 34 | 35 | dist-hook: libmlx4.spec 36 | cp libmlx4.spec $(distdir) 37 | -------------------------------------------------------------------------------- /libmlx4/README: -------------------------------------------------------------------------------- 1 | Modified from libmlx4-1.2.1mlnx1 included in MLNX_OFED_SRC-4.0-2.0.0.1 2 | 3 | Added file(s): 4 | verbs_pacer.h qp_pacer.h pacer.h 5 | -------------------------------------------------------------------------------- /libmlx4/autogen.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh -eE 2 | 3 | set -x 4 | aclocal -I config 5 | libtoolize --force --copy 6 | autoheader 7 | automake --foreign --add-missing --copy 8 | autoconf 9 | -------------------------------------------------------------------------------- /libmlx4/config/.gitignore: -------------------------------------------------------------------------------- 1 | mkinstalldirs 2 | depcomp 3 | compile 4 | missing 5 | config.guess 6 | config.sub 7 | ltmain.sh 8 | install-sh 9 | -------------------------------------------------------------------------------- /libmlx4/debian/compat: -------------------------------------------------------------------------------- 1 | 7 2 | -------------------------------------------------------------------------------- /libmlx4/debian/libmlx4-1.install: -------------------------------------------------------------------------------- 1 | usr/lib/libmlx4-rdmav2.so /usr/lib/libibverbs/ 2 | etc/libibverbs.d/mlx4.driver 3 | -------------------------------------------------------------------------------- /libmlx4/debian/libmlx4-dev.install: -------------------------------------------------------------------------------- 1 | usr/lib/libmlx4.a 2 | -------------------------------------------------------------------------------- /libmlx4/debian/patches/driver-plugin-directory.patch: -------------------------------------------------------------------------------- 1 | Description: Tell libibverbs to look in /usr/lib/libibverbs for plugin library 2 | Author: Roland Dreier 3 | 4 | Index: libmlx4.git/mlx4.driver 5 | =================================================================== 6 | --- libmlx4.git.orig/mlx4.driver 2011-07-06 01:27:34.521058451 -0700 7 | +++ libmlx4.git/mlx4.driver 2011-07-06 01:27:47.051074172 -0700 8 | @@ -1 +1 @@ 9 | -driver mlx4 10 | +driver /usr/lib/libibverbs/libmlx4 11 | -------------------------------------------------------------------------------- /libmlx4/debian/patches/series: -------------------------------------------------------------------------------- 1 | driver-plugin-directory.patch 2 | -------------------------------------------------------------------------------- /libmlx4/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- mode: makefile; coding: utf-8 -*- 3 | 4 | %: 5 | dh $@ 6 | 7 | override_dh_strip: 8 | dh_strip --dbg-package=libmlx4-1-dbg 9 | 10 | override_dh_makeshlibs: 11 | -------------------------------------------------------------------------------- /libmlx4/debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) 2 | -------------------------------------------------------------------------------- /libmlx4/debian/watch: -------------------------------------------------------------------------------- 1 | version=3 2 | opts="uversionmangle=s/-rc/~rc/" \ 3 | http://www.openfabrics.org/downloads/mlx4/libmlx4-(.+)\.tar\.gz 4 | -------------------------------------------------------------------------------- /libmlx4/mlx4.driver: -------------------------------------------------------------------------------- 1 | driver mlx4 2 | -------------------------------------------------------------------------------- /libmlx4/src/.gitignore: -------------------------------------------------------------------------------- 1 | *.la 2 | .dirstamp 3 | .libs 4 | -------------------------------------------------------------------------------- /libmlx4/src/countmin.h: -------------------------------------------------------------------------------- 1 | // Two different structures: 2 | // 1 -- The basic CM Sketch (removed by Yue Tan) 3 | // 2 -- The hierarchical CM Sketch: with log n levels, for range sums etc. 4 | #ifndef COUNTMIN_H 5 | #define COUNTMIN_H 6 | 7 | #include "queue.h" 8 | #define min(x,y) ((x) < (y) ? (x) : (y)) 9 | #define max(x,y) ((x) > (y) ? (x) : (y)) 10 | 11 | typedef struct CMH_type{ 12 | int U; // size of the universe in bits 13 | int gran; // granularity: eg 1, 4 or 8 bits 14 | int levels; // function of U and gran 15 | int freelim; // up to which level to keep exact counts 16 | int depth; 17 | int width; 18 | int ** counts; 19 | int count; 20 | int windowSize; 21 | Queue *items; 22 | unsigned int **hasha, * *hashb; 23 | } CMH_type; 24 | 25 | extern CMH_type * CMH_Init(int width, int depth, int U, int gran, int windowSize); 26 | extern void CMH_Destroy(CMH_type *cmh); 27 | // extern int CMH_Size(CMH_type *cmh); 28 | extern int CMH_Update(CMH_type *cmh, int item); 29 | extern int CMH_Quantile(CMH_type *cmh, double frac); 30 | 31 | #endif -------------------------------------------------------------------------------- /libmlx4/src/massdal.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | extern void StartTheClock(); 4 | extern long StopTheClock(); 5 | extern int MedSelect(int, int, int[]); 6 | extern long LMedSelect(int, int, long[]); 7 | extern long long LLMedSelect(int, int, long long[]); 8 | extern double DMedSelect(int, int, double[]); 9 | extern void CheckMemory(void *); 10 | -------------------------------------------------------------------------------- /libmlx4/src/mlx4.map: -------------------------------------------------------------------------------- 1 | { 2 | global: 3 | openib_driver_init; 4 | local: *; 5 | }; 6 | -------------------------------------------------------------------------------- /libmlx4/src/prng.h: -------------------------------------------------------------------------------- 1 | // Probabilistic Random Number Generators 2 | // Collected from various sources by Graham Cormode, 2000-2003 3 | // 4 | 5 | #include 6 | 7 | #ifndef _PRNG 8 | 9 | #define MOD 2147483647 10 | #define HL 31 11 | 12 | extern long hash31(long long, long long, long long); 13 | extern long fourwise(long long, long long, long long, long long, long long); 14 | 15 | #define KK 17 16 | #define NTAB 32 17 | 18 | typedef struct prng_type{ 19 | int usenric; // which prng to use 20 | float scale; /* 2^(- integer size) */ 21 | long floatidum; 22 | long intidum; // needed to keep track of where we are in the 23 | // nric random number generators 24 | long iy; 25 | long iv[NTAB]; 26 | /* global variables */ 27 | unsigned long randbuffer[KK]; /* history buffer */ 28 | int r_p1, r_p2; /* indexes into history buffer */ 29 | int iset; 30 | double gset; 31 | } prng_type; 32 | 33 | #define _PRNG 1 34 | 35 | #endif 36 | 37 | extern long prng_int(prng_type *); 38 | extern float prng_float(prng_type *); 39 | extern prng_type * prng_Init(long, int); 40 | extern void prng_Destroy(prng_type * prng); 41 | void prng_Reseed(prng_type *, long); 42 | 43 | //extern long double zipf(double, long) ; 44 | extern double fastzipf(double, long, double, prng_type *); 45 | extern double zeta(long, double); 46 | extern double prng_normal(prng_type * prng); 47 | extern double prng_stable(prng_type * prng, double); 48 | 49 | //extern double stable(double); // stable distributions 50 | //extern double stabledevd(float) ; 51 | //extern long double stabledevl(float) ; 52 | //extern double altstab(double); 53 | 54 | -------------------------------------------------------------------------------- /libmlx4/src/qp_pacer.h: -------------------------------------------------------------------------------- 1 | #ifndef QP_PACER_H 2 | #define QP_PACER_H 3 | 4 | #include "pacer.h" 5 | #include /* For _mm_pause */ // remember to take off this header file and __mm_pause() when running on ConFlux 6 | 7 | //static inline void cpu_relax() __attribute__((always_inline)); 8 | //static inline void cpu_relax() { 9 | //#if (COMPILER == MVCC) 10 | // _mm_pause(); 11 | //#elif (COMPILER == GCC || COMPILER == LLVM) 12 | // asm("pause"); 13 | //#endif 14 | //} 15 | 16 | static void contact_pacer_read() { 17 | /* prepare unix domain socket */ 18 | char *sock_path = get_sock_path(); 19 | unsigned int s, len; 20 | struct sockaddr_un remote; 21 | char str[MSG_LEN]; 22 | 23 | if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) { 24 | perror("socket"); 25 | exit(1); 26 | } 27 | 28 | printf("Contacting pacer...\n"); 29 | 30 | remote.sun_family = AF_UNIX; 31 | strcpy(remote.sun_path, sock_path); 32 | free(sock_path); 33 | len = strlen(remote.sun_path) + sizeof(remote.sun_family); 34 | if (connect(s, (struct sockaddr *)&remote, len) == -1) { 35 | perror("connect"); 36 | exit(1); 37 | } 38 | 39 | printf("Sending read message...\n"); 40 | strcpy(str, "read"); 41 | if (send(s, str, strlen(str), 0) == -1) { 42 | perror("send: read"); 43 | exit(1); 44 | } 45 | 46 | close(s); 47 | } 48 | #endif 49 | -------------------------------------------------------------------------------- /libmlx4/src/queue.h: -------------------------------------------------------------------------------- 1 | #ifndef QUEUE_H 2 | #define QUEUE_H 3 | 4 | #include 5 | #include 6 | 7 | typedef unsigned long long cycles_t; 8 | 9 | // O(1) queue implementation 10 | typedef struct { 11 | int read; 12 | int write; 13 | int size; 14 | cycles_t *array; 15 | } Queue; 16 | 17 | static inline Queue *queue_init(int size) 18 | { 19 | Queue *q = calloc(1, sizeof(Queue)); 20 | q->array = calloc(size + 1, sizeof(int)); 21 | q->read = 0; 22 | q->write = 0; 23 | q->size = size + 1; 24 | return q; 25 | } 26 | 27 | static inline void queue_push(Queue *q, cycles_t a) 28 | { 29 | if (q->read == (q->write + 1) % q->size) 30 | printf("QUEUE_FULL_ERROR\n"); 31 | q->array[q->write] = a; 32 | q->write = (q->write + 1) % q->size; 33 | } 34 | 35 | static inline cycles_t queue_pop(Queue *q) 36 | { 37 | if (q->read == q->write) 38 | printf("QUEUE_EMPTY_ERROR\n"); 39 | cycles_t tmp = q->array[q->read]; 40 | q->read = (q->read + 1) % q->size; 41 | return tmp; 42 | } 43 | 44 | static inline void queue_free(Queue *q) 45 | { 46 | free(q->array); 47 | free(q); 48 | } 49 | 50 | #endif -------------------------------------------------------------------------------- /libmlx5-41mlnx1/.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.lo 3 | configure 4 | Makefile.in 5 | autom4te.cache 6 | aclocal.m4 7 | stamp-h.in 8 | config.h.in 9 | config.log 10 | config.h 11 | .libs 12 | .deps 13 | libibverbs.spec 14 | Makefile 15 | config.status 16 | stamp-h1 17 | libtool 18 | *cscope* 19 | *.spec 20 | *.swp 21 | *.swo 22 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/.gitreview: -------------------------------------------------------------------------------- 1 | [gerrit] 2 | host=r-webdev02.lab.mtl.com 3 | port=29418 4 | project=connect-ib/libmlx5.git 5 | defaultbranch=mlnx_ofed_2_1 6 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/AUTHORS: -------------------------------------------------------------------------------- 1 | Eli Cohen 2 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/README: -------------------------------------------------------------------------------- 1 | Introduction 2 | ============ 3 | 4 | Original file content erased. Put there something after finish coding... 5 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -exE 2 | 3 | aclocal -I config 4 | libtoolize --force --copy 5 | autoheader 6 | automake --foreign --add-missing --copy 7 | autoconf 8 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/config/.gitignore: -------------------------------------------------------------------------------- 1 | mkinstalldirs 2 | depcomp 3 | compile 4 | missing 5 | config.guess 6 | config.sub 7 | ltmain.sh 8 | install-sh 9 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/debian/compat: -------------------------------------------------------------------------------- 1 | 7 2 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/debian/libmlx5-1.install: -------------------------------------------------------------------------------- 1 | usr/lib/libmlx5*.so.* 2 | etc/libibverbs.d/mlx5.driver 3 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/debian/libmlx5-1.links: -------------------------------------------------------------------------------- 1 | usr/lib/libmlx5.so.1.0.0 usr/lib/libibverbs/libmlx5-rdmav2.so 2 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/debian/libmlx5-dev.install: -------------------------------------------------------------------------------- 1 | usr/lib/libmlx5.a 2 | usr/lib/libmlx5.so 3 | usr/include/infiniband 4 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/debian/patches/driver-plugin-directory.patch: -------------------------------------------------------------------------------- 1 | Description: Tell libibverbs to look in /usr/lib/libibverbs for plugin library 2 | Author: Roland Dreier 3 | 4 | Index: libmlx5.git/mlx5.driver 5 | =================================================================== 6 | --- libmlx5.git.orig/mlx5.driver 2011-07-06 01:27:34.521058451 -0700 7 | +++ libmlx5.git/mlx5.driver 2011-07-06 01:27:47.051074172 -0700 8 | @@ -1 +1 @@ 9 | -driver mlx5 10 | +driver /usr/lib/libibverbs/libmlx5 11 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/debian/patches/series: -------------------------------------------------------------------------------- 1 | driver-plugin-directory.patch 2 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- mode: makefile; coding: utf-8 -*- 3 | 4 | %: 5 | dh $@ 6 | 7 | override_dh_strip: 8 | dh_strip --dbg-package=libmlx5-1-dbg 9 | 10 | override_dh_makeshlibs: 11 | dh_makeshlibs -V 'libmlx5-1 (>= 1.1.2)' 12 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) 2 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/debian/watch: -------------------------------------------------------------------------------- 1 | version=3 2 | opts="uversionmangle=s/-rc/~rc/" \ 3 | http://www.openfabrics.org/downloads/mlx5/libmlx5-(.+)\.tar\.gz 4 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/mlx5.driver: -------------------------------------------------------------------------------- 1 | driver mlx5 2 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/scripts/expose_libmlx5_headers/defines.txt: -------------------------------------------------------------------------------- 1 | MLX5_CQ_DB_REQ_NOT_SOL 2 | MLX5_CQ_DB_REQ_NOT 3 | MLX5E_CQE_FORMAT_MASK 4 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/scripts/expose_libmlx5_headers/structures.txt: -------------------------------------------------------------------------------- 1 | mlx5_resource 2 | mlx5_wqe_srq_next_seg 3 | mlx5_wqe_data_seg 4 | mlx5_eqe_comp 5 | mlx5_eqe_qp_srq 6 | mlx5_wqe_ctrl_seg 7 | mlx5_wqe_xrc_seg 8 | mlx5_wqe_masked_atomic_seg 9 | mlx5_base_av 10 | mlx5_grh_av 11 | mlx5_wqe_av 12 | mlx5_wqe_datagram_seg 13 | mlx5_wqe_raddr_seg 14 | mlx5_wqe_atomic_seg 15 | mlx5_wqe_inl_data_seg 16 | mlx5_wqe_umr_ctrl_seg 17 | mlx5_seg_set_psv 18 | mlx5_seg_get_psv 19 | mlx5_seg_check_psv 20 | mlx5_rwqe_sig 21 | mlx5_wqe_signature_seg 22 | mlx5_wqe_inline_seg 23 | mlx5_wqe_wait_en_seg 24 | mlx5_err_cqe 25 | mlx5_tm_cqe 26 | mlx5_cqe64 27 | mlx5_spinlock 28 | mlx5_lock 29 | mlx5_numa_req 30 | mlx5_peer_direct_mem 31 | mlx5_buf 32 | general_data_hot 33 | data_seg_data 34 | ctrl_seg_data 35 | mpw_data 36 | general_data_warm 37 | odp_data 38 | mlx5_wq_recv_send_enable 39 | mlx5_mini_cqe8 40 | mlx5_cq 41 | mlx5_srq 42 | mlx5_wq 43 | mlx5_bf 44 | mlx5_qp 45 | mlx5_ah 46 | mlx5_rwq 47 | mlx5_wqe_eth_seg 48 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/src/.gitignore: -------------------------------------------------------------------------------- 1 | *.la 2 | .dirstamp 3 | .libs 4 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/src/mlx5.map: -------------------------------------------------------------------------------- 1 | { 2 | global: 3 | openib_driver_init; 4 | mlx5dv_query_device; 5 | mlx5dv_init_obj; 6 | local: *; 7 | }; 8 | -------------------------------------------------------------------------------- /libmlx5-41mlnx1/src/qp_pacer.h: -------------------------------------------------------------------------------- 1 | #ifndef QP_PACER_H 2 | #define QP_PACER_H 3 | 4 | #include "pacer.h" 5 | 6 | static void contact_pacer_read() { 7 | /* prepare unix domain socket */ 8 | char *sock_path = get_sock_path(); 9 | unsigned int s, len; 10 | struct sockaddr_un remote; 11 | char str[MSG_LEN]; 12 | 13 | if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) { 14 | perror("socket"); 15 | exit(1); 16 | } 17 | 18 | printf("Contacting pacer...\n"); 19 | 20 | remote.sun_family = AF_UNIX; 21 | strcpy(remote.sun_path, sock_path); 22 | free(sock_path); 23 | len = strlen(remote.sun_path) + sizeof(remote.sun_family); 24 | if (connect(s, (struct sockaddr *)&remote, len) == -1) { 25 | perror("connect"); 26 | exit(1); 27 | } 28 | 29 | printf("Sending read message...\n"); 30 | strcpy(str, "read"); 31 | if (send(s, str, strlen(str), 0) == -1) { 32 | perror("send: read"); 33 | exit(1); 34 | } 35 | 36 | close(s); 37 | } 38 | #endif 39 | -------------------------------------------------------------------------------- /new_busy_poll/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/new_busy_poll/.DS_Store -------------------------------------------------------------------------------- /new_busy_poll/COPYING: -------------------------------------------------------------------------------- 1 | This software is available to you under a choice of one of two 2 | licenses. You may choose to be licensed under the terms of the GNU 3 | General Public License (GPL) Version 2, available from the file 4 | COPYING in the main directory of this source tree, or the 5 | OpenIB.org BSD license below: 6 | 7 | Redistribution and use in source and binary forms, with or 8 | without modification, are permitted provided that the following 9 | conditions are met: 10 | 11 | - Redistributions of source code must retain the above 12 | copyright notice, this list of conditions and the following 13 | disclaimer. 14 | 15 | - Redistributions in binary form must reproduce the above 16 | copyright notice, this list of conditions and the following 17 | disclaimer in the documentation and/or other materials 18 | provided with the distribution. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 22 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 24 | BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 25 | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 26 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 27 | SOFTWARE. 28 | 29 | -------------------------------------------------------------------------------- /new_busy_poll/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -g -D_GNU_SOURCE -O2 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := write_bw send_bw 8 | 9 | all: ${APPS} 10 | 11 | write_bw: write_bw.o get_clock.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | send_bw: send_bw.o get_clock.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /new_busy_poll/Makefile_CP: -------------------------------------------------------------------------------- 1 | TESTS = write_bw_postlist rdma_lat rdma_bw send_lat send_bw write_lat write_bw read_lat read_bw 2 | UTILS = clock_test 3 | 4 | all: ${TESTS} ${UTILS} 5 | 6 | CFLAGS += -Wall -g -D_GNU_SOURCE -O2 7 | EXTRA_FILES = get_clock.c 8 | EXTRA_HEADERS = get_clock.h 9 | #The following seems to help GNU make on some platforms 10 | LOADLIBES += 11 | LDFLAGS += 12 | 13 | ${TESTS}: LOADLIBES += -libverbs -lrdmacm 14 | 15 | ${TESTS} ${UTILS}: %: %.c ${EXTRA_FILES} ${EXTRA_HEADERS} 16 | $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $< ${EXTRA_FILES} $(LOADLIBES) $(LDLIBS) -o ib_$@ 17 | clean: 18 | $(foreach fname,${TESTS} ${UTILS}, rm -f ib_${fname}) 19 | .DELETE_ON_ERROR: 20 | .PHONY: all clean 21 | -------------------------------------------------------------------------------- /new_busy_poll/Makefiletemp: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -g -D_GNU_SOURCE -O2 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := write_bw 8 | 9 | all: ${APPS} 10 | 11 | 12 | write_bw: write_bw.o get_clock.o 13 | ${LD} -o $@ $^ ${LDLIBS} 14 | 15 | clean: 16 | rm -f *.o ${APPS} 17 | 18 | -------------------------------------------------------------------------------- /new_busy_poll/clock_test.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "get_clock.h" 4 | 5 | int main() 6 | { 7 | int no_cpu_freq_fail = 0; 8 | double mhz; 9 | mhz = get_cpu_mhz(no_cpu_freq_fail); 10 | cycles_t c1, c2; 11 | 12 | if (!mhz) { 13 | printf("Unable to calibrate cycles. Exiting.\n"); 14 | return 2; 15 | } 16 | 17 | printf("Type CTRL-C to cancel.\n"); 18 | for(;;) 19 | { 20 | c1 = get_cycles(); 21 | sleep(1); 22 | c2 = get_cycles(); 23 | printf("1 sec = %g usec\n", (c2 - c1) / mhz); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /new_busy_poll/run.sh: -------------------------------------------------------------------------------- 1 | ./write_bw 192.168.0.28 -F -o temp -s 10000 -n 1000 2 | -------------------------------------------------------------------------------- /new_busy_poll/runme: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # trivial script to launch a server/client test with ssh 3 | # must be launched from client 4 | # example: runme 10.0.0.1 /home/perftest/rdma_lat -s 10 5 | 6 | if [ $# -lt 1 ] ; then 7 | echo "Usage: runme " 8 | exit 3 9 | fi 10 | 11 | server=$1 12 | shift 13 | ssh $server $* & 14 | #give server time to start 15 | sleep 2 16 | $* $server 17 | status=$? 18 | wait 19 | exit $status 20 | -------------------------------------------------------------------------------- /new_busy_poll/sftp-config.json: -------------------------------------------------------------------------------- 1 | { 2 | // The tab key will cycle through the settings when first created 3 | // Visit http://wbond.net/sublime_packages/sftp/settings for help 4 | 5 | // sftp, ftp or ftps 6 | "type": "sftp", 7 | 8 | "save_before_upload": true, 9 | "upload_on_save": false, 10 | "sync_down_on_open": false, 11 | "sync_skip_deletes": false, 12 | "sync_same_age": true, 13 | "confirm_downloads": false, 14 | "confirm_sync": true, 15 | "confirm_overwrite_newer": false, 16 | 17 | "host": "apt063.apt.emulab.net", 18 | "user": "yiwenzhg", 19 | //"password": "password", 20 | //"port": "22", 21 | 22 | "remote_path": "/users/yiwenzhg/test_new/", 23 | "ignore_regexes": [ 24 | "\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json", 25 | "sftp-settings\\.json", "/venv/", "\\.svn/", "\\.hg/", "\\.git/", 26 | "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini" 27 | ], 28 | //"file_permissions": "664", 29 | //"dir_permissions": "775", 30 | 31 | //"extra_list_connections": 0, 32 | 33 | "connect_timeout": 30, 34 | //"keepalive": 120, 35 | //"ftp_passive_mode": true, 36 | //"ftp_obey_passive_host": false, 37 | //"ssh_key_file": "~/.ssh/id_rsa", 38 | //"sftp_flags": ["-F", "/path/to/ssh_config"], 39 | 40 | //"preserve_modification_times": false, 41 | //"remote_time_offset_in_hours": 0, 42 | //"remote_encoding": "utf-8", 43 | //"remote_locale": "C", 44 | //"allow_config_upload": false, 45 | } 46 | -------------------------------------------------------------------------------- /new_busy_poll/write_bw_old: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/new_busy_poll/write_bw_old -------------------------------------------------------------------------------- /parse_new/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/parse_new/.DS_Store -------------------------------------------------------------------------------- /parse_new/get_median: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/parse_new/get_median -------------------------------------------------------------------------------- /parse_new/get_median_49s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/parse_new/get_median_49s -------------------------------------------------------------------------------- /parse_new/main3.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/parse_new/main3.o -------------------------------------------------------------------------------- /parse_new/out.txt: -------------------------------------------------------------------------------- 1 | median latency: 227.09 2 | total sample points: 1000 3 | 99th index: 989 4 | 99th percentile latency: 237 5 | -------------------------------------------------------------------------------- /parse_new/test.txt: -------------------------------------------------------------------------------- 1 | median latency: 230 2 | total sample points: 1000 3 | 99th index: 989 4 | 99th percentile latency: 239 5 | -------------------------------------------------------------------------------- /parse_new/testin4.txt: -------------------------------------------------------------------------------- 1 | Time(us) Latency Task_done 2 | 0 8927 77 1 3 | 1 9702 20 2 4 | 2 9716 14 3 5 | 3 9729 12 4 6 | 4 9739 10 5 7 | 5 9749 10 6 8 | 6 9758 9 7 9 | 7 9768 10 8 10 | 8 9777 9 9 11 | 9 9787 9 10 12 | 10 9796 9 11 13 | 11 9806 9 12 14 | 12 9816 10 13 15 | 13 9825 9 14 16 | 14 9835 10 15 17 | 15 9844 9 16 18 | 16 9854 10 17 19 | 17 9863 9 18 20 | 18 9873 9 19 21 | -------------------------------------------------------------------------------- /perftest-4.2/.gitignore: -------------------------------------------------------------------------------- 1 | # Object Files 2 | *.o 3 | *.lo 4 | *.la 5 | 6 | # Libraries 7 | *.lib 8 | *.a 9 | .libs 10 | 11 | # Shared objects 12 | *.so 13 | *.so.* 14 | 15 | # Dependencies 16 | .dirstamp 17 | .deps 18 | 19 | # Automake 20 | Makefile 21 | Makefile.in 22 | aclocal.m4 23 | autom4te.cache/ 24 | config.h 25 | config.h.in 26 | config.log 27 | config.status 28 | config/ 29 | configure 30 | libtool 31 | m4/ 32 | stamp-h1 33 | 34 | # Project/Eclipse 35 | .cproject 36 | .project 37 | 38 | #Ctags 39 | tags 40 | 41 | #Programs 42 | ib_atomic_bw 43 | ib_atomic_lat 44 | ib_read_bw 45 | ib_read_lat 46 | ib_send_bw 47 | ib_send_lat 48 | ib_write_bw 49 | ib_write_lat 50 | raw_ethernet_bw 51 | raw_ethernet_lat 52 | 53 | #Debian Stuff 54 | debian/compat 55 | debian/*.log 56 | debian/files 57 | debian/perftest 58 | -------------------------------------------------------------------------------- /perftest-4.2/COPYING: -------------------------------------------------------------------------------- 1 | This software is available to you under a choice of one of two 2 | licenses. You may choose to be licensed under the terms of the GNU 3 | General Public License (GPL) Version 2, available from the file 4 | COPYING in the main directory of this source tree, or the 5 | OpenIB.org BSD license below: 6 | 7 | Redistribution and use in source and binary forms, with or 8 | without modification, are permitted provided that the following 9 | conditions are met: 10 | 11 | - Redistributions of source code must retain the above 12 | copyright notice, this list of conditions and the following 13 | disclaimer. 14 | 15 | - Redistributions in binary form must reproduce the above 16 | copyright notice, this list of conditions and the following 17 | disclaimer in the documentation and/or other materials 18 | provided with the distribution. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 22 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 24 | BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 25 | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 26 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 27 | SOFTWARE. 28 | 29 | -------------------------------------------------------------------------------- /perftest-4.2/README_sparc: -------------------------------------------------------------------------------- 1 | ======================================= 2 | Build instructions: 3 | ======================================= 4 | 5 | # ./autogen.sh 6 | 7 | # ./configure --build= --host=sparc64-redhat-linux-gnu 8 | --target=sparc64-linux --program-prefix= --prefix=/usr 9 | --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin 10 | --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include 11 | --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var 12 | --sharedstatedir=/var/lib --mandir=/usr/share/man 13 | --infodir=/usr/share/info 14 | 15 | # make clean && make V=1 16 | 17 | 18 | ======================================= 19 | RPM queries: 20 | ======================================= 21 | 22 | # rpm --eval %{_target} 23 | sparc64-linux 24 | 25 | # rpm --eval %{_host} 26 | sparc64-redhat-linux-gnu 27 | 28 | 29 | ======================================= 30 | GCC queries: 31 | ======================================= 32 | 33 | Get all the gcc definitions for the platform: 34 | 35 | # gcc -E -dM - < /dev/null 36 | ... 37 | #define __sparc__ 1 38 | ... 39 | #define __arch64__ 1 40 | ... 41 | 42 | 43 | -------------------------------------------------------------------------------- /perftest-4.2/autogen.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | test -d ./config || mkdir ./config 4 | mkdir -p m4 config/m4 config/aux 5 | aclocal -I config 6 | libtoolize --force --copy 7 | autoheader 8 | automake --foreign --add-missing --copy 9 | autoconf 10 | -------------------------------------------------------------------------------- /perftest-4.2/debian/changelog: -------------------------------------------------------------------------------- 1 | perftest (4.2-0.2.g4f56894.42120) stable; urgency=low 2 | 3 | * Initial release For Ubuntu (Closes: #182805) 4 | 5 | -- Gil Rockah Sun, 29 Mar 2015 10:58:00 +0200 6 | -------------------------------------------------------------------------------- /perftest-4.2/debian/control: -------------------------------------------------------------------------------- 1 | Source: perftest 2 | Section: net 3 | Priority: extra 4 | Maintainer: Gil Rockah 5 | Build-Depends: debhelper (>= 8.0.0), libibverbs-dev (>= 1.1.6), librdmacm-dev 6 | Standards-Version: 3.9.2 7 | Homepage: https://openfabrics.org/downloads/perftest/ 8 | Vcs-Git: git://git.openfabrics.org/~shamoya/perftest.git 9 | Vcs-Browser: http://git.openfabrics.org/git?p=~shamoya/perftest.git;a=summary 10 | 11 | Package: perftest 12 | Architecture: any 13 | Depends: ${shlibs:Depends}, ${misc:Depends}, libibverbs1 (>= 1.1.6), librdmacm1 (>=1.0.8) 14 | Description: Infiniband verbs performance tests 15 | This is a collection of tests written using Infiniband verbs intended for 16 | use as a performance micro-benchmark. The tests can measure the latency 17 | bandwidth and message rate of Infiniband or Ethernet (RoCE) fabrics. 18 | -------------------------------------------------------------------------------- /perftest-4.2/debian/perftest.install: -------------------------------------------------------------------------------- 1 | ib_atomic_bw usr/bin/ 2 | ib_atomic_lat usr/bin/ 3 | ib_read_bw usr/bin/ 4 | ib_read_lat usr/bin/ 5 | ib_send_bw usr/bin/ 6 | ib_send_lat usr/bin/ 7 | ib_write_bw usr/bin/ 8 | ib_write_lat usr/bin/ 9 | -------------------------------------------------------------------------------- /perftest-4.2/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- makefile -*- 3 | # Sample debian/rules that uses debhelper. 4 | # 5 | # This file was originally written by Joey Hess and Craig Small. 6 | # As a special exception, when this file is copied by dh-make into a 7 | # dh-make output file, you may use that output file without restriction. 8 | # This special exception was added by Craig Small in version 0.37 of dh-make. 9 | # 10 | # Modified to make a template file for a multi-binary package with separated 11 | # build-arch and build-indep targets by Bill Allombert 2001 12 | 13 | # Uncomment this to turn on verbose mode. 14 | #export DH_VERBOSE=1 15 | 16 | # This has to be exported to make some magic below work. 17 | export DH_OPTIONS 18 | 19 | 20 | %: 21 | dh $@ 22 | -------------------------------------------------------------------------------- /perftest-4.2/run_perftest_loopback: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # trivial script to launch a loopback test on the same device 3 | # example: run_perftest_loopback 0 1 ib_write_bw -s 10 4 | 5 | if [ $# -lt 3 ] ; then 6 | echo "" 7 | echo "Usage: run_perftest_loopback " 8 | echo "example: run_perftest_loopback 0 1 ib_write_bw -s 10" 9 | exit 3 10 | fi 11 | 12 | server_core=$1 13 | client_core=$2 14 | shift 2 15 | 16 | taskset -c $server_core $* & 17 | #give server time to start 18 | sleep 1 19 | 20 | taskset -c $client_core $* localhost 21 | 22 | status=$? 23 | 24 | wait 25 | exit $status 26 | -------------------------------------------------------------------------------- /perftest-4.2/runme: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # trivial script to launch a server/client test with ssh 3 | # must be launched from client 4 | # example: runme 10.0.0.1 /home/perftest/rdma_lat -s 10 5 | 6 | if [ $# -lt 1 ] ; then 7 | echo "Usage: runme " 8 | exit 3 9 | fi 10 | 11 | server=$1 12 | shift 13 | ssh $server $* & 14 | #give server time to start 15 | sleep 2 16 | $* $server 17 | status=$? 18 | wait 19 | exit $status 20 | -------------------------------------------------------------------------------- /perftest-4.2/src/clock_test.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "get_clock.h" 4 | 5 | int main() 6 | { 7 | int no_cpu_freq_fail = 0; 8 | double mhz; 9 | mhz = get_cpu_mhz(no_cpu_freq_fail); 10 | cycles_t c1, c2; 11 | 12 | if (!mhz) { 13 | printf("Unable to calibrate cycles. Exiting.\n"); 14 | return 2; 15 | } 16 | 17 | printf("Type CTRL-C to cancel.\n"); 18 | for (;;) { 19 | c1 = get_cycles(); 20 | sleep(1); 21 | c2 = get_cycles(); 22 | printf("1 sec = %g usec\n", (c2 - c1) / mhz); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /rdma_pacer/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -O3 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lpthread -lrt -libverbs -lm 6 | 7 | APPS := pacer 8 | 9 | all: ${APPS} 10 | 11 | pacer: pingpong_utils.o pingpong.o get_clock.o queue.o massdal.o prng.o countmin.o monitor.o pacer.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | clean: 15 | rm -f *.o ${APPS} 16 | -------------------------------------------------------------------------------- /rdma_pacer/README: -------------------------------------------------------------------------------- 1 | See documentation in RDMA Performance Isolation folder on Google Drive: 2 | https://drive.google.com/open?id=0ByV9XfNkUsEIZnRiNWh2dUliblU 3 | 4 | This branch test letting application itself check if credits are enough and pacer only distribute credits. 5 | -------------------------------------------------------------------------------- /rdma_pacer/countmin.h: -------------------------------------------------------------------------------- 1 | // Two different structures: 2 | // 1 -- The basic CM Sketch (removed by Yue Tan) 3 | // 2 -- The hierarchical CM Sketch: with log n levels, for range sums etc. 4 | #ifndef COUNTMIN_H 5 | #define COUNTMIN_H 6 | 7 | #include "queue.h" 8 | #define min(x,y) ((x) < (y) ? (x) : (y)) 9 | #define max(x,y) ((x) > (y) ? (x) : (y)) 10 | 11 | typedef struct CMH_type{ 12 | int U; // size of the universe in bits 13 | int gran; // granularity: eg 1, 4 or 8 bits 14 | int levels; // function of U and gran 15 | int freelim; // up to which level to keep exact counts 16 | int depth; 17 | int width; 18 | int ** counts; 19 | int count; 20 | int windowSize; 21 | Queue *items; 22 | unsigned int **hasha, * *hashb; 23 | } CMH_type; 24 | 25 | extern CMH_type * CMH_Init(int width, int depth, int U, int gran, int windowSize); 26 | extern void CMH_Destroy(CMH_type *cmh); 27 | // extern int CMH_Size(CMH_type *cmh); 28 | extern int CMH_Update(CMH_type *cmh, int item); 29 | extern int CMH_Quantile(CMH_type *cmh, double frac); 30 | 31 | #endif -------------------------------------------------------------------------------- /rdma_pacer/massdal.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | extern void StartTheClock(); 4 | extern long StopTheClock(); 5 | extern int MedSelect(int, int, int[]); 6 | extern long LMedSelect(int, int, long[]); 7 | extern long long LLMedSelect(int, int, long long[]); 8 | extern double DMedSelect(int, int, double[]); 9 | extern void CheckMemory(void *); 10 | -------------------------------------------------------------------------------- /rdma_pacer/monitor.h: -------------------------------------------------------------------------------- 1 | #ifndef MONITOR_H 2 | #define MONITOR_H 3 | 4 | struct monitor_param { 5 | int is_client; 6 | const char *server_addr; 7 | int num_clients; 8 | int num_servers; 9 | int gid_idx; 10 | }; 11 | 12 | void monitor_latency(void *); 13 | void server_loop(void *); 14 | 15 | #endif -------------------------------------------------------------------------------- /rdma_pacer/pingpong.h: -------------------------------------------------------------------------------- 1 | #ifndef PINGPONG_H 2 | #define PINGPONG_H 3 | 4 | #if HAVE_CONFIG_H 5 | # include 6 | #endif /* HAVE_CONFIG_H */ 7 | 8 | #define _GNU_SOURCE 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | #include "pingpong_utils.h" 23 | #include "monitor.h" 24 | 25 | static const int BUF_SIZE = 16; // for SEND/RECV mesg 26 | static const int REF_FLOW_SIZE = 10; 27 | 28 | struct pingpong_context { 29 | struct ibv_context *context; 30 | struct ibv_pd *pd; 31 | struct ibv_mr *write_mr; 32 | struct ibv_mr *send_mr; 33 | struct ibv_mr *recv_mr; 34 | struct ibv_comp_channel *send_channel; 35 | struct ibv_comp_channel *recv_channel; 36 | struct ibv_qp *qp; 37 | struct ibv_cq *send_cq; 38 | struct ibv_cq *recv_cq; 39 | struct pingpong_dest *rem_dest; 40 | void *write_buf; 41 | void *send_buf; // this if for update message with SEND/RECV. size=BUF_SIZE 42 | void *recv_buf; 43 | struct ibv_port_attr portinfo; 44 | }; 45 | 46 | struct pingpong_dest { 47 | int lid; 48 | int qpn; 49 | int psn; 50 | unsigned rkey; 51 | unsigned long long vaddr; 52 | union ibv_gid gid; 53 | }; 54 | 55 | struct pingpong_context * init_monitor_chan(struct monitor_param *); 56 | 57 | #endif -------------------------------------------------------------------------------- /rdma_pacer/prng.h: -------------------------------------------------------------------------------- 1 | // Probabilistic Random Number Generators 2 | // Collected from various sources by Graham Cormode, 2000-2003 3 | // 4 | 5 | #include 6 | 7 | #ifndef _PRNG 8 | 9 | #define MOD 2147483647 10 | #define HL 31 11 | 12 | extern long hash31(long long, long long, long long); 13 | extern long fourwise(long long, long long, long long, long long, long long); 14 | 15 | #define KK 17 16 | #define NTAB 32 17 | 18 | typedef struct prng_type{ 19 | int usenric; // which prng to use 20 | float scale; /* 2^(- integer size) */ 21 | long floatidum; 22 | long intidum; // needed to keep track of where we are in the 23 | // nric random number generators 24 | long iy; 25 | long iv[NTAB]; 26 | /* global variables */ 27 | unsigned long randbuffer[KK]; /* history buffer */ 28 | int r_p1, r_p2; /* indexes into history buffer */ 29 | int iset; 30 | double gset; 31 | } prng_type; 32 | 33 | #define _PRNG 1 34 | 35 | #endif 36 | 37 | extern long prng_int(prng_type *); 38 | extern float prng_float(prng_type *); 39 | extern prng_type * prng_Init(long, int); 40 | extern void prng_Destroy(prng_type * prng); 41 | void prng_Reseed(prng_type *, long); 42 | 43 | //extern long double zipf(double, long) ; 44 | extern double fastzipf(double, long, double, prng_type *); 45 | extern double zeta(long, double); 46 | extern double prng_normal(prng_type * prng); 47 | extern double prng_stable(prng_type * prng, double); 48 | 49 | //extern double stable(double); // stable distributions 50 | //extern double stabledevd(float) ; 51 | //extern long double stabledevl(float) ; 52 | //extern double altstab(double); 53 | 54 | -------------------------------------------------------------------------------- /rdma_pacer/queue.c: -------------------------------------------------------------------------------- 1 | #include "queue.h" 2 | #include 3 | #include 4 | #include 5 | 6 | jmp_buf queue_error; 7 | 8 | #define QUEUE_FULL_ERROR 1 9 | #define QUEUE_EMPTY_ERROR 2 10 | 11 | Queue *queue_init(int size) 12 | { 13 | Queue *q = calloc(1, sizeof(Queue)); 14 | q->array = calloc(size + 1, sizeof(int)); 15 | q->read = 0; 16 | q->write = 0; 17 | q->size = size + 1; 18 | return q; 19 | } 20 | 21 | void queue_push(Queue *q, int a) 22 | { 23 | if (q->read == (q->write + 1) % q->size) 24 | longjmp(queue_error, QUEUE_FULL_ERROR); 25 | q->array[q->write] = a; 26 | q->write = (q->write + 1) % q->size; 27 | } 28 | 29 | int queue_pop(Queue *q) 30 | { 31 | if (q->read == q->write) 32 | longjmp(queue_error, QUEUE_EMPTY_ERROR); 33 | int tmp = q->array[q->read]; 34 | q->read = (q->read + 1) % q->size; 35 | return tmp; 36 | } 37 | 38 | void queue_free(Queue *q) 39 | { 40 | free(q->array); 41 | free(q); 42 | } -------------------------------------------------------------------------------- /rdma_pacer/queue.h: -------------------------------------------------------------------------------- 1 | #ifndef QUEUE_H 2 | #define QUEUE_H 3 | // O(1) queue implementation 4 | typedef struct { 5 | int read; 6 | int write; 7 | int size; 8 | int *array; 9 | } Queue; 10 | 11 | Queue *queue_init(int size); 12 | void queue_push(Queue *q, int a); 13 | int queue_pop(Queue *q); 14 | void queue_free(Queue *q); 15 | 16 | #endif -------------------------------------------------------------------------------- /scripts/cleanup_shm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # assume there is a file called "nodes" in cmd which includes all the node hostname 3 | shm_path="/dev/shm/rdma-fairness /var/run/shm/rdma-fairness" 4 | for node in $(cat nodes); do 5 | echo "deleting shm in $node..." 6 | for path in $shm_path; do 7 | ssh -o "StrictHostKeyChecking no" -p 22 $node "sudo rm -f $path" & 8 | done 9 | done 10 | wait 11 | echo "DONE" 12 | -------------------------------------------------------------------------------- /scripts/compile_X3_driver.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # will cause error when recompling. TODO: may add a make clean? 3 | 4 | for node in $(cat nodes); do 5 | echo "compile and install X3 driver code in $node..." 6 | ssh -o "StrictHostKeyChecking no" -p 22 $node "cp -r /proj/gaia-PG0/yiwen/frdma/libmlx4 /users/yiwenzhg/frdma/ " 7 | ssh -o "StrictHostKeyChecking no" -p 22 $node "bash -s" < ../compile_X3.sh & 8 | done 9 | wait 10 | echo "DONE" 11 | -------------------------------------------------------------------------------- /scripts/compile_pacer.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | for node in $(cat nodes); do 3 | echo "compile rdma_pacer in $node..." 4 | ssh -o "StrictHostKeyChecking no" -p 22 $node "cp -r /proj/gaia-PG0/yiwen/frdma/rdma_pacer /users/yiwenzhg/frdma/ && make clean -C frdma/rdma_pacer && make -C frdma/rdma_pacer" & 5 | done 6 | wait 7 | echo "DONE" 8 | -------------------------------------------------------------------------------- /scripts/configure_m510_p1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for node in $(cat nodes); do 4 | echo "upgrade mlnx driver in $node..." 5 | ssh -o "StrictHostKeyChecking no" -p 22 $node "sudo cp /proj/gaia-PG0/yiwen/mlx4_core.conf /etc/modprobe.d/ && sudo cp /proj/gaia-PG0/yiwen/mlx4_ib.conf /etc/modprobe.d/ && sudo /proj/gaia-PG0/yiwen/MLNX_OFED_LINUX-4.2-1.0.0.0-ubuntu14.04-x86_64/mlnxofedinstall --force" & 6 | done 7 | wait 8 | echo "DONE" 9 | -------------------------------------------------------------------------------- /scripts/configure_m510_p2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #TODO: test if openibd restart can be replaced by reboot since on m510 openibd restart will hang and a reboot is needed anyway 4 | for node in $(cat nodes); do 5 | echo "restart mlnx driver in $node..." 6 | ssh -o "StrictHostKeyChecking no" -p 22 $node "sudo /etc/init.d/openibd restart" & 7 | done 8 | wait 9 | echo "DONE" 10 | -------------------------------------------------------------------------------- /scripts/configure_m510_p2_v2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # used when some cloudlab node get hang on openibd restart and thus need to manually reboot from the web interface. This alternative script saves the time to find that node icon to reboot manually 4 | for node in $(cat nodes); do 5 | echo "reboot $node..." 6 | ssh -o "StrictHostKeyChecking no" -p 22 $node "sudo reboot" & 7 | done 8 | wait 9 | echo "DONE" 10 | -------------------------------------------------------------------------------- /scripts/configure_m510_p3.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for node in $(cat nodes); do 4 | echo "setting ECN in $node..." 5 | ssh -o "StrictHostKeyChecking no" -p 22 $node "sudo bash -c ' echo 1 | tee /sys/kernel/debug/mlx4_ib/mlx4_0/ecn/*/ports/*/params/*/*/enable'" & 6 | done 7 | wait 8 | echo "DONE" 9 | -------------------------------------------------------------------------------- /scripts/cpm_nodes: -------------------------------------------------------------------------------- 1 | cpm1 2 | cpm2 -------------------------------------------------------------------------------- /scripts/cpn_nodes: -------------------------------------------------------------------------------- 1 | cpn1 2 | cpn2 -------------------------------------------------------------------------------- /scripts/install_gcc5.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # on cloudlab, do not run as root 3 | for node in $(cat nodes); do 4 | echo "installing gcc5 in $node..." 5 | ssh -o "StrictHostKeyChecking no" -p 22 $node "sudo apt-get -y update && sudo apt-get -y install software-properties-common && sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test && sudo apt-get -y update && sudo apt-get install -y gcc-5 g++-5 && sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5" & 6 | done 7 | wait 8 | echo "DONE" -------------------------------------------------------------------------------- /scripts/kill_proc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # assume there is a file called "nodes" in cmd which includes all the node hostname 3 | #proc="ib_write" 4 | #proc="pacer" 5 | procs="pacer ib_write" 6 | for node in $(cat nodes); do 7 | for proc in $procs; do 8 | echo "killing $proc process in $node..." 9 | pids=`ssh -o 'StrictHostKeyChecking no' -p 22 $node ps -ef | grep $proc | awk '{print $2}'` 10 | for pid in $pids; do 11 | echo $pid 12 | ssh -o "StrictHostKeyChecking no" -p 22 $node "sudo kill -9 $pid" & 13 | done 14 | done 15 | done 16 | wait 17 | echo "DONE" 18 | -------------------------------------------------------------------------------- /scripts/kill_proc2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # assume there is a file called "nodes" in cmd which includes all the node hostname 3 | #proc="ib_write" 4 | #proc="pacer" 5 | procs="pacer ib_write" 6 | for node in $(cat normal_nodes); do 7 | for proc in $procs; do 8 | echo "killing $proc process in $node..." 9 | pids=`ssh -o 'StrictHostKeyChecking no' -p 22 $node ps -ef | grep $proc | awk '{print $2}'` 10 | for pid in $pids; do 11 | echo $pid 12 | ssh -o "StrictHostKeyChecking no" -p 22 $node "sudo kill -9 $pid" & 13 | done 14 | done 15 | done 16 | wait 17 | echo "DONE" 18 | -------------------------------------------------------------------------------- /scripts/kill_proc3.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # assume there is a file called "nodes" in cmd which includes all the node hostname 3 | #proc="ib_write" 4 | #proc="pacer" 5 | procs="pacer ib_write" 6 | for node in $(cat cpn_nodes); do 7 | for proc in $procs; do 8 | echo "killing $proc process in $node..." 9 | pids=`ssh -o 'StrictHostKeyChecking no' -p 22 $node ps -ef | grep $proc | awk '{print $2}'` 10 | for pid in $pids; do 11 | echo $pid 12 | ssh -o "StrictHostKeyChecking no" -p 22 $node "sudo kill -9 $pid" & 13 | done 14 | done 15 | done 16 | wait 17 | echo "DONE" 18 | -------------------------------------------------------------------------------- /scripts/nodes: -------------------------------------------------------------------------------- 1 | cpa1 2 | cpa2 3 | cpa3 4 | cpa4 5 | cpa5 6 | cpa6 7 | cpa7 8 | cpa8 9 | cpa9 10 | cpa10 11 | cpa11 12 | cpa12 13 | cpa13 14 | cpa14 15 | cpa15 16 | cpa16 17 | cpa17 18 | cpa18 19 | cpa19 20 | cpa20 21 | cpa21 22 | cpa22 23 | cpa23 24 | cpa24 25 | cpa25 26 | cpa26 27 | cpa27 28 | cpa28 29 | cpa29 30 | cpa30 31 | cpa31 32 | cpa32 33 | cpa33 34 | cpb1 35 | -------------------------------------------------------------------------------- /scripts/nodes_incast: -------------------------------------------------------------------------------- 1 | cpa1 2 | cpa2 3 | cpa3 4 | cpa4 5 | cpa5 6 | cpa6 7 | cpa7 8 | cpa8 9 | cpa9 10 | cpa10 11 | cpa11 12 | cpa12 13 | cpa13 14 | cpa14 15 | cpa15 16 | cpa16 17 | cpa17 18 | cpa18 19 | cpa19 20 | cpa20 21 | cpa21 22 | cpa22 23 | cpa23 24 | cpa24 25 | cpa25 26 | cpa26 27 | cpa27 28 | cpa28 29 | cpa29 30 | cpa30 31 | cpa31 32 | cpa32 33 | cpa33 34 | cpb1 35 | -------------------------------------------------------------------------------- /scripts/normal_nodes: -------------------------------------------------------------------------------- 1 | cpa1 2 | cpa2 3 | cpa3 4 | cpa4 5 | cpa5 6 | cpa6 7 | cpa7 8 | cpa8 9 | cpa9 10 | cpa10 11 | cpa11 12 | cpa12 13 | cpa13 14 | cpa14 15 | cpa15 16 | cpa16 17 | cpa17 18 | cpa18 19 | cpa19 20 | cpa20 21 | cpa21 22 | cpa22 23 | cpa23 24 | cpa24 25 | cpa25 26 | cpb1 27 | cpb2 28 | cpb3 29 | cpb4 30 | cpb5 31 | cpb6 32 | cpb7 33 | cpb8 34 | cpb9 35 | cpb10 36 | cpb11 37 | cpb12 38 | cpb13 39 | cpb14 40 | cpb15 41 | cpb16 42 | cpb17 43 | cpb18 44 | cpb19 45 | cpb20 46 | cpb21 47 | cpb22 48 | cpb23 49 | cpb24 50 | cpb25 -------------------------------------------------------------------------------- /scripts/normal_receiver_nodes: -------------------------------------------------------------------------------- 1 | cpb2 2 | cpb3 3 | cpb4 4 | cpb5 5 | cpb6 6 | cpb7 7 | cpb8 8 | cpb9 9 | cpb10 10 | cpb11 11 | cpb12 12 | cpb13 13 | cpb14 14 | cpb15 15 | cpb16 16 | cpb17 17 | cpb18 18 | cpb19 19 | cpb20 20 | cpb21 21 | cpb22 22 | cpb23 23 | cpb24 24 | cpb25 25 | -------------------------------------------------------------------------------- /scripts/normal_sender_node_receiver_ip: -------------------------------------------------------------------------------- 1 | cpa2:192.168.0.6 2 | cpa3:192.168.0.10 3 | cpa4:192.168.0.12 4 | cpa5:192.168.0.14 5 | cpa6:192.168.0.15 6 | cpa7:192.168.0.21 7 | cpa8:192.168.0.23 8 | cpa9:192.168.0.24 9 | cpa10:192.168.0.31 10 | cpa11:192.168.0.36 11 | cpa12:192.168.0.37 12 | cpa13:192.168.0.38 13 | cpa14:192.168.0.39 14 | cpa15:192.168.0.49 15 | cpa16:192.168.0.52 16 | cpa17:192.168.0.53 17 | cpa18:192.168.0.54 18 | cpa19:192.168.0.55 19 | cpa20:192.168.0.56 20 | cpa21:192.168.0.59 21 | cpa22:192.168.0.60 22 | cpa23:192.168.0.64 23 | cpa24:192.168.0.65 24 | cpa25:192.168.0.66 -------------------------------------------------------------------------------- /scripts/normal_sender_nodes: -------------------------------------------------------------------------------- 1 | cpa2 2 | cpa3 3 | cpa4 4 | cpa5 5 | cpa6 6 | cpa7 7 | cpa8 8 | cpa9 9 | cpa10 10 | cpa11 11 | cpa12 12 | cpa13 13 | cpa14 14 | cpa15 15 | cpa16 16 | cpa17 17 | cpa18 18 | -------------------------------------------------------------------------------- /scripts/set_authorized_keys.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # This script sets up ssh for root mode on cloudlab clusters. (only the first node can ssh to the rest) 3 | # run as normal user NOT ROOT on cloudlab 4 | # assume the first node HAS REGENERATED ssh key as root 5 | # there needs to be a file called "nodes" with all the hostnames (doesn't matter to include the first node) 6 | sudo cp /root/.ssh/id_rsa.pub ~ 7 | for node in $(cat nodes); do 8 | echo "copying root's pubkey to $node..." 9 | scp ~/id_rsa.pub $node:~ 10 | echo "append pubkey to root's authorized_keys in $node..." 11 | ssh -o "StrictHostKeyChecking no" -p 22 $node "cat ~/id_rsa.pub | sudo tee -a /root/.ssh/authorized_keys" & 12 | done 13 | wait 14 | echo "DONE" 15 | -------------------------------------------------------------------------------- /scripts/set_ipoib_ip.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cnt=3 3 | for node in $(cat nodes); do 4 | echo "installing ipoib in $node..." 5 | ssh -o "StrictHostKeyChecking no" -p 22 $node "sudo modprobe ib_ipoib" 6 | ip="192.168.1.$cnt" 7 | echo "setting ip addr for ib0 as $ip in $node..." 8 | ssh -o "StrictHostKeyChecking no" -p 22 $node "sudo ifconfig ib0 $ip/24" & 9 | ((++cnt)) 10 | done 11 | wait 12 | echo "DONE" 13 | -------------------------------------------------------------------------------- /scripts/setup_frdma.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for node in $(cat nodes); do 4 | echo "set up frdma code and X3 in $node... (remember to compile pacer)" 5 | ssh -o "StrictHostKeyChecking no" -p 22 $node "rm -rf /users/yiwenzhg/frdma && cp -r /proj/gaia-PG0/yiwen/frdma /users/yiwenzhg && bash /users/yiwenzhg/frdma/setup_X3.sh" & 6 | done 7 | wait 8 | echo "DONE" 9 | -------------------------------------------------------------------------------- /scripts/setup_m510.txt: -------------------------------------------------------------------------------- 1 | Make sure file 'nodes' have all the nodes we want to use (or set up at this time) 2 | Call those scripts in order { 3 | configure_m510_p1.sh 4 | configure_m510_p2.sh or configure_m510_p2_v2.sh (use latter if openibd restart hangs, which it usually does) 5 | configure_m510_p3.sh 6 | setup_frdma.sh 7 | compile_pacer.sh 8 | } 9 | Note: 'compile_X3_driver.sh' is only used when we the X3 code has been build once, and we need to make some modification to the code and re-compile -------------------------------------------------------------------------------- /scripts/upgrade_mlnx.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for node in $(cat nodes); do 4 | echo "upgrade mlnx driver in $node..." 5 | ssh -o "StrictHostKeyChecking no" -p 22 $node "sudo /proj/gaia-PG0/yiwen/MLNX_OFED_LINUX-4.2-1.0.0.0-ubuntu14.04-x86_64/mlnxofedinstall --force && sudo /etc/init.d/openibd restart" & 6 | done 7 | wait 8 | echo "DONE" 9 | -------------------------------------------------------------------------------- /setup_X3.sh: -------------------------------------------------------------------------------- 1 | sudo apt-get update 2 | sudo apt-get install -y pkg-config libnl-3-dev libnl-route-3-dev libibumad-dev librdmacm-dev 3 | cd ~/Justitia/libibverbs-41mlnx1/ 4 | ./autogen.sh 5 | ./configure --prefix=/usr libdir=/usr/lib64 6 | make 7 | sudo make install 8 | cd ~/Justitia/libmlx4 9 | ./autogen.sh 10 | ./configure --prefix=/usr libdir=/usr/lib64 11 | make 12 | sudo make install 13 | cd ~/Justitia/perftest-4.2/ 14 | ./autogen.sh 15 | ./configure --prefix=/usr libdir=/usr/lib64 16 | make -------------------------------------------------------------------------------- /setup_X4.sh: -------------------------------------------------------------------------------- 1 | sudo apt-get update 2 | sudo apt-get install -y pkg-config libnl-3-dev libnl-route-3-dev libibumad-dev librdmacm-dev 3 | cd ~/Justitia/libibverbs-41mlnx1/ 4 | ./autogen.sh 5 | ./configure --prefix=/usr libdir=/usr/lib64 6 | make 7 | sudo make install 8 | cd ~/Justitia/libmlx5-41mlnx1 9 | ./autogen.sh 10 | ./configure --prefix=/usr libdir=/usr/lib64 11 | make 12 | sudo make install 13 | cd ~/Justitia/perftest-4.2/ 14 | ./autogen.sh 15 | ./configure --prefix=/usr libdir=/usr/lib64 16 | make -------------------------------------------------------------------------------- /setup_conflux.sh: -------------------------------------------------------------------------------- 1 | #sudo apt-get update 2 | #sudo apt-get install -y pkg-config libnl-3-dev libnl-route-3-dev libibumad-dev 3 | cd ~/frdma/libibverbs-41mlnx1/ 4 | ./autogen.sh 5 | ./configure --prefix=/gpfs/gpfs0/groups/chowdhury/yiwenzhg/tools/frdma_build 6 | make 7 | make install 8 | cd ~/frdma/libmlx5-41mlnx1 9 | ./autogen.sh 10 | ./configure --prefix=/gpfs/gpfs0/groups/chowdhury/yiwenzhg/tools/frdma_build 11 | make 12 | make install 13 | cd ~/frdma/perftest-4.2/ 14 | ./autogen.sh 15 | ./configure --prefix=/gpfs/gpfs0/groups/chowdhury/yiwenzhg/tools/frdma_build 16 | make -------------------------------------------------------------------------------- /with_ACK/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/.DS_Store -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr/.DS_Store -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr/ibverbs/.DS_Store -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/README.md: -------------------------------------------------------------------------------- 1 | This program tests RDMA(based on IB_verbs) performance. 2 | Souce code is modified from "The Geek in the corner" 02-read-write sample. 3 | Modification: 4 | 1.Server post no operations. 5 | 2.Procedures in client is divided into : 6 | build connection/context, (include memory malloc time) 7 | memory resigster exchange. 8 | post operation, (including finishing) 9 | clean up, exchanging MSG_DON(receive can be before post operation) 10 | 11 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/.log: -------------------------------------------------------------------------------- 1 | build malloc mr_x post end\n 2 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -Werror -g 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := rdma-client 8 | 9 | all: ${APPS} 10 | 11 | rdma-client: rdma-common.o rdma-client.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | rdma-server: rdma-common.o rdma-server.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/README: -------------------------------------------------------------------------------- 1 | measure_gettime_latency is used to calibrate the time overheads from time_stamp() 2 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/client.sh: -------------------------------------------------------------------------------- 1 | #rdma-client 2 | iters=100 3 | log_file="w"${2}".log" 4 | echo "build malloc mr_x post end" > $log_file 5 | for ((i=1;i<=${iters};i++)); do 6 | echo $i 7 | ./rdma-client write cp-2 $1 $2 >> $log_file 8 | usleep 1000 9 | done; 10 | 11 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/fair_READ_1G_noprint.txt: -------------------------------------------------------------------------------- 1 | address resolved. 2 | route resolved. 3 | Size message sent to the server. 4 | Client received and copied server's MR key. Posting RDMA READ work request. 5 | RDMA read operation completed with success. 6 | MSG_DONE sent successfully. Client is ready to disconnect. 7 | disconnected. 8 | 1.setup time 2.RDMA R/W latency 3.cleanup time 4.total time 9 | 255266 195690013 36333 195981612 10 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/fair_READ_1G_noprint_multi_wr.txt: -------------------------------------------------------------------------------- 1 | address resolved. 2 | route resolved. 3 | Size message sent to the server. 4 | Client received and copied server's MR key. Posting RDMA READ work request. 5 | RDMA read operation completed with success. 6 | MSG_DONE sent successfully. Client is ready to disconnect. 7 | disconnected. 8 | 1.setup time 2.RDMA R/W latency 3.cleanup time 4.total time 9 | 256721 187171233 41077 187469031 10 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/fair_READ_1M_noprint.txt: -------------------------------------------------------------------------------- 1 | address resolved. 2 | route resolved. 3 | Size message sent to the server. 4 | Client received and copied server's MR key. Posting RDMA READ work request. 5 | RDMA read operation completed with success. 6 | MSG_DONE sent successfully. Client is ready to disconnect. 7 | disconnected. 8 | 1.setup time 2.RDMA R/W latency 3.cleanup time 4.total time 9 | 7742 210843229 1350 210852321 10 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/fair_WRITE_1M_noprint.txt: -------------------------------------------------------------------------------- 1 | address resolved. 2 | route resolved. 3 | Size message sent to the server. 4 | Client received and copied server's MR key. Posting RDMA WRITE work request. 5 | RDMA write operation completed with success. 6 | MSG_DONE sent successfully. Client is ready to disconnect. 7 | disconnected. 8 | 1.setup time 2.RDMA R/W latency 3.cleanup time 4.total time 9 | 7167 216774182 1482 216782831 10 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/fair_WRITE_1M_noprint_multi_wr.txt: -------------------------------------------------------------------------------- 1 | address resolved. 2 | route resolved. 3 | Size message sent to the server. 4 | Client received and copied server's MR key. Posting RDMA WRITE work request. 5 | RDMA write operation completed with success. 6 | MSG_DONE sent successfully. Client is ready to disconnect. 7 | disconnected. 8 | 1.setup time 2.RDMA R/W latency 3.cleanup time 4.total time 9 | 255754 193716696 38254 194010704 10 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/fair_read.sh: -------------------------------------------------------------------------------- 1 | ./rdma-client read 192.168.0.18 34197 1000000 1 > fair_WRITE_1G_vs_READ_1G_B.txt 2 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/fair_write.sh: -------------------------------------------------------------------------------- 1 | ./rdma-client write 192.168.0.18 34197 1000000 1 > fair_WRITE_1G_vs_WRITE_1M_B.txt 2 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/get_avg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr/ibverbs/ibv_client/get_avg -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/get_avg_multi_wr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr/ibverbs/ibv_client/get_avg_multi_wr -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/rdma-client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr/ibverbs/ibv_client/rdma-client -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/rdma-client.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr/ibverbs/ibv_client/rdma-client.o -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/rdma-common.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_COMMON_H 2 | #define RDMA_COMMON_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | #define TEST_NZ(x) do { if ( (x)) die("error: " #x " failed (returned non-zero)." ); } while (0) 13 | #define TEST_Z(x) do { if (!(x)) die("error: " #x " failed (returned zero/null)."); } while (0) 14 | 15 | enum mode { 16 | M_WRITE, 17 | M_READ 18 | }; 19 | 20 | void die(const char *reason); 21 | 22 | void build_connection(struct rdma_cm_id *id); 23 | void build_params(struct rdma_conn_param *params); 24 | void destroy_connection(void *context); 25 | //void * get_local_message_region(void *context); 26 | void on_connect(void *context); 27 | //void send_mr(void *context); 28 | void register_MR(void *context); 29 | void send_sz(void *context); 30 | void set_mode(enum mode m); 31 | void checkpoint(int i); 32 | void measure_time(); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/rdma-common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr/ibverbs/ibv_client/rdma-common.o -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_client/sftp-config.json: -------------------------------------------------------------------------------- 1 | { 2 | // The tab key will cycle through the settings when first created 3 | // Visit http://wbond.net/sublime_packages/sftp/settings for help 4 | 5 | // sftp, ftp or ftps 6 | "type": "sftp", 7 | 8 | "save_before_upload": true, 9 | "upload_on_save": false, 10 | "sync_down_on_open": false, 11 | "sync_skip_deletes": false, 12 | "sync_same_age": true, 13 | "confirm_downloads": false, 14 | "confirm_sync": true, 15 | "confirm_overwrite_newer": false, 16 | 17 | "host": "apt019.apt.emulab.net", 18 | "user": "yiwenzhg", 19 | //"password": "password", 20 | //"port": "22", 21 | 22 | "remote_path": "/users/yiwenzhg/rdma_fairness_inst3/with_ACK/single_dir_multi_wr/ibverbs/ibv_client/", 23 | "ignore_regexes": [ 24 | "\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json", 25 | "sftp-settings\\.json", "/venv/", "\\.svn/", "\\.hg/", "\\.git/", 26 | "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini" 27 | ], 28 | //"file_permissions": "664", 29 | //"dir_permissions": "775", 30 | 31 | //"extra_list_connections": 0, 32 | 33 | "connect_timeout": 30, 34 | //"keepalive": 120, 35 | //"ftp_passive_mode": true, 36 | //"ftp_obey_passive_host": false, 37 | //"ssh_key_file": "~/.ssh/id_rsa", 38 | //"sftp_flags": ["-F", "/path/to/ssh_config"], 39 | 40 | //"preserve_modification_times": false, 41 | //"remote_time_offset_in_hours": 0, 42 | //"remote_encoding": "utf-8", 43 | //"remote_locale": "C", 44 | //"allow_config_upload": false, 45 | } 46 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_server/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr/ibverbs/ibv_server/.DS_Store -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_server/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -Werror -g 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := rdma-server 8 | 9 | all: ${APPS} 10 | 11 | rdma-client: rdma-common.o rdma-client.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | rdma-server: rdma-common.o rdma-server.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_server/rdma-common.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_COMMON_H 2 | #define RDMA_COMMON_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | #define TEST_NZ(x) do { if ( (x)) die("error: " #x " failed (returned non-zero)." ); } while (0) 12 | #define TEST_Z(x) do { if (!(x)) die("error: " #x " failed (returned zero/null)."); } while (0) 13 | 14 | enum mode { 15 | M_WRITE, 16 | M_READ 17 | }; 18 | 19 | void die(const char *reason); 20 | 21 | void build_connection(struct rdma_cm_id *id); 22 | void build_params(struct rdma_conn_param *params); 23 | void destroy_connection(void *context); 24 | void * get_local_message_region(void *context); 25 | void on_connect(void *context); 26 | void send_mr(void *context); 27 | //void set_mode(enum mode m); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_server/rdma-common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr/ibverbs/ibv_server/rdma-common.o -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_server/rdma-server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr/ibverbs/ibv_server/rdma-server -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr/ibverbs/ibv_server/rdma-server.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr/ibverbs/ibv_server/rdma-server.o -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/README.md: -------------------------------------------------------------------------------- 1 | This program tests RDMA(based on IB_verbs) performance. 2 | Souce code is modified from "The Geek in the corner" 02-read-write sample. 3 | Modification: 4 | 1.Server post no operations. 5 | 2.Procedures in client is divided into : 6 | build connection/context, (include memory malloc time) 7 | memory resigster exchange. 8 | post operation, (including finishing) 9 | clean up, exchanging MSG_DON(receive can be before post operation) 10 | 11 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/.log: -------------------------------------------------------------------------------- 1 | build malloc mr_x post end\n 2 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -Werror -g 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := rdma-client 8 | 9 | all: ${APPS} 10 | 11 | rdma-client: rdma-common.o rdma-client.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | rdma-server: rdma-common.o rdma-server.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/README: -------------------------------------------------------------------------------- 1 | measure_gettime_latency is used to calibrate the time overheads from time_stamp() 2 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/client.sh: -------------------------------------------------------------------------------- 1 | #rdma-client 2 | iters=100 3 | log_file="w"${2}".log" 4 | echo "build malloc mr_x post end" > $log_file 5 | for ((i=1;i<=${iters};i++)); do 6 | echo $i 7 | ./rdma-client write cp-2 $1 $2 >> $log_file 8 | usleep 1000 9 | done; 10 | 11 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/fair.sh: -------------------------------------------------------------------------------- 1 | ./rdma-client write 192.168.0.18 43991 1000000000 1 > fair_SEND_single_1G_noprint.txt 2 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/get_avg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/get_avg -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/get_avg_multi_wr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/get_avg_multi_wr -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/rdma-client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/rdma-client -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/rdma-client.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/rdma-client.o -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/rdma-common.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_COMMON_H 2 | #define RDMA_COMMON_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | #define TEST_NZ(x) do { if ( (x)) die("error: " #x " failed (returned non-zero)." ); } while (0) 13 | #define TEST_Z(x) do { if (!(x)) die("error: " #x " failed (returned zero/null)."); } while (0) 14 | 15 | enum mode { 16 | M_WRITE, 17 | M_READ 18 | }; 19 | 20 | void die(const char *reason); 21 | 22 | void build_connection(struct rdma_cm_id *id); 23 | void build_params(struct rdma_conn_param *params); 24 | void destroy_connection(void *context); 25 | //void * get_local_message_region(void *context); 26 | void on_connect(void *context); 27 | //void send_mr(void *context); 28 | void register_MR(void *context); 29 | void send_sz(void *context); 30 | void set_mode(enum mode m); 31 | void checkpoint(int i); 32 | void measure_time(); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/rdma-common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/rdma-common.o -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -Werror -g 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := rdma-server 8 | 9 | all: ${APPS} 10 | 11 | rdma-client: rdma-common.o rdma-client.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | rdma-server: rdma-common.o rdma-server.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/rdma-common.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_COMMON_H 2 | #define RDMA_COMMON_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | #define TEST_NZ(x) do { if ( (x)) die("error: " #x " failed (returned non-zero)." ); } while (0) 12 | #define TEST_Z(x) do { if (!(x)) die("error: " #x " failed (returned zero/null)."); } while (0) 13 | 14 | enum mode { 15 | M_WRITE, 16 | M_READ 17 | }; 18 | 19 | void die(const char *reason); 20 | 21 | void build_connection(struct rdma_cm_id *id); 22 | void build_params(struct rdma_conn_param *params); 23 | void destroy_connection(void *context); 24 | void * get_local_message_region(void *context); 25 | void on_connect(void *context); 26 | void send_mr(void *context); 27 | //void set_mode(enum mode m); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/rdma-common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/rdma-common.o -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/rdma-server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/rdma-server -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/rdma-server.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/rdma-server.o -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/sftp-config.json: -------------------------------------------------------------------------------- 1 | { 2 | // The tab key will cycle through the settings when first created 3 | // Visit http://wbond.net/sublime_packages/sftp/settings for help 4 | 5 | // sftp, ftp or ftps 6 | "type": "sftp", 7 | 8 | "save_before_upload": true, 9 | "upload_on_save": false, 10 | "sync_down_on_open": false, 11 | "sync_skip_deletes": false, 12 | "sync_same_age": true, 13 | "confirm_downloads": false, 14 | "confirm_sync": true, 15 | "confirm_overwrite_newer": false, 16 | 17 | "host": "apt019.apt.emulab.net", 18 | "user": "yiwenzhg", 19 | //"password": "password", 20 | //"port": "22", 21 | 22 | "remote_path": "/users/yiwenzhg/rdma_fairness/single_dir_multi_wr_SEND/ibverbs/ibv_server/", 23 | "ignore_regexes": [ 24 | "\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json", 25 | "sftp-settings\\.json", "/venv/", "\\.svn/", "\\.hg/", "\\.git/", 26 | "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini" 27 | ], 28 | //"file_permissions": "664", 29 | //"dir_permissions": "775", 30 | 31 | //"extra_list_connections": 0, 32 | 33 | "connect_timeout": 30, 34 | //"keepalive": 120, 35 | //"ftp_passive_mode": true, 36 | //"ftp_obey_passive_host": false, 37 | //"ssh_key_file": "~/.ssh/id_rsa", 38 | //"sftp_flags": ["-F", "/path/to/ssh_config"], 39 | 40 | //"preserve_modification_times": false, 41 | //"remote_time_offset_in_hours": 0, 42 | //"remote_encoding": "utf-8", 43 | //"remote_locale": "C", 44 | //"allow_config_upload": false, 45 | } 46 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/README.md: -------------------------------------------------------------------------------- 1 | This program tests RDMA(based on IB_verbs) performance. 2 | Souce code is modified from "The Geek in the corner" 02-read-write sample. 3 | Modification: 4 | 1.Server post no operations. 5 | 2.Procedures in client is divided into : 6 | build connection/context, (include memory malloc time) 7 | memory resigster exchange. 8 | post operation, (including finishing) 9 | clean up, exchanging MSG_DON(receive can be before post operation) 10 | 11 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/.log: -------------------------------------------------------------------------------- 1 | build malloc mr_x post end\n 2 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -Werror -g 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := rdma-client 8 | 9 | all: ${APPS} 10 | 11 | rdma-client: rdma-common.o rdma-client.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | rdma-server: rdma-common.o rdma-server.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/README: -------------------------------------------------------------------------------- 1 | measure_gettime_latency is used to calibrate the time overheads from time_stamp() 2 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/client.sh: -------------------------------------------------------------------------------- 1 | #rdma-client 2 | iters=100 3 | log_file="w"${2}".log" 4 | echo "build malloc mr_x post end" > $log_file 5 | for ((i=1;i<=${iters};i++)); do 6 | echo $i 7 | ./rdma-client write cp-2 $1 $2 >> $log_file 8 | usleep 1000 9 | done; 10 | 11 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/fair.sh: -------------------------------------------------------------------------------- 1 | ./rdma-client write 192.168.0.18 60030 1000000 1 > fair_IMM_1M_noprint.txt 2 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/get_avg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/get_avg -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/get_avg_multi_wr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/get_avg_multi_wr -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/rdma-client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/rdma-client -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/rdma-client.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/rdma-client.o -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/rdma-common.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_COMMON_H 2 | #define RDMA_COMMON_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | #define TEST_NZ(x) do { if ( (x)) die("error: " #x " failed (returned non-zero)." ); } while (0) 13 | #define TEST_Z(x) do { if (!(x)) die("error: " #x " failed (returned zero/null)."); } while (0) 14 | 15 | enum mode { 16 | M_WRITE, 17 | M_READ 18 | }; 19 | 20 | void die(const char *reason); 21 | 22 | void build_connection(struct rdma_cm_id *id); 23 | void build_params(struct rdma_conn_param *params); 24 | void destroy_connection(void *context); 25 | //void * get_local_message_region(void *context); 26 | void on_connect(void *context); 27 | //void send_mr(void *context); 28 | void register_MR(void *context); 29 | void send_sz(void *context); 30 | void set_mode(enum mode m); 31 | void checkpoint(int i); 32 | void measure_time(); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/rdma-common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/rdma-common.o -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -Werror -g 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := rdma-server 8 | 9 | all: ${APPS} 10 | 11 | rdma-client: rdma-common.o rdma-client.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | rdma-server: rdma-common.o rdma-server.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/rdma-common.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_COMMON_H 2 | #define RDMA_COMMON_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | #define TEST_NZ(x) do { if ( (x)) die("error: " #x " failed (returned non-zero)." ); } while (0) 12 | #define TEST_Z(x) do { if (!(x)) die("error: " #x " failed (returned zero/null)."); } while (0) 13 | 14 | enum mode { 15 | M_WRITE, 16 | M_READ 17 | }; 18 | 19 | void die(const char *reason); 20 | 21 | void build_connection(struct rdma_cm_id *id); 22 | void build_params(struct rdma_conn_param *params); 23 | void destroy_connection(void *context); 24 | void * get_local_message_region(void *context); 25 | void on_connect(void *context); 26 | void send_mr(void *context); 27 | //void set_mode(enum mode m); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/rdma-common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/rdma-common.o -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/rdma-server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/rdma-server -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/rdma-server.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/with_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/rdma-server.o -------------------------------------------------------------------------------- /with_ACK/single_dir_multi_wr_WRITE_IMM/sftp-config.json: -------------------------------------------------------------------------------- 1 | { 2 | // The tab key will cycle through the settings when first created 3 | // Visit http://wbond.net/sublime_packages/sftp/settings for help 4 | 5 | // sftp, ftp or ftps 6 | "type": "sftp", 7 | 8 | "save_before_upload": true, 9 | "upload_on_save": false, 10 | "sync_down_on_open": false, 11 | "sync_skip_deletes": false, 12 | "sync_same_age": true, 13 | "confirm_downloads": false, 14 | "confirm_sync": true, 15 | "confirm_overwrite_newer": false, 16 | 17 | "host": "apt019.apt.emulab.net", 18 | "user": "yiwenzhg", 19 | //"password": "password", 20 | //"port": "22", 21 | 22 | "remote_path": "/users/yiwenzhg/rdma_fairness_inst3/with_ACK/single_dir_multi_wr_WRITE_IMM", 23 | "ignore_regexes": [ 24 | "\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json", 25 | "sftp-settings\\.json", "/venv/", "\\.svn/", "\\.hg/", "\\.git/", 26 | "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini" 27 | ], 28 | //"file_permissions": "664", 29 | //"dir_permissions": "775", 30 | 31 | //"extra_list_connections": 0, 32 | 33 | "connect_timeout": 30, 34 | //"keepalive": 120, 35 | //"ftp_passive_mode": true, 36 | //"ftp_obey_passive_host": false, 37 | //"ssh_key_file": "~/.ssh/id_rsa", 38 | //"sftp_flags": ["-F", "/path/to/ssh_config"], 39 | 40 | //"preserve_modification_times": false, 41 | //"remote_time_offset_in_hours": 0, 42 | //"remote_encoding": "utf-8", 43 | //"remote_locale": "C", 44 | //"allow_config_upload": false, 45 | } 46 | -------------------------------------------------------------------------------- /without_ACK/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/.DS_Store -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr/.DS_Store -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr/ibverbs/.DS_Store -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/README.md: -------------------------------------------------------------------------------- 1 | This program tests RDMA(based on IB_verbs) performance. 2 | Souce code is modified from "The Geek in the corner" 02-read-write sample. 3 | Modification: 4 | 1.Server post no operations. 5 | 2.Procedures in client is divided into : 6 | build connection/context, (include memory malloc time) 7 | memory resigster exchange. 8 | post operation, (including finishing) 9 | clean up, exchanging MSG_DON(receive can be before post operation) 10 | 11 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/.log: -------------------------------------------------------------------------------- 1 | build malloc mr_x post end\n 2 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -Werror -g 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := rdma-client 8 | 9 | all: ${APPS} 10 | 11 | rdma-client: rdma-common.o rdma-client.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | rdma-server: rdma-common.o rdma-server.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/README: -------------------------------------------------------------------------------- 1 | measure_gettime_latency is used to calibrate the time overheads from time_stamp() 2 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/client.sh: -------------------------------------------------------------------------------- 1 | #rdma-client 2 | iters=100 3 | log_file="w"${2}".log" 4 | echo "build malloc mr_x post end" > $log_file 5 | for ((i=1;i<=${iters};i++)); do 6 | echo $i 7 | ./rdma-client write cp-2 $1 $2 >> $log_file 8 | usleep 1000 9 | done; 10 | 11 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/fair_READ_1G_noprint.txt: -------------------------------------------------------------------------------- 1 | address resolved. 2 | route resolved. 3 | Size message sent to the server. 4 | Client received and copied server's MR key. Posting RDMA READ work request. 5 | RDMA read operation completed with success. 6 | MSG_DONE sent successfully. Client is ready to disconnect. 7 | disconnected. 8 | 1.setup time 2.RDMA R/W latency 3.cleanup time 4.total time 9 | 255266 195690013 36333 195981612 10 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/fair_READ_1G_noprint_multi_wr.txt: -------------------------------------------------------------------------------- 1 | address resolved. 2 | route resolved. 3 | Size message sent to the server. 4 | Client received and copied server's MR key. Posting RDMA READ work request. 5 | RDMA read operation completed with success. 6 | MSG_DONE sent successfully. Client is ready to disconnect. 7 | disconnected. 8 | 1.setup time 2.RDMA R/W latency 3.cleanup time 4.total time 9 | 256721 187171233 41077 187469031 10 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/fair_READ_1M_noprint.txt: -------------------------------------------------------------------------------- 1 | address resolved. 2 | route resolved. 3 | Size message sent to the server. 4 | Client received and copied server's MR key. Posting RDMA READ work request. 5 | RDMA read operation completed with success. 6 | MSG_DONE sent successfully. Client is ready to disconnect. 7 | disconnected. 8 | 1.setup time 2.RDMA R/W latency 3.cleanup time 4.total time 9 | 7742 210843229 1350 210852321 10 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/fair_WRITE_1M_noprint.txt: -------------------------------------------------------------------------------- 1 | address resolved. 2 | route resolved. 3 | Size message sent to the server. 4 | Client received and copied server's MR key. Posting RDMA WRITE work request. 5 | RDMA write operation completed with success. 6 | MSG_DONE sent successfully. Client is ready to disconnect. 7 | disconnected. 8 | 1.setup time 2.RDMA R/W latency 3.cleanup time 4.total time 9 | 7167 216774182 1482 216782831 10 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/fair_WRITE_1M_noprint_multi_wr.txt: -------------------------------------------------------------------------------- 1 | address resolved. 2 | route resolved. 3 | Size message sent to the server. 4 | Client received and copied server's MR key. Posting RDMA WRITE work request. 5 | RDMA write operation completed with success. 6 | MSG_DONE sent successfully. Client is ready to disconnect. 7 | disconnected. 8 | 1.setup time 2.RDMA R/W latency 3.cleanup time 4.total time 9 | 255754 193716696 38254 194010704 10 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/fair_read.sh: -------------------------------------------------------------------------------- 1 | ./rdma-client read 192.168.0.18 34197 1000000 1 > fair_WRITE_1G_vs_READ_1G_B.txt 2 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/fair_write.sh: -------------------------------------------------------------------------------- 1 | ./rdma-client write 192.168.0.18 34197 1000000 1 > fair_WRITE_1G_vs_WRITE_1M_B.txt 2 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/get_avg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr/ibverbs/ibv_client/get_avg -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/get_avg_multi_wr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr/ibverbs/ibv_client/get_avg_multi_wr -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/rdma-client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr/ibverbs/ibv_client/rdma-client -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/rdma-client.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr/ibverbs/ibv_client/rdma-client.o -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/rdma-common.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_COMMON_H 2 | #define RDMA_COMMON_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | #define TEST_NZ(x) do { if ( (x)) die("error: " #x " failed (returned non-zero)." ); } while (0) 13 | #define TEST_Z(x) do { if (!(x)) die("error: " #x " failed (returned zero/null)."); } while (0) 14 | 15 | enum mode { 16 | M_WRITE, 17 | M_READ 18 | }; 19 | 20 | void die(const char *reason); 21 | 22 | void build_connection(struct rdma_cm_id *id); 23 | void build_params(struct rdma_conn_param *params); 24 | void destroy_connection(void *context); 25 | //void * get_local_message_region(void *context); 26 | void on_connect(void *context); 27 | //void send_mr(void *context); 28 | void register_MR(void *context); 29 | void send_sz(void *context); 30 | void set_mode(enum mode m); 31 | void checkpoint(int i); 32 | void measure_time(); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/rdma-common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr/ibverbs/ibv_client/rdma-common.o -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_client/sftp-config.json: -------------------------------------------------------------------------------- 1 | { 2 | // The tab key will cycle through the settings when first created 3 | // Visit http://wbond.net/sublime_packages/sftp/settings for help 4 | 5 | // sftp, ftp or ftps 6 | "type": "sftp", 7 | 8 | "save_before_upload": true, 9 | "upload_on_save": false, 10 | "sync_down_on_open": false, 11 | "sync_skip_deletes": false, 12 | "sync_same_age": true, 13 | "confirm_downloads": false, 14 | "confirm_sync": true, 15 | "confirm_overwrite_newer": false, 16 | 17 | "host": "apt024.apt.emulab.net", 18 | "user": "yiwenzhg", 19 | //"password": "password", 20 | //"port": "22", 21 | 22 | "remote_path": "/users/yiwenzhg/rdma_fairness/without_ACK/single_dir_multi_wr/ibverbs/ibv_client/", 23 | "ignore_regexes": [ 24 | "\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json", 25 | "sftp-settings\\.json", "/venv/", "\\.svn/", "\\.hg/", "\\.git/", 26 | "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini" 27 | ], 28 | //"file_permissions": "664", 29 | //"dir_permissions": "775", 30 | 31 | //"extra_list_connections": 0, 32 | 33 | "connect_timeout": 30, 34 | //"keepalive": 120, 35 | //"ftp_passive_mode": true, 36 | //"ftp_obey_passive_host": false, 37 | //"ssh_key_file": "~/.ssh/id_rsa", 38 | //"sftp_flags": ["-F", "/path/to/ssh_config"], 39 | 40 | //"preserve_modification_times": false, 41 | //"remote_time_offset_in_hours": 0, 42 | //"remote_encoding": "utf-8", 43 | //"remote_locale": "C", 44 | //"allow_config_upload": false, 45 | } 46 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_server/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr/ibverbs/ibv_server/.DS_Store -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_server/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -Werror -g 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := rdma-server 8 | 9 | all: ${APPS} 10 | 11 | rdma-client: rdma-common.o rdma-client.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | rdma-server: rdma-common.o rdma-server.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_server/rdma-common.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_COMMON_H 2 | #define RDMA_COMMON_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | #define TEST_NZ(x) do { if ( (x)) die("error: " #x " failed (returned non-zero)." ); } while (0) 12 | #define TEST_Z(x) do { if (!(x)) die("error: " #x " failed (returned zero/null)."); } while (0) 13 | 14 | enum mode { 15 | M_WRITE, 16 | M_READ 17 | }; 18 | 19 | void die(const char *reason); 20 | 21 | void build_connection(struct rdma_cm_id *id); 22 | void build_params(struct rdma_conn_param *params); 23 | void destroy_connection(void *context); 24 | void * get_local_message_region(void *context); 25 | void on_connect(void *context); 26 | void send_mr(void *context); 27 | //void set_mode(enum mode m); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_server/rdma-common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr/ibverbs/ibv_server/rdma-common.o -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_server/rdma-server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr/ibverbs/ibv_server/rdma-server -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr/ibverbs/ibv_server/rdma-server.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr/ibverbs/ibv_server/rdma-server.o -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/README.md: -------------------------------------------------------------------------------- 1 | This program tests RDMA(based on IB_verbs) performance. 2 | Souce code is modified from "The Geek in the corner" 02-read-write sample. 3 | Modification: 4 | 1.Server post no operations. 5 | 2.Procedures in client is divided into : 6 | build connection/context, (include memory malloc time) 7 | memory resigster exchange. 8 | post operation, (including finishing) 9 | clean up, exchanging MSG_DON(receive can be before post operation) 10 | 11 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/.log: -------------------------------------------------------------------------------- 1 | build malloc mr_x post end\n 2 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -Werror -g 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := rdma-client 8 | 9 | all: ${APPS} 10 | 11 | rdma-client: rdma-common.o rdma-client.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | rdma-server: rdma-common.o rdma-server.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/README: -------------------------------------------------------------------------------- 1 | measure_gettime_latency is used to calibrate the time overheads from time_stamp() 2 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/client.sh: -------------------------------------------------------------------------------- 1 | #rdma-client 2 | iters=100 3 | log_file="w"${2}".log" 4 | echo "build malloc mr_x post end" > $log_file 5 | for ((i=1;i<=${iters};i++)); do 6 | echo $i 7 | ./rdma-client write cp-2 $1 $2 >> $log_file 8 | usleep 1000 9 | done; 10 | 11 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/fair.sh: -------------------------------------------------------------------------------- 1 | ./rdma-client write 192.168.0.18 43991 1000000000 1 > fair_SEND_single_1G_noprint.txt 2 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/get_avg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/get_avg -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/get_avg_multi_wr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/get_avg_multi_wr -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/rdma-client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/rdma-client -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/rdma-client.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/rdma-client.o -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/rdma-common.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_COMMON_H 2 | #define RDMA_COMMON_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | #define TEST_NZ(x) do { if ( (x)) die("error: " #x " failed (returned non-zero)." ); } while (0) 13 | #define TEST_Z(x) do { if (!(x)) die("error: " #x " failed (returned zero/null)."); } while (0) 14 | 15 | enum mode { 16 | M_WRITE, 17 | M_READ 18 | }; 19 | 20 | void die(const char *reason); 21 | 22 | void build_connection(struct rdma_cm_id *id); 23 | void build_params(struct rdma_conn_param *params); 24 | void destroy_connection(void *context); 25 | //void * get_local_message_region(void *context); 26 | void on_connect(void *context); 27 | //void send_mr(void *context); 28 | void register_MR(void *context); 29 | void send_sz(void *context); 30 | void set_mode(enum mode m); 31 | void checkpoint(int i); 32 | void measure_time(); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/rdma-common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_client/rdma-common.o -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -Werror -g 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := rdma-server 8 | 9 | all: ${APPS} 10 | 11 | rdma-client: rdma-common.o rdma-client.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | rdma-server: rdma-common.o rdma-server.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/rdma-common.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_COMMON_H 2 | #define RDMA_COMMON_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | #define TEST_NZ(x) do { if ( (x)) die("error: " #x " failed (returned non-zero)." ); } while (0) 12 | #define TEST_Z(x) do { if (!(x)) die("error: " #x " failed (returned zero/null)."); } while (0) 13 | 14 | enum mode { 15 | M_WRITE, 16 | M_READ 17 | }; 18 | 19 | void die(const char *reason); 20 | 21 | void build_connection(struct rdma_cm_id *id); 22 | void build_params(struct rdma_conn_param *params); 23 | void destroy_connection(void *context); 24 | void * get_local_message_region(void *context); 25 | void on_connect(void *context); 26 | void send_mr(void *context); 27 | //void set_mode(enum mode m); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/rdma-common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/rdma-common.o -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/rdma-server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/rdma-server -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/rdma-server.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_SEND/ibverbs/ibv_server/rdma-server.o -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/README.md: -------------------------------------------------------------------------------- 1 | This program tests RDMA(based on IB_verbs) performance. 2 | Souce code is modified from "The Geek in the corner" 02-read-write sample. 3 | Modification: 4 | 1.Server post no operations. 5 | 2.Procedures in client is divided into : 6 | build connection/context, (include memory malloc time) 7 | memory resigster exchange. 8 | post operation, (including finishing) 9 | clean up, exchanging MSG_DON(receive can be before post operation) 10 | 11 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/.log: -------------------------------------------------------------------------------- 1 | build malloc mr_x post end\n 2 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -Werror -g 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := rdma-client 8 | 9 | all: ${APPS} 10 | 11 | rdma-client: rdma-common.o rdma-client.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | rdma-server: rdma-common.o rdma-server.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/README: -------------------------------------------------------------------------------- 1 | measure_gettime_latency is used to calibrate the time overheads from time_stamp() 2 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/client.sh: -------------------------------------------------------------------------------- 1 | #rdma-client 2 | iters=100 3 | log_file="w"${2}".log" 4 | echo "build malloc mr_x post end" > $log_file 5 | for ((i=1;i<=${iters};i++)); do 6 | echo $i 7 | ./rdma-client write cp-2 $1 $2 >> $log_file 8 | usleep 1000 9 | done; 10 | 11 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/fair.sh: -------------------------------------------------------------------------------- 1 | ./rdma-client write 192.168.0.18 60030 1000000 1 > fair_IMM_1M_noprint.txt 2 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/get_avg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/get_avg -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/get_avg_multi_wr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/get_avg_multi_wr -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/rdma-client: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/rdma-client -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/rdma-client.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/rdma-client.o -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/rdma-common.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_COMMON_H 2 | #define RDMA_COMMON_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | #define TEST_NZ(x) do { if ( (x)) die("error: " #x " failed (returned non-zero)." ); } while (0) 13 | #define TEST_Z(x) do { if (!(x)) die("error: " #x " failed (returned zero/null)."); } while (0) 14 | 15 | enum mode { 16 | M_WRITE, 17 | M_READ 18 | }; 19 | 20 | void die(const char *reason); 21 | 22 | void build_connection(struct rdma_cm_id *id); 23 | void build_params(struct rdma_conn_param *params); 24 | void destroy_connection(void *context); 25 | //void * get_local_message_region(void *context); 26 | void on_connect(void *context); 27 | //void send_mr(void *context); 28 | void register_MR(void *context); 29 | void send_sz(void *context); 30 | void set_mode(enum mode m); 31 | void checkpoint(int i); 32 | void measure_time(); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/rdma-common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_client/rdma-common.o -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CFLAGS := -Wall -Werror -g 4 | LD := gcc 5 | LDLIBS := ${LDLIBS} -lrdmacm -libverbs -lpthread 6 | 7 | APPS := rdma-server 8 | 9 | all: ${APPS} 10 | 11 | rdma-client: rdma-common.o rdma-client.o 12 | ${LD} -o $@ $^ ${LDLIBS} 13 | 14 | rdma-server: rdma-common.o rdma-server.o 15 | ${LD} -o $@ $^ ${LDLIBS} 16 | 17 | clean: 18 | rm -f *.o ${APPS} 19 | 20 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/rdma-common.h: -------------------------------------------------------------------------------- 1 | #ifndef RDMA_COMMON_H 2 | #define RDMA_COMMON_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | #define TEST_NZ(x) do { if ( (x)) die("error: " #x " failed (returned non-zero)." ); } while (0) 12 | #define TEST_Z(x) do { if (!(x)) die("error: " #x " failed (returned zero/null)."); } while (0) 13 | 14 | enum mode { 15 | M_WRITE, 16 | M_READ 17 | }; 18 | 19 | void die(const char *reason); 20 | 21 | void build_connection(struct rdma_cm_id *id); 22 | void build_params(struct rdma_conn_param *params); 23 | void destroy_connection(void *context); 24 | void * get_local_message_region(void *context); 25 | void on_connect(void *context); 26 | void send_mr(void *context); 27 | //void set_mode(enum mode m); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/rdma-common.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/rdma-common.o -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/rdma-server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/rdma-server -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/rdma-server.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SymbioticLab/Justitia/7b83ecf51d75687bf9480db9e1c8f38cc60c5796/without_ACK/single_dir_multi_wr_WRITE_IMM/ibverbs/ibv_server/rdma-server.o -------------------------------------------------------------------------------- /without_ACK/single_dir_multi_wr_WRITE_IMM/sftp-config.json: -------------------------------------------------------------------------------- 1 | { 2 | // The tab key will cycle through the settings when first created 3 | // Visit http://wbond.net/sublime_packages/sftp/settings for help 4 | 5 | // sftp, ftp or ftps 6 | "type": "sftp", 7 | 8 | "save_before_upload": true, 9 | "upload_on_save": false, 10 | "sync_down_on_open": false, 11 | "sync_skip_deletes": false, 12 | "sync_same_age": true, 13 | "confirm_downloads": false, 14 | "confirm_sync": true, 15 | "confirm_overwrite_newer": false, 16 | 17 | "host": "apt019.apt.emulab.net", 18 | "user": "yiwenzhg", 19 | //"password": "password", 20 | //"port": "22", 21 | 22 | "remote_path": "/users/yiwenzhg/rdma_fairness/single_dir_multi_wr_WRITE_IMM", 23 | "ignore_regexes": [ 24 | "\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json", 25 | "sftp-settings\\.json", "/venv/", "\\.svn/", "\\.hg/", "\\.git/", 26 | "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini" 27 | ], 28 | //"file_permissions": "664", 29 | //"dir_permissions": "775", 30 | 31 | //"extra_list_connections": 0, 32 | 33 | "connect_timeout": 30, 34 | //"keepalive": 120, 35 | //"ftp_passive_mode": true, 36 | //"ftp_obey_passive_host": false, 37 | //"ssh_key_file": "~/.ssh/id_rsa", 38 | //"sftp_flags": ["-F", "/path/to/ssh_config"], 39 | 40 | //"preserve_modification_times": false, 41 | //"remote_time_offset_in_hours": 0, 42 | //"remote_encoding": "utf-8", 43 | //"remote_locale": "C", 44 | //"allow_config_upload": false, 45 | } 46 | --------------------------------------------------------------------------------