├── .appveyor.ps1 ├── .appveyor.yml ├── .gitattributes ├── .gitignore ├── .mailmap ├── .travis.yml ├── AUTHORS ├── CONTRIBUTORS ├── COPYING ├── Libfabric.Build.Default.props ├── Makefile.am ├── NEWS.md ├── README ├── README.md ├── autogen.sh ├── config ├── cron-make-nightly-tarball.pl ├── cron-run-all-md2nroff.pl ├── cron-submit-coverity.pl ├── distscript.pl ├── fi_check_package.m4 ├── fi_pkg.m4 ├── fi_provider.m4 ├── github-webhook │ ├── README │ ├── apache-config.txt │ ├── github-webhook-ofiwg-init.d-rhel │ ├── github-webhook-ofiwg-init.d-ubuntu │ └── verify-signed-off.rb ├── md2nroff.pl ├── ofiwg-bot@flatbed-.bashrc └── ofiwg-bot@flatbed-crontab.txt ├── configure.ac ├── contrib ├── buildrpm │ ├── README │ └── buildrpmLibfabric.sh ├── cray │ ├── Jenkinsfile.verbs │ ├── bats │ │ ├── mpi.bats │ │ ├── smoketests.bats │ │ └── test_helper.bash │ ├── bin │ │ ├── common.sh │ │ ├── fabtest_wrapper.sh │ │ ├── logwrap │ │ ├── parse_logfiles.sh │ │ ├── run_libfabric_pipeline │ │ ├── setup.sh │ │ └── verify_requirements.sh │ ├── python │ │ └── parse_results.py │ ├── sft_test_results_baseline.txt │ └── share │ │ ├── requirements.txt │ │ └── version ├── intel │ └── jenkins │ │ ├── Jenkinsfile │ │ ├── Jenkinsfile.daily │ │ ├── build.py │ │ ├── common.py │ │ ├── run.py │ │ ├── runtests.py │ │ └── tests.py └── man2pdf │ └── man2pdf.sh ├── docs ├── policy ├── providers └── windows.txt ├── fabtests ├── AUTHORS ├── COPYING ├── Makefile.am ├── Makefile.win ├── README ├── README.md ├── autogen.sh ├── benchmarks │ ├── benchmark_shared.c │ ├── benchmark_shared.h │ ├── dgram_pingpong.c │ ├── msg_bw.c │ ├── msg_pingpong.c │ ├── rdm_cntr_pingpong.c │ ├── rdm_pingpong.c │ ├── rdm_tagged_bw.c │ ├── rdm_tagged_pingpong.c │ └── rma_bw.c ├── common │ ├── jsmn.c │ ├── osx │ │ └── osd.c │ ├── shared.c │ └── windows │ │ ├── getopt.c │ │ └── osd.c ├── configure.ac ├── fabtests.sln ├── fabtests.spec.in ├── fabtests.vcxproj ├── fabtests.vcxproj.filters ├── functional │ ├── av_xfer.c │ ├── bw.c │ ├── cm_data.c │ ├── cq_data.c │ ├── dgram.c │ ├── dgram_waitset.c │ ├── inj_complete.c │ ├── mcast.c │ ├── msg.c │ ├── msg_epoll.c │ ├── msg_sockets.c │ ├── multi_ep.c │ ├── multi_mr.c │ ├── multi_recv.c │ ├── poll.c │ ├── rdm.c │ ├── rdm_atomic.c │ ├── rdm_deferred_wq.c │ ├── rdm_multi_domain.c │ ├── rdm_rma_simple.c │ ├── rdm_rma_trigger.c │ ├── rdm_shared_av.c │ ├── rdm_tagged_peek.c │ ├── recv_cancel.c │ ├── resmgmt_test.c │ ├── scalable_ep.c │ ├── shared_ctx.c │ ├── stream_msg.c │ ├── unexpected_msg.c │ └── unmap_mem.c ├── include │ ├── freebsd │ │ └── osd.h │ ├── ft_osd.h │ ├── jsmn.h │ ├── osx │ │ └── osd.h │ ├── shared.h │ ├── unit_common.h │ ├── unix │ │ └── osd.h │ └── windows │ │ ├── getopt │ │ └── getopt.h │ │ ├── netdb.h │ │ ├── netinet │ │ ├── in.h │ │ └── tcp.h │ │ ├── osd.h │ │ ├── poll.h │ │ ├── sys │ │ ├── socket.h │ │ ├── uio.h │ │ └── wait.h │ │ └── unistd.h ├── man │ ├── fabtests.7.md │ ├── man1 │ │ ├── fi_av_test.1 │ │ ├── fi_av_xfer.1 │ │ ├── fi_bw.1 │ │ ├── fi_cm_data.1 │ │ ├── fi_cntr_test.1 │ │ ├── fi_cq_data.1 │ │ ├── fi_cq_test.1 │ │ ├── fi_dgram.1 │ │ ├── fi_dgram_pingpong.1 │ │ ├── fi_dgram_waitset.1 │ │ ├── fi_dom_test.1 │ │ ├── fi_eq_test.1 │ │ ├── fi_getinfo_test.1 │ │ ├── fi_inj_complete.1 │ │ ├── fi_mcast.1 │ │ ├── fi_mr_test.1 │ │ ├── fi_msg.1 │ │ ├── fi_msg_bw.1 │ │ ├── fi_msg_epoll.1 │ │ ├── fi_msg_pingpong.1 │ │ ├── fi_msg_sockets.1 │ │ ├── fi_multi_ep.1 │ │ ├── fi_multi_mr.1 │ │ ├── fi_multi_recv.1 │ │ ├── fi_multinode.1 │ │ ├── fi_poll.1 │ │ ├── fi_rdm.1 │ │ ├── fi_rdm_atomic.1 │ │ ├── fi_rdm_cntr_pingpong.1 │ │ ├── fi_rdm_deferred_wq.1 │ │ ├── fi_rdm_multi_domain.1 │ │ ├── fi_rdm_pingpong.1 │ │ ├── fi_rdm_rma_simple.1 │ │ ├── fi_rdm_rma_trigger.1 │ │ ├── fi_rdm_shared_av.1 │ │ ├── fi_rdm_tagged_bw.1 │ │ ├── fi_rdm_tagged_peek.1 │ │ ├── fi_rdm_tagged_pingpong.1 │ │ ├── fi_recv_cancel.1 │ │ ├── fi_resmgmt_test.1 │ │ ├── fi_resource_freeing.1 │ │ ├── fi_rma_bw.1 │ │ ├── fi_scalable_ep.1 │ │ ├── fi_shared_ctx.1 │ │ ├── fi_ubertest.1 │ │ ├── fi_unexpected_msg.1 │ │ └── fi_unmap_mem.1 │ └── man7 │ │ └── fabtests.7 ├── multinode │ ├── include │ │ ├── coll_test.h │ │ ├── core.h │ │ └── pattern.h │ └── src │ │ ├── core.c │ │ ├── core_coll.c │ │ ├── harness.c │ │ └── pattern.c ├── scripts │ ├── parseyaml.py │ ├── rft_yaml_to_junit_xml │ ├── run_with_output.cmd │ ├── runfabtests.cmd │ ├── runfabtests.sh │ └── toCSV.py ├── test_configs │ ├── efa │ │ └── efa.exclude │ ├── eq_cq.test │ ├── freebsd.exclude │ ├── lat_bw.test │ ├── ofi_rxd │ │ ├── ofi_rxd.exclude │ │ ├── udp.test │ │ └── verbs.test │ ├── ofi_rxm │ │ ├── ofi_rxm.exclude │ │ ├── tcp.test │ │ └── verbs.test │ ├── osx.exclude │ ├── psm │ │ └── all.test │ ├── psm2 │ │ ├── all.test │ │ ├── psm2.exclude │ │ └── verify.test │ ├── shm │ │ ├── all.test │ │ ├── quick.test │ │ ├── shm.exclude │ │ └── verify.test │ ├── sockets │ │ ├── all.test │ │ ├── complete.test │ │ ├── quick.test │ │ ├── sockets.exclude │ │ └── verify.test │ ├── tcp │ │ ├── quick.test │ │ └── tcp.exclude │ ├── udp │ │ ├── all.test │ │ ├── functional.test │ │ ├── lat_bw.test │ │ ├── quick.test │ │ └── udp.exclude │ ├── usnic │ │ ├── all.test │ │ └── quick.test │ └── verbs │ │ ├── all.test │ │ ├── quick.test │ │ └── verbs.exclude ├── ubertest │ ├── config.c │ ├── connect.c │ ├── cq.c │ ├── domain.c │ ├── ep.c │ ├── fabtest.h │ ├── ofi_atomic.c │ ├── ofi_atomic.h │ ├── test_ctrl.c │ ├── uber.c │ ├── verify.c │ └── xfer.c └── unit │ ├── av_test.c │ ├── cntr_test.c │ ├── common.c │ ├── cq_test.c │ ├── dom_test.c │ ├── eq_test.c │ ├── getinfo_test.c │ ├── mr_test.c │ └── resource_freeing.c ├── include ├── fasthash.h ├── freebsd │ └── osd.h ├── linux │ ├── osd.h │ └── rdpmc.h ├── ofi.h ├── ofi_abi.h ├── ofi_atom.h ├── ofi_atomic.h ├── ofi_bitmask.h ├── ofi_coll.h ├── ofi_cuda.h ├── ofi_enosys.h ├── ofi_epoll.h ├── ofi_file.h ├── ofi_hmem.h ├── ofi_hook.h ├── ofi_indexer.h ├── ofi_iov.h ├── ofi_list.h ├── ofi_lock.h ├── ofi_mem.h ├── ofi_mr.h ├── ofi_net.h ├── ofi_osd.h ├── ofi_perf.h ├── ofi_proto.h ├── ofi_prov.h ├── ofi_rbuf.h ├── ofi_recvwin.h ├── ofi_shm.h ├── ofi_signal.h ├── ofi_tree.h ├── ofi_util.h ├── osx │ └── osd.h ├── rbtree.h ├── rdma │ ├── fabric.h │ ├── fi_atomic.h │ ├── fi_cm.h │ ├── fi_collective.h │ ├── fi_domain.h │ ├── fi_endpoint.h │ ├── fi_eq.h │ ├── fi_errno.h │ ├── fi_rma.h │ ├── fi_tagged.h │ ├── fi_trigger.h │ └── providers │ │ ├── fi_log.h │ │ └── fi_prov.h ├── shared │ └── ofi_str.h ├── unix │ └── osd.h ├── uthash.h └── windows │ ├── arpa │ └── inet.h │ ├── config.h │ ├── dirent.h │ ├── ifaddrs.h │ ├── net │ └── if.h │ ├── netdb.h │ ├── netinet │ ├── in.h │ ├── ip.h │ └── tcp.h │ ├── osd.h │ ├── poll.h │ ├── pthread.h │ ├── sys │ ├── ipc.h │ ├── mman.h │ ├── param.h │ ├── select.h │ ├── socket.h │ ├── time.h │ ├── uio.h │ └── wait.h │ └── unistd.h ├── info.vcxproj ├── info.vcxproj.filters ├── libfabric.def ├── libfabric.map.in ├── libfabric.pc.in ├── libfabric.sln ├── libfabric.spec.in ├── libfabric.vcxproj ├── libfabric.vcxproj.filters ├── man ├── README ├── fabric.7.md ├── fi_atomic.3.md ├── fi_av.3.md ├── fi_av_set.3.md ├── fi_bgq.7.md ├── fi_cm.3.md ├── fi_cntr.3.md ├── fi_collective.3.md ├── fi_control.3.md ├── fi_cq.3.md ├── fi_direct.7.md ├── fi_domain.3.md ├── fi_efa.7.md ├── fi_endpoint.3.md ├── fi_eq.3.md ├── fi_errno.3.md ├── fi_fabric.3.md ├── fi_getinfo.3.md ├── fi_gni.7.md ├── fi_hook.7.md ├── fi_info.1.md ├── fi_mlx.7.md ├── fi_mr.3.md ├── fi_mrail.7.md ├── fi_msg.3.md ├── fi_netdir.7.md ├── fi_nic.3.md ├── fi_pingpong.1.md ├── fi_poll.3.md ├── fi_provider.7.md ├── fi_psm.7.md ├── fi_psm2.7.md ├── fi_rma.3.md ├── fi_rstream.7.md ├── fi_rxd.7.md ├── fi_rxm.7.md ├── fi_shm.7.md ├── fi_sockets.7.md ├── fi_strerror.1.md ├── fi_tagged.3.md ├── fi_tcp.7.md ├── fi_trigger.3.md ├── fi_udp.7.md ├── fi_usnic.7.md ├── fi_verbs.7.md ├── fi_version.3.md ├── man1 │ ├── fi_info.1 │ ├── fi_pingpong.1 │ └── fi_strerror.1 ├── man3 │ ├── fi_accept.3 │ ├── fi_alias.3 │ ├── fi_allgather.3 │ ├── fi_allreduce.3 │ ├── fi_alltoall.3 │ ├── fi_atomic.3 │ ├── fi_atomic_valid.3 │ ├── fi_atomicmsg.3 │ ├── fi_atomicv.3 │ ├── fi_av.3 │ ├── fi_av_bind.3 │ ├── fi_av_insert.3 │ ├── fi_av_insertsvc.3 │ ├── fi_av_lookup.3 │ ├── fi_av_open.3 │ ├── fi_av_remove.3 │ ├── fi_av_set.3 │ ├── fi_av_set_diff.3 │ ├── fi_av_set_insert.3 │ ├── fi_av_set_intersect.3 │ ├── fi_av_set_remove.3 │ ├── fi_av_set_union.3 │ ├── fi_av_straddr.3 │ ├── fi_barrier.3 │ ├── fi_broadcast.3 │ ├── fi_cancel.3 │ ├── fi_close.3 │ ├── fi_cm.3 │ ├── fi_cntr.3 │ ├── fi_cntr_add.3 │ ├── fi_cntr_open.3 │ ├── fi_cntr_read.3 │ ├── fi_cntr_set.3 │ ├── fi_cntr_wait.3 │ ├── fi_collective.3 │ ├── fi_compare_atomic.3 │ ├── fi_compare_atomic_valid.3 │ ├── fi_compare_atomicmsg.3 │ ├── fi_compare_atomicv.3 │ ├── fi_connect.3 │ ├── fi_control.3 │ ├── fi_cq.3 │ ├── fi_cq_open.3 │ ├── fi_cq_read.3 │ ├── fi_cq_readerr.3 │ ├── fi_cq_readfrom.3 │ ├── fi_cq_signal.3 │ ├── fi_cq_sread.3 │ ├── fi_cq_sreadfrom.3 │ ├── fi_cq_strerror.3 │ ├── fi_domain.3 │ ├── fi_domain_bind.3 │ ├── fi_domain_query.3 │ ├── fi_dupinfo.3 │ ├── fi_enable.3 │ ├── fi_endpoint.3 │ ├── fi_ep.3 │ ├── fi_ep_bind.3 │ ├── fi_eq.3 │ ├── fi_eq_open.3 │ ├── fi_eq_read.3 │ ├── fi_eq_readerr.3 │ ├── fi_eq_sread.3 │ ├── fi_eq_strerror.3 │ ├── fi_eq_write.3 │ ├── fi_errno.3 │ ├── fi_fabric.3 │ ├── fi_fetch_atomic.3 │ ├── fi_fetch_atomic_valid.3 │ ├── fi_fetch_atomicmsg.3 │ ├── fi_fetch_atomicv.3 │ ├── fi_freeinfo.3 │ ├── fi_getinfo.3 │ ├── fi_getname.3 │ ├── fi_getopt.3 │ ├── fi_getpeer.3 │ ├── fi_inject.3 │ ├── fi_inject_atomic.3 │ ├── fi_inject_write.3 │ ├── fi_inject_writedata.3 │ ├── fi_injectdata.3 │ ├── fi_join.3 │ ├── fi_join_collective.3 │ ├── fi_leave.3 │ ├── fi_listen.3 │ ├── fi_mr.3 │ ├── fi_mr_bind.3 │ ├── fi_mr_desc.3 │ ├── fi_mr_key.3 │ ├── fi_mr_reg.3 │ ├── fi_mr_regattr.3 │ ├── fi_mr_regv.3 │ ├── fi_msg.3 │ ├── fi_nic.3 │ ├── fi_open.3 │ ├── fi_open_ops.3 │ ├── fi_passive_ep.3 │ ├── fi_pep_bind.3 │ ├── fi_poll.3 │ ├── fi_poll_add.3 │ ├── fi_poll_del.3 │ ├── fi_poll_open.3 │ ├── fi_query_atomic.3 │ ├── fi_query_collective.3 │ ├── fi_read.3 │ ├── fi_readmsg.3 │ ├── fi_readv.3 │ ├── fi_recv.3 │ ├── fi_recvmsg.3 │ ├── fi_recvv.3 │ ├── fi_reduce_scatter.3 │ ├── fi_reject.3 │ ├── fi_rma.3 │ ├── fi_rx_addr.3 │ ├── fi_rx_size_left.3 │ ├── fi_scalable_ep_bind.3 │ ├── fi_send.3 │ ├── fi_senddata.3 │ ├── fi_sendmsg.3 │ ├── fi_sendv.3 │ ├── fi_setname.3 │ ├── fi_setopt.3 │ ├── fi_shutdown.3 │ ├── fi_strerror.3 │ ├── fi_tagged.3 │ ├── fi_tinject.3 │ ├── fi_tinjectdata.3 │ ├── fi_tostr.3 │ ├── fi_trecv.3 │ ├── fi_trecvmsg.3 │ ├── fi_trecvv.3 │ ├── fi_trigger.3 │ ├── fi_trywait.3 │ ├── fi_tsend.3 │ ├── fi_tsenddata.3 │ ├── fi_tsendmsg.3 │ ├── fi_tsendv.3 │ ├── fi_tx_size_left.3 │ ├── fi_version.3 │ ├── fi_wait.3 │ ├── fi_wait_open.3 │ ├── fi_write.3 │ ├── fi_writedata.3 │ ├── fi_writemsg.3 │ └── fi_writev.3 └── man7 │ ├── fabric.7 │ ├── fi_bgq.7 │ ├── fi_direct.7 │ ├── fi_efa.7 │ ├── fi_gni.7 │ ├── fi_hook.7 │ ├── fi_mlx.7 │ ├── fi_mrail.7 │ ├── fi_netdir.7 │ ├── fi_provider.7 │ ├── fi_psm.7 │ ├── fi_psm2.7 │ ├── fi_rstream.7 │ ├── fi_rxd.7 │ ├── fi_rxm.7 │ ├── fi_shm.7 │ ├── fi_sockets.7 │ ├── fi_tcp.7 │ ├── fi_udp.7 │ ├── fi_usnic.7 │ └── fi_verbs.7 ├── pingpong.vcxproj ├── pingpong.vcxproj.filters ├── prov ├── bgq │ ├── .gitignore │ ├── Makefile.include │ ├── configure.m4 │ ├── include │ │ └── rdma │ │ │ ├── bgq │ │ │ ├── fi_bgq.h │ │ │ ├── fi_bgq_compiler.h │ │ │ ├── fi_bgq_flight_recorder.h │ │ │ ├── fi_bgq_hwi.h │ │ │ ├── fi_bgq_l2atomic.h │ │ │ ├── fi_bgq_mu.h │ │ │ ├── fi_bgq_node.h │ │ │ ├── fi_bgq_progress.h │ │ │ ├── fi_bgq_rx.h │ │ │ └── fi_bgq_spi.h │ │ │ ├── fi_direct.h.in │ │ │ ├── fi_direct_atomic.h │ │ │ ├── fi_direct_atomic_def.h │ │ │ ├── fi_direct_cm.h │ │ │ ├── fi_direct_domain.h │ │ │ ├── fi_direct_endpoint.h │ │ │ ├── fi_direct_eq.h │ │ │ ├── fi_direct_rma.h │ │ │ ├── fi_direct_tagged.h │ │ │ └── fi_direct_trigger.h │ ├── provider_FABRIC_1.0.map │ └── src │ │ ├── fi_bgq_agent.c │ │ ├── fi_bgq_atomic.c │ │ ├── fi_bgq_av.c │ │ ├── fi_bgq_cm.c │ │ ├── fi_bgq_cntr.c │ │ ├── fi_bgq_cq.c │ │ ├── fi_bgq_domain.c │ │ ├── fi_bgq_ep.c │ │ ├── fi_bgq_fabric.c │ │ ├── fi_bgq_info.c │ │ ├── fi_bgq_init.c │ │ ├── fi_bgq_mr.c │ │ ├── fi_bgq_msg.c │ │ ├── fi_bgq_node.c │ │ ├── fi_bgq_pmi.c │ │ ├── fi_bgq_progress.c │ │ ├── fi_bgq_rma.c │ │ ├── fi_bgq_sep.c │ │ ├── fi_bgq_spi.c │ │ ├── fi_bgq_tagged.c │ │ └── test │ │ ├── Makefile.include │ │ ├── cq_agent_init.c │ │ ├── cq_mfifo_init.c │ │ ├── cq_mfifo_multithreaded.c │ │ ├── cq_mfifo_multithreaded_perf.c │ │ ├── cq_mfifo_overflow.c │ │ ├── l2alloc_func.c │ │ ├── l2alloc_simple.c │ │ ├── l2alloc_single.c │ │ ├── l2atomic_fifo_perf.c │ │ ├── l2barrier_func.c │ │ ├── l2lock_func.c │ │ ├── l2lock_init.c │ │ └── spi_pingpong.c ├── efa │ ├── Makefile.include │ ├── configure.m4 │ └── src │ │ ├── efa.h │ │ ├── efa_av.c │ │ ├── efa_cm.c │ │ ├── efa_cq.c │ │ ├── efa_device.c │ │ ├── efa_domain.c │ │ ├── efa_ep.c │ │ ├── efa_fabric.c │ │ ├── efa_mr.c │ │ ├── efa_msg.c │ │ ├── efa_rma.c │ │ └── rxr │ │ ├── rxr.h │ │ ├── rxr_atomic.c │ │ ├── rxr_atomic.h │ │ ├── rxr_attr.c │ │ ├── rxr_cntr.c │ │ ├── rxr_cntr.h │ │ ├── rxr_cq.c │ │ ├── rxr_domain.c │ │ ├── rxr_ep.c │ │ ├── rxr_fabric.c │ │ ├── rxr_init.c │ │ ├── rxr_msg.c │ │ ├── rxr_msg.h │ │ ├── rxr_pkt_cmd.c │ │ ├── rxr_pkt_cmd.h │ │ ├── rxr_pkt_entry.c │ │ ├── rxr_pkt_entry.h │ │ ├── rxr_pkt_type.h │ │ ├── rxr_pkt_type_data.c │ │ ├── rxr_pkt_type_misc.c │ │ ├── rxr_pkt_type_req.c │ │ ├── rxr_pkt_type_req.h │ │ ├── rxr_read.c │ │ ├── rxr_read.h │ │ ├── rxr_rma.c │ │ └── rxr_rma.h ├── gni │ ├── Makefile.include │ ├── README.md │ ├── configure.m4 │ ├── contrib │ │ └── gnitest.supp │ ├── gnix.map │ ├── include │ │ ├── fi_ext_gni.h │ │ ├── gnix.h │ │ ├── gnix_atomic.h │ │ ├── gnix_auth_key.h │ │ ├── gnix_av.h │ │ ├── gnix_bitmap.h │ │ ├── gnix_buddy_allocator.h │ │ ├── gnix_cm.h │ │ ├── gnix_cm_nic.h │ │ ├── gnix_cntr.h │ │ ├── gnix_cq.h │ │ ├── gnix_datagram.h │ │ ├── gnix_ep.h │ │ ├── gnix_eq.h │ │ ├── gnix_freelist.h │ │ ├── gnix_hashtable.h │ │ ├── gnix_mbox_allocator.h │ │ ├── gnix_mr.h │ │ ├── gnix_mr_cache.h │ │ ├── gnix_mr_notifier.h │ │ ├── gnix_msg.h │ │ ├── gnix_nameserver.h │ │ ├── gnix_nic.h │ │ ├── gnix_poll.h │ │ ├── gnix_priv.h │ │ ├── gnix_progress.h │ │ ├── gnix_queue.h │ │ ├── gnix_rma.h │ │ ├── gnix_shmem.h │ │ ├── gnix_smrn.h │ │ ├── gnix_tags.h │ │ ├── gnix_trigger.h │ │ ├── gnix_util.h │ │ ├── gnix_vc.h │ │ ├── gnix_vector.h │ │ ├── gnix_wait.h │ │ ├── gnix_xpmem.h │ │ └── rdma │ │ │ ├── fi_direct.h │ │ │ ├── fi_direct_atomic.h │ │ │ ├── fi_direct_atomic_def.h │ │ │ ├── fi_direct_cm.h │ │ │ ├── fi_direct_domain.h │ │ │ ├── fi_direct_endpoint.h │ │ │ ├── fi_direct_eq.h │ │ │ ├── fi_direct_rma.h │ │ │ ├── fi_direct_tagged.h │ │ │ └── fi_direct_trigger.h │ ├── provider_FABRIC_1.0.map │ ├── src │ │ ├── gnix_atomic.c │ │ ├── gnix_auth_key.c │ │ ├── gnix_av.c │ │ ├── gnix_bitmap.c │ │ ├── gnix_buddy_allocator.c │ │ ├── gnix_cm.c │ │ ├── gnix_cm_nic.c │ │ ├── gnix_cntr.c │ │ ├── gnix_cq.c │ │ ├── gnix_datagram.c │ │ ├── gnix_dom.c │ │ ├── gnix_ep.c │ │ ├── gnix_eq.c │ │ ├── gnix_fabric.c │ │ ├── gnix_freelist.c │ │ ├── gnix_hashtable.c │ │ ├── gnix_init.c │ │ ├── gnix_mbox_allocator.c │ │ ├── gnix_mr.c │ │ ├── gnix_mr_cache.c │ │ ├── gnix_mr_notifier.c │ │ ├── gnix_msg.c │ │ ├── gnix_nameserver.c │ │ ├── gnix_nic.c │ │ ├── gnix_poll.c │ │ ├── gnix_progress.c │ │ ├── gnix_queue.c │ │ ├── gnix_rma.c │ │ ├── gnix_sep.c │ │ ├── gnix_shmem.c │ │ ├── gnix_smrn.c │ │ ├── gnix_tags.c │ │ ├── gnix_trigger.c │ │ ├── gnix_util.c │ │ ├── gnix_vc.c │ │ ├── gnix_vector.c │ │ ├── gnix_wait.c │ │ └── gnix_xpmem.c │ └── test │ │ ├── allocator.c │ │ ├── api.c │ │ ├── api_cntr.c │ │ ├── api_cq.c │ │ ├── auth_key.c │ │ ├── av.c │ │ ├── bitmap.c │ │ ├── buddy_allocator.c │ │ ├── cancel.c │ │ ├── cm.c │ │ ├── cntr.c │ │ ├── common.c │ │ ├── common.h │ │ ├── cq.c │ │ ├── datagram.c │ │ ├── dlist-utils.c │ │ ├── dom.c │ │ ├── ep.c │ │ ├── eq.c │ │ ├── fabric.c │ │ ├── fi_addr_str.c │ │ ├── freelist.c │ │ ├── gnix_rdma_headers.h │ │ ├── hashtable.c │ │ ├── mr.c │ │ ├── mr_notifier.c │ │ ├── nic.c │ │ ├── pmi_utils.c │ │ ├── queue.c │ │ ├── rdm_addr_str_sr.c │ │ ├── rdm_atomic.c │ │ ├── rdm_dgram_rma.c │ │ ├── rdm_dgram_stx.c │ │ ├── rdm_fi_pcd_trecv_msg.c │ │ ├── rdm_multi_recv.c │ │ ├── rdm_rx_overrun.c │ │ ├── rdm_sr.c │ │ ├── rdm_tagged_sr.c │ │ ├── run_gnitest │ │ ├── sep.c │ │ ├── shmem.c │ │ ├── smrn.c │ │ ├── tags.c │ │ ├── utils.c │ │ ├── vc.c │ │ ├── vc_lookup.c │ │ ├── vector.c │ │ └── wait.c ├── hook │ ├── Makefile.include │ ├── hook_debug │ │ ├── Makefile.include │ │ ├── configure.m4 │ │ ├── include │ │ │ └── hook_debug.h │ │ └── src │ │ │ └── hook_debug.c │ ├── include │ │ └── hook_prov.h │ ├── perf │ │ ├── Makefile.include │ │ ├── configure.m4 │ │ ├── include │ │ │ └── hook_perf.h │ │ └── src │ │ │ └── hook_perf.c │ └── src │ │ ├── hook.c │ │ ├── hook_av.c │ │ ├── hook_cm.c │ │ ├── hook_cntr.c │ │ ├── hook_cq.c │ │ ├── hook_domain.c │ │ ├── hook_ep.c │ │ ├── hook_eq.c │ │ ├── hook_wait.c │ │ └── hook_xfer.c ├── mrail │ ├── Makefile.include │ ├── configure.m4 │ └── src │ │ ├── mrail.h │ │ ├── mrail_attr.c │ │ ├── mrail_av.c │ │ ├── mrail_cq.c │ │ ├── mrail_domain.c │ │ ├── mrail_ep.c │ │ ├── mrail_fabric.c │ │ ├── mrail_init.c │ │ └── mrail_rma.c ├── netdir │ ├── NetDirect │ │ └── README.NetworkDirect │ └── src │ │ ├── netdir.h │ │ ├── netdir_addr.c │ │ ├── netdir_buf.h │ │ ├── netdir_cntr.c │ │ ├── netdir_cq.c │ │ ├── netdir_cq.h │ │ ├── netdir_domain.c │ │ ├── netdir_ep.c │ │ ├── netdir_ep_msg.c │ │ ├── netdir_ep_rma.c │ │ ├── netdir_ep_srx.c │ │ ├── netdir_eq.c │ │ ├── netdir_fabric.c │ │ ├── netdir_fs.c │ │ ├── netdir_iface.h │ │ ├── netdir_init.c │ │ ├── netdir_log.h │ │ ├── netdir_mr.c │ │ ├── netdir_ndinit.c │ │ ├── netdir_ov.c │ │ ├── netdir_ov.h │ │ ├── netdir_pep.c │ │ ├── netdir_queue.h │ │ ├── netdir_unexp.c │ │ ├── netdir_unexp.h │ │ └── netdir_util.h ├── psm │ ├── Makefile.include │ ├── configure.m4 │ ├── libfabric-psm.spec.in │ └── src │ │ ├── psm_am.h │ │ ├── psmx.h │ │ ├── psmx_am.c │ │ ├── psmx_atomic.c │ │ ├── psmx_av.c │ │ ├── psmx_cm.c │ │ ├── psmx_cntr.c │ │ ├── psmx_cq.c │ │ ├── psmx_domain.c │ │ ├── psmx_ep.c │ │ ├── psmx_fabric.c │ │ ├── psmx_init.c │ │ ├── psmx_mr.c │ │ ├── psmx_msg.c │ │ ├── psmx_msg2.c │ │ ├── psmx_rma.c │ │ ├── psmx_tagged.c │ │ ├── psmx_util.c │ │ ├── psmx_wait.c │ │ └── version.h ├── psm2 │ ├── Makefile.include │ ├── build-psm2.sh │ ├── configure.m4 │ ├── include │ │ └── rdma │ │ │ ├── fi_direct.h │ │ │ ├── fi_direct_atomic.h │ │ │ ├── fi_direct_atomic_def.h │ │ │ ├── fi_direct_cm.h │ │ │ ├── fi_direct_domain.h │ │ │ ├── fi_direct_endpoint.h │ │ │ ├── fi_direct_eq.h │ │ │ ├── fi_direct_rma.h │ │ │ ├── fi_direct_tagged.h │ │ │ └── fi_direct_trigger.h │ ├── libfabric-psm2.spec.in │ ├── provider_FABRIC_1.0.map │ └── src │ │ ├── psm2_revision.c │ │ ├── psmx2.h │ │ ├── psmx2_am.c │ │ ├── psmx2_atomic.c │ │ ├── psmx2_attr.c │ │ ├── psmx2_av.c │ │ ├── psmx2_cm.c │ │ ├── psmx2_cntr.c │ │ ├── psmx2_cq.c │ │ ├── psmx2_domain.c │ │ ├── psmx2_ep.c │ │ ├── psmx2_fabric.c │ │ ├── psmx2_init.c │ │ ├── psmx2_mr.c │ │ ├── psmx2_msg.c │ │ ├── psmx2_rma.c │ │ ├── psmx2_tagged.c │ │ ├── psmx2_trigger.h │ │ ├── psmx2_trx_ctxt.c │ │ ├── psmx2_util.c │ │ ├── psmx2_wait.c │ │ └── version.h ├── rstream │ ├── Makefile.include │ ├── configure.m4 │ └── src │ │ ├── rstream.h │ │ ├── rstream_attr.c │ │ ├── rstream_cm.c │ │ ├── rstream_domain.c │ │ ├── rstream_ep.c │ │ ├── rstream_eq.c │ │ ├── rstream_fabric.c │ │ ├── rstream_init.c │ │ └── rstream_msg.c ├── rxd │ ├── Makefile.include │ ├── configure.m4 │ └── src │ │ ├── rxd.h │ │ ├── rxd_atomic.c │ │ ├── rxd_attr.c │ │ ├── rxd_av.c │ │ ├── rxd_cntr.c │ │ ├── rxd_cq.c │ │ ├── rxd_domain.c │ │ ├── rxd_ep.c │ │ ├── rxd_fabric.c │ │ ├── rxd_init.c │ │ ├── rxd_msg.c │ │ ├── rxd_proto.h │ │ ├── rxd_rma.c │ │ └── rxd_tagged.c ├── rxm │ ├── Makefile.include │ ├── configure.m4 │ └── src │ │ ├── rxm.h │ │ ├── rxm_atomic.c │ │ ├── rxm_attr.c │ │ ├── rxm_av.c │ │ ├── rxm_conn.c │ │ ├── rxm_cq.c │ │ ├── rxm_domain.c │ │ ├── rxm_ep.c │ │ ├── rxm_fabric.c │ │ ├── rxm_init.c │ │ └── rxm_rma.c ├── shm │ ├── Makefile.include │ ├── configure.m4 │ └── src │ │ ├── smr.h │ │ ├── smr_atomic.c │ │ ├── smr_attr.c │ │ ├── smr_av.c │ │ ├── smr_cntr.c │ │ ├── smr_comp.c │ │ ├── smr_cq.c │ │ ├── smr_domain.c │ │ ├── smr_ep.c │ │ ├── smr_fabric.c │ │ ├── smr_init.c │ │ ├── smr_msg.c │ │ ├── smr_progress.c │ │ ├── smr_rma.c │ │ └── smr_signal.h ├── sockets │ ├── Makefile.include │ ├── configure.m4 │ ├── include │ │ ├── rdma │ │ │ ├── fi_direct.h │ │ │ ├── fi_direct_atomic.h │ │ │ ├── fi_direct_atomic_def.h │ │ │ ├── fi_direct_cm.h │ │ │ ├── fi_direct_domain.h │ │ │ ├── fi_direct_endpoint.h │ │ │ ├── fi_direct_eq.h │ │ │ ├── fi_direct_rma.h │ │ │ ├── fi_direct_tagged.h │ │ │ └── fi_direct_trigger.h │ │ ├── sock.h │ │ └── sock_util.h │ ├── libfabric-sockets.spec.in │ ├── provider_FABRIC_1.0.map │ └── src │ │ ├── sock_atomic.c │ │ ├── sock_attr.c │ │ ├── sock_av.c │ │ ├── sock_cntr.c │ │ ├── sock_comm.c │ │ ├── sock_conn.c │ │ ├── sock_cq.c │ │ ├── sock_ctx.c │ │ ├── sock_dom.c │ │ ├── sock_ep.c │ │ ├── sock_ep_dgram.c │ │ ├── sock_ep_msg.c │ │ ├── sock_ep_rdm.c │ │ ├── sock_eq.c │ │ ├── sock_fabric.c │ │ ├── sock_mr.c │ │ ├── sock_msg.c │ │ ├── sock_poll.c │ │ ├── sock_progress.c │ │ ├── sock_rma.c │ │ ├── sock_rx_entry.c │ │ ├── sock_trigger.c │ │ └── sock_wait.c ├── tcp │ ├── Makefile.include │ ├── configure.m4 │ └── src │ │ ├── tcpx.h │ │ ├── tcpx_attr.c │ │ ├── tcpx_comm.c │ │ ├── tcpx_conn_mgr.c │ │ ├── tcpx_cq.c │ │ ├── tcpx_domain.c │ │ ├── tcpx_ep.c │ │ ├── tcpx_eq.c │ │ ├── tcpx_fabric.c │ │ ├── tcpx_init.c │ │ ├── tcpx_msg.c │ │ ├── tcpx_progress.c │ │ ├── tcpx_rma.c │ │ └── tcpx_shared_ctx.c ├── udp │ ├── Makefile.include │ ├── configure.m4 │ ├── libfabric-udp.spec.in │ └── src │ │ ├── udpx.h │ │ ├── udpx_attr.c │ │ ├── udpx_cq.c │ │ ├── udpx_domain.c │ │ ├── udpx_ep.c │ │ ├── udpx_fabric.c │ │ └── udpx_init.c ├── usnic │ ├── Makefile.include │ ├── configure.m4 │ ├── libfabric-usnic.spec.in │ └── src │ │ ├── fi_ext_usnic.h │ │ ├── usdf.h │ │ ├── usdf_av.c │ │ ├── usdf_av.h │ │ ├── usdf_cm.c │ │ ├── usdf_cm.h │ │ ├── usdf_cq.c │ │ ├── usdf_cq.h │ │ ├── usdf_dgram.c │ │ ├── usdf_dgram.h │ │ ├── usdf_domain.c │ │ ├── usdf_endpoint.c │ │ ├── usdf_endpoint.h │ │ ├── usdf_ep_dgram.c │ │ ├── usdf_eq.c │ │ ├── usdf_ext.c │ │ ├── usdf_fabric.c │ │ ├── usdf_fake_ibv.c │ │ ├── usdf_mem.c │ │ ├── usdf_pep.c │ │ ├── usdf_poll.c │ │ ├── usdf_poll.h │ │ ├── usdf_progress.c │ │ ├── usdf_progress.h │ │ ├── usdf_rudp.h │ │ ├── usdf_socket.c │ │ ├── usdf_socket.h │ │ ├── usdf_timer.c │ │ ├── usdf_timer.h │ │ ├── usdf_wait.c │ │ ├── usdf_wait.h │ │ └── usnic_direct │ │ ├── cq_desc.h │ │ ├── cq_enet_desc.h │ │ ├── kcompat.h │ │ ├── kcompat_priv.h │ │ ├── libnl1_utils.h │ │ ├── libnl3_utils.h │ │ ├── libnl_utils.h │ │ ├── libnl_utils_common.c │ │ ├── linux │ │ ├── delay.h │ │ └── slab.h │ │ ├── linux_types.h │ │ ├── rq_enet_desc.h │ │ ├── usd.h │ │ ├── usd_caps.c │ │ ├── usd_caps.h │ │ ├── usd_dest.c │ │ ├── usd_dest.h │ │ ├── usd_device.c │ │ ├── usd_device.h │ │ ├── usd_enum.c │ │ ├── usd_event.c │ │ ├── usd_ib_cmd.c │ │ ├── usd_ib_cmd.h │ │ ├── usd_ib_sysfs.c │ │ ├── usd_ib_sysfs.h │ │ ├── usd_mem.c │ │ ├── usd_poll.c │ │ ├── usd_post.c │ │ ├── usd_post.h │ │ ├── usd_post_ud_pio_udp.c │ │ ├── usd_post_ud_raw.c │ │ ├── usd_post_ud_udp.c │ │ ├── usd_queue.h │ │ ├── usd_queues.c │ │ ├── usd_socket.c │ │ ├── usd_socket.h │ │ ├── usd_time.h │ │ ├── usd_util.h │ │ ├── usd_vnic.c │ │ ├── usd_vnic.h │ │ ├── usnic_abi.h │ │ ├── usnic_direct.h │ │ ├── usnic_ib_abi.h │ │ ├── usnic_ip_utils.c │ │ ├── usnic_ip_utils.h │ │ ├── usnic_user_utils.h │ │ ├── vnic_cq.c │ │ ├── vnic_cq.h │ │ ├── vnic_dev.c │ │ ├── vnic_dev.h │ │ ├── vnic_devcmd.h │ │ ├── vnic_enet.h │ │ ├── vnic_intr.c │ │ ├── vnic_intr.h │ │ ├── vnic_resource.h │ │ ├── vnic_rq.c │ │ ├── vnic_rq.h │ │ ├── vnic_stats.h │ │ ├── vnic_wq.c │ │ ├── vnic_wq.h │ │ └── wq_enet_desc.h ├── util │ └── src │ │ ├── util_atomic.c │ │ ├── util_attr.c │ │ ├── util_av.c │ │ ├── util_buf.c │ │ ├── util_cntr.c │ │ ├── util_coll.c │ │ ├── util_cq.c │ │ ├── util_domain.c │ │ ├── util_ep.c │ │ ├── util_eq.c │ │ ├── util_fabric.c │ │ ├── util_main.c │ │ ├── util_mem_hooks.c │ │ ├── util_mem_monitor.c │ │ ├── util_mr_cache.c │ │ ├── util_mr_map.c │ │ ├── util_ns.c │ │ ├── util_pep.c │ │ ├── util_poll.c │ │ ├── util_shm.c │ │ └── util_wait.c └── verbs │ ├── Makefile.include │ ├── configure.m4 │ ├── libfabric-verbs.spec.in │ └── src │ ├── fi_verbs.c │ ├── fi_verbs.h │ ├── ofi_verbs_priv.h │ ├── verbs_cm.c │ ├── verbs_cm_xrc.c │ ├── verbs_cq.c │ ├── verbs_dgram_av.c │ ├── verbs_dgram_ep_msg.c │ ├── verbs_domain.c │ ├── verbs_domain_xrc.c │ ├── verbs_ep.c │ ├── verbs_eq.c │ ├── verbs_info.c │ ├── verbs_mr.c │ ├── verbs_msg.c │ └── verbs_rma.c ├── src ├── abi_1_0.c ├── common.c ├── enosys.c ├── fabric.c ├── fasthash.c ├── fi_tostr.c ├── hmem.c ├── hmem_cuda.c ├── indexer.c ├── iov.c ├── linux │ ├── osd.c │ └── rdpmc.c ├── log.c ├── mem.c ├── perf.c ├── rbtree.c ├── shared │ └── ofi_str.c ├── tree.c ├── unix │ └── osd.c ├── var.c └── windows │ └── osd.c ├── strerror.vcxproj ├── strerror.vcxproj.filters └── util ├── info.c ├── pingpong.c ├── strerror.c └── windows └── getopt ├── getopt.cpp └── getopt.h /.appveyor.ps1: -------------------------------------------------------------------------------- 1 | [cmdletbinding()] Param() 2 | 3 | $ErrorActionPreference="Stop" 4 | 5 | 6 | Write-Verbose "downloading NetworkDirect DDK.." 7 | Invoke-WebRequest -Uri "https://download.microsoft.com/download/5/A/E/5AEA3C34-32A1-4A70-9622-F9734E92981F/NetworkDirect_DDK.zip" -OutFile "NetworkDirect_DDK.zip" 8 | Write-Verbose "done" 9 | 10 | Write-Verbose "extracting NetworkDirect DDK.." 11 | $wd=$PWD.Path; & { Add-Type -A "System.IO.Compression.FileSystem"; [IO.Compression.ZipFile]::ExtractToDirectory("$wd\NetworkDirect_DDK.zip", "$wd"); } 12 | Write-Verbose "done" 13 | 14 | Write-Verbose "moving NetworkDirect headers.." 15 | move NetDirect\include\* prov\netdir\NetDirect 16 | Write-Verbose "done" 17 | -------------------------------------------------------------------------------- /.appveyor.yml: -------------------------------------------------------------------------------- 1 | image: 2 | - Visual Studio 2015 3 | - Visual Studio 2017 4 | 5 | build: 6 | project: libfabric.sln 7 | 8 | configuration: 9 | - Debug-v140 10 | - Debug-v141 11 | - Release-v140 12 | - Release-v141 13 | 14 | matrix: 15 | exclude: 16 | - configuration: Debug-v141 17 | image: Visual Studio 2015 18 | - configuration: Release-v141 19 | image: Visual Studio 2015 20 | 21 | before_build: 22 | - ps: .appveyor.ps1 -Verbose 23 | 24 | after_build: 25 | - set PATH=%CD%\x64\%CONFIGURATION%;%PATH% 26 | 27 | before_test: 28 | - cd fabtests 29 | - msbuild fabtests.sln 30 | 31 | test_script: 32 | - set PATH=%CD%\x64\%CONFIGURATION%;%PATH% 33 | - set FI_PROVIDER=sockets 34 | - scripts\runfabtests.cmd 35 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.cmd eol=crlf 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .libs 2 | .deps 3 | .dirstamp 4 | *.o 5 | *.lo 6 | *.la 7 | *.obj 8 | *.vcxproj.user 9 | *.pdb 10 | *.tlog 11 | *.ilk 12 | *.exp 13 | *.exe.manifest 14 | *.dll.manifest 15 | *.vc.db 16 | *.vc.opendb 17 | *.log 18 | *.exe 19 | *.lib 20 | *.dll 21 | *.lastbuildstate 22 | *.iobj 23 | *.idb 24 | *.suo 25 | *.ipdb 26 | *.orig 27 | *.c~ 28 | *.h~ 29 | stamp-h? 30 | Makefile 31 | Makefile.in 32 | aclocal.m4 33 | autom4te.cache 34 | config/* 35 | config.h 36 | config.h.in 37 | config.h.in~ 38 | config.log 39 | config.lt 40 | config.status 41 | configure 42 | libtool 43 | 44 | libfabric.spec 45 | libfabric.pc 46 | libfabric.map 47 | 48 | config/ar-lib 49 | config/compile 50 | config/config.guess 51 | config/config.sub 52 | config/depcomp 53 | config/install-sh 54 | config/libtool.m4 55 | config/ltmain.sh 56 | config/lt*.m4 57 | config/missing 58 | config/test-driver 59 | 60 | util/fi_info 61 | util/fi_strerror 62 | util/fi_pingpong 63 | 64 | prov/*/*.spec 65 | 66 | .vs 67 | fabtests.spec 68 | 69 | fabtests/config 70 | fabtests/ubertest/fabtest 71 | fabtests/ubertest/fi_ubertest 72 | 73 | fabtests/benchmarks/fi_* 74 | fabtests/functional/fi_* 75 | fabtests/unit/fi_* 76 | fabtests/multinode/fi_* 77 | pingpong/fi_* 78 | -------------------------------------------------------------------------------- /.mailmap: -------------------------------------------------------------------------------- 1 | Ben Turrubiates 2 | Dave Goodell 3 | Howard Pritchard 4 | Jeff Squyres 5 | Patrick McCormick 6 | Reese Faucette 7 | Miao Luo 8 | Jianxin Xiong 9 | Shantonu Hossain 10 | Chen Zhao 11 | -------------------------------------------------------------------------------- /CONTRIBUTORS: -------------------------------------------------------------------------------- 1 | All patches submitted for inclusion must adhere to the OpenFabric 2 | bylaws for code submission. The OpenFabric bylaws are available at: 3 | https://www.openfabrics.org/images/membership/ofa_bylaws_march_2011.pdf 4 | 5 | In brief, these bylaws require: 6 | 7 | That all contributions be under a license that grants users of 8 | the contributions perpetual, irrevocable, worldwide, non-exclusive, royalty- 9 | free copyright license to reproduce, display, perform, prepare, and have 10 | prepared derivative works. 11 | 12 | All contributions are submitted under dual BSD and GPLv2 licenses. 13 | 14 | All contributions must be encumbrance free. Any intellectual property 15 | included as part of any contribution is granted royalty free in 16 | perpetuity. 17 | 18 | All contributions must contain a sign-off tag in each commit message 19 | indicating agreement to the above terms, otherwise the contribution 20 | cannot be accepted. An example sign-off tag looks like: 21 | """ 22 | Signed-off-by: Some Developer 23 | """ 24 | -------------------------------------------------------------------------------- /autogen.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | if test ! -d .git && test ! -f src/fabric.c; then 4 | echo You really need to run this script in the top-level libfabric directory 5 | exit 1 6 | fi 7 | 8 | set -x 9 | 10 | autoreconf -ivf 11 | -------------------------------------------------------------------------------- /config/github-webhook/apache-config.txt: -------------------------------------------------------------------------------- 1 | # Github webhooks for the ofiwg project. 2 | # This is a reverse proxy to a trivial Ruby Sinatra server running on 3 | # the localhost (and is not otherwise accessible to the outside 4 | # world). 5 | ProxyPass /github-webhooks/ofiwg/ http://127.0.0.1:5000/ 6 | 7 | ProxyPassReverse http://127.0.0.1:5000/ 8 | RequestHeader unset Accept-Encoding 9 | 10 | -------------------------------------------------------------------------------- /config/github-webhook/github-webhook-ofiwg-init.d-ubuntu: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | ### BEGIN INIT INFO 3 | # Provides: github-webhook-ofiwg 4 | # Required-Start: 5 | # Required-Stop: 6 | # Default-Start: 7 | # Default-Stop: 0 8 | # Short-Description: Run the Github webhook for ofiwg 9 | # Description: 10 | ### END INIT INFO 11 | 12 | PATH=/sbin:/usr/sbin:/bin:/usr/bin 13 | [ -f /etc/default/github-webhook-ofiwg ] && . /etc/default/github-webhook-ofiwg 14 | 15 | . /lib/lsb/init-functions 16 | 17 | RETVAL=0 18 | prog="/var/www/html/github-webhooks/ofiwg/verify-signed-off.rb" 19 | desc="Github webhook listener for ofiwg" 20 | pidfile="/var/run/github-webhook-ofiwg.pid" 21 | 22 | do_start() { 23 | [ -x $prog ] || exit 5 24 | 25 | log_action_msg "Starting $desc" 26 | 27 | pid=`ps -eadf | grep "ruby $prog" | grep -v grep | awk '{ print $2 }'` 28 | if test -z "$pid"; then 29 | $prog > /dev/null 2>&1 & 30 | RETVAL=$? 31 | else 32 | RETVAL=1 33 | fi 34 | [ $RETVAL -eq 0 ] && log_success_msg 35 | [ $RETVAL -ne 0 ] && log_failure_msg 36 | log_end_msg $RETVAL 37 | return $RETVAL 38 | } 39 | 40 | do_stop() { 41 | [ -x $prog ] || exit 5 42 | 43 | log_action_msg "Stopping $desc" 44 | pid=`ps -eadf | grep "ruby $prog" | grep -v grep | awk '{ print $2 }'` 45 | if test -n "$pid"; then 46 | kill $pid > /dev/null 2>&1 47 | RETVAL=$? 48 | else 49 | RETVAL=1 50 | fi 51 | [ $RETVAL -eq 0 ] && log_success_msg 52 | [ $RETVAL -ne 0 ] && log_failure_msg 53 | log_end_msg $RETVAL 54 | return $RETVAL 55 | } 56 | 57 | do_restart() { 58 | do_stop 59 | sleep 1 60 | do_start 61 | } 62 | 63 | case "$1" in 64 | start) 65 | do_start 66 | ;; 67 | restart) 68 | do_restart 69 | ;; 70 | reload|force-reload) 71 | log_action_msg "Error: argument '$1' not supported" 72 | log_action_end_msg 7 73 | exit 7 74 | ;; 75 | stop) 76 | do_stop 77 | ;; 78 | *) 79 | log_action_msg "Usage: $0 start|stop|restart" 80 | log_action_end_msg 3 81 | exit 3 82 | ;; 83 | esac 84 | 85 | exit $RETVAL 86 | -------------------------------------------------------------------------------- /config/ofiwg-bot@flatbed-.bashrc: -------------------------------------------------------------------------------- 1 | # .bashrc 2 | 3 | # Source global definitions 4 | if [ -f /etc/bashrc ]; then 5 | . /etc/bashrc 6 | fi 7 | 8 | # User specific aliases and functions 9 | export PATH=$HOME/cron/local/bin:$PATH 10 | export MANPATH=$HOME/cron/local/share/man:$MANPATH 11 | 12 | umask 2 13 | -------------------------------------------------------------------------------- /contrib/cray/bats/smoketests.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | load test_helper 4 | 5 | @test "fi_info" { 6 | run ${CONTRIB_BIN}/logwrap -w ${BATS_TEST_LOGFILE} -- $(batch_launcher 1 1) ${LIBFABRIC_INSTALL_PATH}/bin/fi_info -p 'verbs;ofi_rxm' 7 | [ $(grep 'provider: verbs;ofi_rxm' ${BATS_TEST_LOGFILE} | uniq | wc -l) -gt 0 ] 8 | [ "$status" -eq 0 ] 9 | } 10 | 11 | @test "fi_info_xrc" { 12 | FI_OFI_RXM_USE_SRX=1 run ${CONTRIB_BIN}/logwrap -w ${BATS_TEST_LOGFILE} -- $(batch_launcher 1 1) ${LIBFABRIC_INSTALL_PATH}/bin/fi_info -p 'verbs;ofi_rxm' 13 | [ $(grep 'domain' ${BATS_TEST_LOGFILE} | grep '\-xrc' | wc -l) -gt 0 ] 14 | [ "$status" -eq 0 ] 15 | } 16 | 17 | @test "prefer_rc" { 18 | FI_OFI_RXM_USE_SRX=1 run ${CONTRIB_BIN}/logwrap -w ${BATS_TEST_LOGFILE} -- $(batch_launcher 1 1) ${LIBFABRIC_INSTALL_PATH}/bin/fi_info -p 'verbs;ofi_rxm' 19 | [ $(grep 'domain' ${BATS_TEST_LOGFILE} | head -n1 | grep '\-xrc' | wc -l) -eq 0 ] 20 | [ "$status" -eq 0 ] 21 | } 22 | 23 | @test "prefer_xrc" { 24 | FI_VERBS_PREFER_XRC=1 FI_OFI_RXM_USE_SRX=1 run ${CONTRIB_BIN}/logwrap -w ${BATS_TEST_LOGFILE} -- $(batch_launcher 1 1) ${LIBFABRIC_INSTALL_PATH}/bin/fi_info -p 'verbs;ofi_rxm' 25 | [ $(grep 'domain' ${BATS_TEST_LOGFILE} | head -n1 | grep '\-xrc' | wc -l) -gt 0 ] 26 | [ "$status" -eq 0 ] 27 | } 28 | -------------------------------------------------------------------------------- /contrib/cray/bats/test_helper.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | SOURCE="${BASH_SOURCE[0]}" 4 | while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink 5 | DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null && pwd )" 6 | SOURCE="$(readlink "$SOURCE")" 7 | [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located 8 | done 9 | DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null && pwd )" 10 | 11 | if [[ -z "$BATS_LOG_DIRECTORY" ]] ; then 12 | export BATS_LOG_DIRECTORY=$PWD 13 | fi 14 | 15 | if [[ ! -d $BATS_LOG_DIRECTORY ]] ; then 16 | mkdir -p $BATS_LOG_DIRECTORY 17 | fi 18 | 19 | export CONTRIB_BIN=$DIR/../bin 20 | 21 | _cancel() { 22 | echo caught sigint 23 | kill -s SIGKILL 24 | } 25 | 26 | setup() { 27 | export BATS_TEST_LOGFILE="${BATS_LOG_DIRECTORY}/${BATS_TEST_NAME}.log" 28 | } 29 | 30 | teardown() { 31 | cat ${BATS_TEST_LOGFILE} || true 32 | } 33 | 34 | function batch_launcher { 35 | if [[ $# -lt 2 ]] ; then 36 | error "not enough arguments" 37 | fi 38 | NUM_RANKS=$1 39 | NUM_RANKS_PER_NODE=$2 40 | echo "srun -n ${NUM_RANKS} --ntasks-per-node ${NUM_RANKS_PER_NODE}" 41 | } 42 | 43 | # necessary to avoid deadlocks during termination/interrupt 44 | trap _cancel SIGINT 45 | -------------------------------------------------------------------------------- /contrib/cray/bin/common.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # DIR is expected to be defined by files that include these common variables 4 | BUILD_VERSION=$(cat $DIR/../share/version) 5 | ROOT_INSTALL_PATH=$LIBFABRIC_BUILD_PATH/virtualenv/ 6 | PREREQ_INSTALL_PATH=$ROOT_INSTALL_PATH/prerequisites 7 | VIRTUALENV_INSTALL_PATH=$ROOT_INSTALL_PATH/venv-${BUILD_VERSION} 8 | 9 | -------------------------------------------------------------------------------- /contrib/cray/bin/fabtest_wrapper.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ -z ${FABTEST_PATH} ]] ; then 4 | export FABTEST_PATH=/scratch/jenkins/builds/fabtests/stable 5 | fi 6 | 7 | export PATH=${FABTEST_PATH}/bin:$PATH 8 | 9 | if [[ -z ${FABTEST_PROVIDER} ]] ; then 10 | FABTEST_PROVIDER='verbs;ofi_rxm' 11 | fi 12 | 13 | if [[ -z ${SLURMD_NODENAME} ]] ; then 14 | echo SLURM is the only supported WLM at this point for testing 15 | exit 1 16 | fi 17 | 18 | SERVER=$(scontrol show hostname ${SLURM_NODELIST} | head -n1) 19 | CLIENT=$(scontrol show hostname ${SLURM_NODELIST} | tail -n1) 20 | 21 | SERVER_ADDR=$(getent hosts ${SERVER} | awk '{print $1}') 22 | CLIENT_ADDR=$(getent hosts ${CLIENT} | awk '{print $1}') 23 | 24 | if [[ "${SLURMD_NODENAME}" == "$SERVER" ]] ; then 25 | runfabtests.sh \ 26 | $@ \ 27 | "${FABTEST_PROVIDER}" \ 28 | ${SERVER_ADDR} \ 29 | ${CLIENT_ADDR} 30 | fi 31 | -------------------------------------------------------------------------------- /contrib/cray/bin/logwrap: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | SOURCE="${BASH_SOURCE[0]}" 4 | while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink 5 | DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" 6 | SOURCE="$(readlink "$SOURCE")" 7 | [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located 8 | done 9 | DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" 10 | OUTFILE="log" 11 | OPTS=`getopt -o hw: --long help,outfile -n 'parse-options' -- "$@"` 12 | HELP=false 13 | 14 | if [ $? != 0 ] ; then echo "Failed parsing options." >&2 ; exit 1 ; fi 15 | 16 | eval set -- "$OPTS" 17 | 18 | while true; do 19 | case "$1" in 20 | -h | --help ) HELP=true; shift ;; 21 | -w | --outfile ) OUTFILE="$2" ; shift ; shift ;; 22 | * ) break ;; 23 | esac 24 | done 25 | 26 | shift 27 | 28 | if $HELP ; then 29 | echo "Usage: logwrap [-hw] command" 30 | exit 31 | fi 32 | 33 | if [[ $# -eq 0 ]] ; then 34 | echo failed to provide script to wrap 35 | exit 1 36 | fi 37 | 38 | $@ 2>&1 | tee $OUTFILE 39 | exit ${PIPESTATUS[0]} 40 | -------------------------------------------------------------------------------- /contrib/cray/bin/parse_logfiles.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | SOURCE="${BASH_SOURCE[0]}" 6 | while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink 7 | DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null && pwd )" 8 | SOURCE="$(readlink "$SOURCE")" 9 | [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located 10 | done 11 | DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null && pwd )" 12 | 13 | source $DIR/common.sh 14 | 15 | source $VIRTUALENV_INSTALL_PATH/bin/activate 16 | python $DIR/../python/parse_results.py $@ 17 | -------------------------------------------------------------------------------- /contrib/cray/bin/setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | SOURCE="${BASH_SOURCE[0]}" 6 | while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink 7 | DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null && pwd )" 8 | SOURCE="$(readlink "$SOURCE")" 9 | [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located 10 | done 11 | DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null && pwd )" 12 | 13 | source $DIR/common.sh 14 | 15 | if [[ -z "$(which pip)" ]] ; then 16 | echo failed to find pip 17 | false 18 | fi 19 | 20 | if [[ -z "$(which python)" ]] ; then 21 | echo failed to find python 22 | false 23 | fi 24 | 25 | function cleanup { 26 | echo failed to setup environment 27 | } 28 | 29 | trap cleanup ERR 30 | 31 | if [[ -z "$(which virtualenv)" ]] ; then 32 | pip --isolated install --root $PREREQ_INSTALL_PATH virtualenv 33 | export PYTHONPATH=$PREREQ_INSTALL_PATH/usr/lib/python2.7/site-packages:$PYTHONPATH 34 | export PATH=$PREREQ_INSTALL_PATH/bin:$PATH 35 | fi 36 | 37 | if [[ ! -f $VIRTUALENV_INSTALL_PATH/bin/activate ]] ; then 38 | virtualenv $VIRTUALENV_INSTALL_PATH 39 | fi 40 | 41 | source $VIRTUALENV_INSTALL_PATH/bin/activate 42 | pip install -r $DIR/../share/requirements.txt 43 | 44 | -------------------------------------------------------------------------------- /contrib/cray/bin/verify_requirements.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | function check_executable { 6 | if [[ ! -x $1 ]] ; then 7 | echo could not find executable: $1 8 | exit 1 9 | fi 10 | } 11 | 12 | function check_directory { 13 | if [[ ! -d $1 ]] ; then 14 | echo could not find directory: $1 15 | exit 1 16 | fi 17 | } 18 | 19 | function check_environment { 20 | var=$1 21 | val=$(eval "echo \$$var") 22 | if [[ -z "$val" ]] ; then 23 | echo could not find environment variable: $var 24 | exit 1 25 | fi 26 | } 27 | 28 | function find_executable { 29 | if [[ -z "$(which $1)" ]] ; then 30 | echo could not find executable: $1 31 | exit 1 32 | fi 33 | } 34 | 35 | # check prerequisite environment variables 36 | check_environment ROOT_BUILD_PATH 37 | check_environment FABTEST_PATH 38 | check_environment LIBFABRIC_BUILD_PATH 39 | check_environment OMB_BUILD_PATH 40 | check_environment MPICH_PATH 41 | 42 | # check directories 43 | check_directory $ROOT_BUILD_PATH 44 | check_directory $OMB_BUILD_PATH 45 | check_directory $MPICH_PATH 46 | check_directory $SFT_INSTALL_PATH 47 | check_directory $BATS_INSTALL_PATH 48 | 49 | ##### check prerequisite installed software packages 50 | # SLURM https://slurm.schedmd.com/ 51 | find_executable srun 52 | # OMB http://mvapich.cse.ohio-state.edu/benchmarks/ 53 | check_executable $OMB_BUILD_PATH/pt2pt/osu_bw 54 | # Cray Proprietary 55 | check_executable $SFT_INSTALL_PATH/bin/ci-all.sh 56 | # BATS https://github.com/bats-core/bats-core 57 | check_executable $BATS_INSTALL_PATH/bats 58 | 59 | exit 0 60 | -------------------------------------------------------------------------------- /contrib/cray/share/requirements.txt: -------------------------------------------------------------------------------- 1 | junit-xml 2 | -------------------------------------------------------------------------------- /contrib/cray/share/version: -------------------------------------------------------------------------------- 1 | 1.0.0 2 | -------------------------------------------------------------------------------- /contrib/intel/jenkins/common.py: -------------------------------------------------------------------------------- 1 | import collections 2 | import ci_site_config 3 | import subprocess 4 | import sys 5 | 6 | def get_node_name(host, interface): 7 | # This is the pattern we follow in SFS team cluster 8 | return "%s-%s" % (host, interface) 9 | 10 | def run_command(command): 11 | print(" ".join(command)) 12 | p = subprocess.Popen(command, stdout=subprocess.PIPE, text=True) 13 | print(p.returncode) 14 | while True: 15 | out = p.stdout.read(1) 16 | if (out == "" and p.poll() != None): 17 | break 18 | if (out != ""): 19 | sys.stdout.write(out) 20 | sys.stdout.flush() 21 | if (p.returncode != 0): 22 | print("exiting with " + str(p.poll())) 23 | sys.exit(p.returncode) 24 | 25 | 26 | Prov = collections.namedtuple('Prov', 'core util') 27 | prov_list = [ 28 | 29 | Prov("psm2", None), 30 | Prov("verbs", None), 31 | Prov("verbs", "rxd"), 32 | Prov("verbs", "rxm"), 33 | Prov("sockets", None), 34 | Prov("tcp", None), 35 | Prov("udp", None), 36 | Prov("udp", "rxd"), 37 | Prov("shm", None), 38 | ] 39 | enabled_prov_list = [ 40 | "psm2", 41 | "verbs", 42 | "tcp", 43 | "sockets", 44 | "udp", 45 | "shm" 46 | ] 47 | disabled_prov_list = [ 48 | 'usnic', 49 | 'psm', 50 | 'efa', 51 | 'perf', 52 | 'rstream', 53 | 'hook_debug', 54 | 'bgq' 55 | 'mrail' 56 | ] 57 | 58 | -------------------------------------------------------------------------------- /docs/windows.txt: -------------------------------------------------------------------------------- 1 | Libfabric for Windows 2 | ============================ 3 | 4 | Dependencies: 5 | - MS Visual Studio 2015. Older Visual Studio's (2010 - 2013) may be used 6 | as well, but not recommended 7 | - Intel Compiler XE 2015 8 | 9 | Limitations: 10 | - Supported only 64-bit achitectures 11 | - Supported Windows Vista or newer Windows version 12 | - Supported 'sockets' provider only 13 | 14 | Build: 15 | - Open libfabric.sln file using Visual Studio 16 | - Select appropriate configuration: debug/release 17 | - Launch build procedure 18 | - After build complete target binaries are located at x64/ 19 | directory 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /fabtests/AUTHORS: -------------------------------------------------------------------------------- 1 | aingerson 2 | aingerson 3 | Arun C Ilango 4 | arun ilango 5 | Arun Ilango 6 | Ben Turrubiates 7 | Ben Turrubiates 8 | Charles J Archer 9 | Chen Zhao 10 | Chuck Fossen 11 | Dardo D Kleiner 12 | Dave Goodell 13 | Dmitry Gladkov 14 | Erik Paulson 15 | Evgeny Leksikov 16 | Howard Pritchard 17 | James Shimek 18 | Jeff Squyres 19 | Jerome Berryhill 20 | Jerome Boyd Berryhill 21 | Jithin Jose 22 | John Byrne 23 | jose 24 | jose 25 | Ken Raffenetti 26 | Miao Luo 27 | Neil Spruit 28 | Oblomov, Sergey 29 | Paolo Inaudi 30 | Patrick MacArthur 31 | Patrick McCormick 32 | Prankur Gupta 33 | Reese Faucette 34 | Sayantan Sur 35 | Sean Hefty 36 | Shantonu Hossain 37 | Solovyev, Dmitriy 38 | Spruit, Neil R 39 | Stan Smith 40 | Sung-Eun Choi 41 | Xuyang Wang 42 | -------------------------------------------------------------------------------- /fabtests/README: -------------------------------------------------------------------------------- 1 | Introduction 2 | ============ 3 | Fabtests provides a set of examples that uses libfabric - a high-performance 4 | fabric software library. 5 | 6 | Support 7 | ======= 8 | Fabtests will run on any operating system supported by Libfabric. 9 | 10 | Bugs or issues may be submitted directly to the Github issues list: 11 | 12 | https://github.com/ofiwg/fabtests/issues 13 | 14 | Additionally, users may post questions, comments, bugs, etc. to the Libfabric 15 | users mailing list. 16 | 17 | libfabric-users@lists.openfabrics.org 18 | 19 | Building 20 | ======== 21 | 22 | To install from a fabtests source package run the following commands: 23 | 24 | ./configure && make && make install 25 | 26 | If building directly from the libfabric git tree, run './autogen.sh' before the 27 | configure step. 28 | 29 | For more detailed build information see the projects home page on Github: 30 | 31 | https://github.com/ofiwg/fabtests 32 | -------------------------------------------------------------------------------- /fabtests/autogen.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | if test ! -d .git && test ! -f common/shared.c; then 4 | echo You really need to run this script in the top-level fabtests directory 5 | exit 1 6 | fi 7 | 8 | set -x 9 | 10 | if test ! -d config; then 11 | mkdir config 12 | fi 13 | 14 | autoreconf -ivf 15 | -------------------------------------------------------------------------------- /fabtests/fabtests.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fabtests", "fabtests.vcxproj", "{076F757A-8827-4D3C-A87F-6E49623C16E1}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug-v140|x64 = Debug-v140|x64 11 | Debug-v141|x64 = Debug-v141|x64 12 | Release-v140|x64 = Release-v140|x64 13 | Release-v141|x64 = Release-v141|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {076F757A-8827-4D3C-A87F-6E49623C16E1}.Debug-v140|x64.ActiveCfg = Debug-v140|x64 17 | {076F757A-8827-4D3C-A87F-6E49623C16E1}.Debug-v140|x64.Build.0 = Debug-v140|x64 18 | {076F757A-8827-4D3C-A87F-6E49623C16E1}.Debug-v141|x64.ActiveCfg = Debug-v141|x64 19 | {076F757A-8827-4D3C-A87F-6E49623C16E1}.Debug-v141|x64.Build.0 = Debug-v141|x64 20 | {076F757A-8827-4D3C-A87F-6E49623C16E1}.Release-v140|x64.ActiveCfg = Release-v140|x64 21 | {076F757A-8827-4D3C-A87F-6E49623C16E1}.Release-v140|x64.Build.0 = Release-v140|x64 22 | {076F757A-8827-4D3C-A87F-6E49623C16E1}.Release-v141|x64.ActiveCfg = Release-v141|x64 23 | {076F757A-8827-4D3C-A87F-6E49623C16E1}.Release-v141|x64.Build.0 = Release-v141|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /fabtests/fabtests.spec.in: -------------------------------------------------------------------------------- 1 | Name: fabtests 2 | Version: @VERSION@ 3 | Release: 1%{?dist} 4 | Summary: Test suite for libfabric API 5 | Group: System Environment/Libraries 6 | License: GPLv2 or BSD 7 | Url: http://www.github.com/ofiwg/fabtests 8 | Source: http://www.github.org/ofiwg/%{name}/releases/download/v{%version}/%{name}-%{version}.tar.bz2 9 | Requires: libfabric 10 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 11 | 12 | %description 13 | Fabtests provides a set of examples that uses libfabric - a high-performance fabric software library. 14 | 15 | %prep 16 | %setup -q -n %{name}-%{version} 17 | 18 | %build 19 | %configure %{?_with_libfabric} 20 | make %{?_smp_mflags} 21 | 22 | %install 23 | rm -rf %{buildroot} 24 | %makeinstall installdirs 25 | # remove unpackaged files from the buildroot 26 | rm -f %{buildroot}%{_libdir}/*.la 27 | 28 | %clean 29 | rm -rf %{buildroot} 30 | 31 | %files 32 | %defattr(-,root,root,-) 33 | %{_bindir}/* 34 | %{_mandir}/man7/* 35 | %{_mandir}/man1/* 36 | %{_datadir}/%{name}/test_configs/* 37 | %doc AUTHORS COPYING README 38 | 39 | %changelog 40 | * Sun May 3 2015 Open Fabrics Interfaces Working Group 1.0.0 41 | - Release 1.0.0 42 | -------------------------------------------------------------------------------- /fabtests/include/freebsd/osd.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corp, Inc. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | #ifndef _FABTESTS_FREEBSD_OSD_H_ 34 | #define _FABTESTS_FREEBSD_OSD_H_ 35 | 36 | #include 37 | #include 38 | #include 39 | 40 | 41 | #define bswap_64 bswap64 42 | 43 | #define ENODATA ENOMSG 44 | #define HOST_NAME_MAX 128 45 | 46 | typedef cpuset_t cpu_set_t; 47 | 48 | #endif /* _FABTESTS_FREEBSD_OSD_H_ */ 49 | -------------------------------------------------------------------------------- /fabtests/include/ft_osd.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017 Intel Corporation. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | #ifndef _FT_OSD_H_ 34 | #define _FT_OSD_H_ 35 | 36 | #ifdef __APPLE__ 37 | #include 38 | #include 39 | #elif defined __FreeBSD__ 40 | #include 41 | #include 42 | #elif defined _WIN32 43 | #include 44 | #else 45 | #include 46 | #endif 47 | 48 | #endif /* _FT_OSD_H_ */ 49 | -------------------------------------------------------------------------------- /fabtests/include/osx/osd.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 Los Alamos Nat. Security, LLC. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | #ifndef _FABTESTS_OSX_OSD_H_ 34 | #define _FABTESTS_OSX_OSD_H_ 35 | 36 | #include 37 | 38 | #include 39 | #include 40 | 41 | #if !HAVE_CLOCK_GETTIME 42 | #define CLOCK_REALTIME 0 43 | #define CLOCK_REALTIME_COARSE 0 44 | #define CLOCK_MONOTONIC 0 45 | 46 | typedef int clockid_t; 47 | 48 | #ifdef __cplusplus 49 | extern "C" { 50 | #endif 51 | 52 | int clock_gettime(clockid_t clk_id, struct timespec *tp); 53 | 54 | #ifdef __cplusplus 55 | } 56 | #endif 57 | #endif // !HAVE_CLOCK_GETTIME 58 | 59 | #endif // FABTESTS_OSX_OSD_H 60 | -------------------------------------------------------------------------------- /fabtests/include/windows/netdb.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017 Intel Corporation. All rights reserved. 3 | * 4 | * This software is available to you under the BSD license below: 5 | * 6 | * Redistribution and use in source and binary forms, with or 7 | * without modification, are permitted provided that the following 8 | * conditions are met: 9 | * 10 | * - Redistributions of source code must retain the above 11 | * copyright notice, this list of conditions and the following 12 | * disclaimer. 13 | * 14 | * - Redistributions in binary form must reproduce the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer in the documentation and/or other materials 17 | * provided with the distribution. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 21 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 23 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 24 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 25 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | * SOFTWARE. 27 | */ 28 | 29 | #ifndef _FABTESTS_OSD_WINDOWS_NETDB_H_ 30 | #define _FABTESTS_OSD_WINDOWS_NETDB_H_ 31 | 32 | #include 33 | 34 | /* Error values for `getaddrinfo' function. */ 35 | # define EAI_MEMORY - 10 /* Memory allocation failure. */ 36 | 37 | #endif /* _FABTESTS_OSD_WINDOWS_NETDB_H_ */ 38 | 39 | -------------------------------------------------------------------------------- /fabtests/include/windows/netinet/in.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017 Intel Corporation. All rights reserved. 3 | * 4 | * This software is available to you under the BSD license below: 5 | * 6 | * Redistribution and use in source and binary forms, with or 7 | * without modification, are permitted provided that the following 8 | * conditions are met: 9 | * 10 | * - Redistributions of source code must retain the above 11 | * copyright notice, this list of conditions and the following 12 | * disclaimer. 13 | * 14 | * - Redistributions in binary form must reproduce the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer in the documentation and/or other materials 17 | * provided with the distribution. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 21 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 23 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 24 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 25 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | * SOFTWARE. 27 | */ 28 | 29 | #ifndef _FABTESTS_OSD_NETINET_IN_H_ 30 | #define _FABTESTS_OSD_NETINET_IN_H_ 31 | 32 | #include 33 | 34 | #endif /* _FABTESTS_OSD_NETINET_IN_H_ */ 35 | 36 | -------------------------------------------------------------------------------- /fabtests/include/windows/netinet/tcp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017 Intel Corporation. All rights reserved. 3 | * 4 | * This software is available to you under the BSD license below: 5 | * 6 | * Redistribution and use in source and binary forms, with or 7 | * without modification, are permitted provided that the following 8 | * conditions are met: 9 | * 10 | * - Redistributions of source code must retain the above 11 | * copyright notice, this list of conditions and the following 12 | * disclaimer. 13 | * 14 | * - Redistributions in binary form must reproduce the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer in the documentation and/or other materials 17 | * provided with the distribution. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 21 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 23 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 24 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 25 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | * SOFTWARE. 27 | */ 28 | 29 | #ifndef _FABTESTS_OSD_WINDOWS_TCP_H_ 30 | #define _FABTESTS_OSD_WINDOWS_TCP_H_ 31 | 32 | #include 33 | 34 | #endif /* _FABTESTS_OSD_WINDOWS_TCP_H_ */ 35 | -------------------------------------------------------------------------------- /fabtests/include/windows/poll.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once -------------------------------------------------------------------------------- /fabtests/include/windows/sys/socket.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once -------------------------------------------------------------------------------- /fabtests/include/windows/sys/uio.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once -------------------------------------------------------------------------------- /fabtests/include/windows/sys/wait.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once -------------------------------------------------------------------------------- /fabtests/include/windows/unistd.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define sleep(x) Sleep(x * 1000) 4 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_av_test.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_av_xfer.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_bw.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_cm_data.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_cntr_test.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_cq_data.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_cq_test.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_dgram.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_dgram_pingpong.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_dgram_waitset.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_dom_test.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_eq_test.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_getinfo_test.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_inj_complete.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_mcast.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_mr_test.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_msg.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_msg_bw.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_msg_epoll.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_msg_pingpong.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_msg_sockets.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_multi_ep.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_multi_mr.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_multi_recv.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_multinode.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_poll.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_rdm.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_rdm_atomic.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_rdm_cntr_pingpong.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_rdm_deferred_wq.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_rdm_multi_domain.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_rdm_pingpong.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_rdm_rma_simple.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_rdm_rma_trigger.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_rdm_shared_av.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_rdm_tagged_bw.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_rdm_tagged_peek.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_rdm_tagged_pingpong.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_recv_cancel.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_resmgmt_test.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_resource_freeing.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_rma_bw.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_scalable_ep.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_shared_ctx.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_ubertest.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_unexpected_msg.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/man/man1/fi_unmap_mem.1: -------------------------------------------------------------------------------- 1 | .so man7/fabtests.7 2 | -------------------------------------------------------------------------------- /fabtests/multinode/include/coll_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019-2019 Intel Corporation. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | #pragma once 33 | 34 | 35 | 36 | typedef int (*coll_test_setup_t)(); 37 | typedef int (*coll_test_run_t)(); 38 | typedef void (*coll_test_teardown_t)(); 39 | 40 | struct coll_test { 41 | char *name; 42 | coll_test_setup_t setup; 43 | coll_test_run_t run; 44 | coll_test_teardown_t teardown; 45 | }; -------------------------------------------------------------------------------- /fabtests/multinode/include/pattern.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017-2019 Intel Corporation. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | #pragma once 34 | 35 | #include 36 | #include 37 | #include 38 | #include 39 | 40 | /* Initial value for iterator position. */ 41 | #define PATTERN_NO_CURRENT (-1) 42 | 43 | /* Number of patterns to test */ 44 | extern const int NUM_TESTS; 45 | 46 | struct pattern_ops { 47 | char *name; 48 | int (*next_source)(int *cur); 49 | int (*next_target) (int *cur); 50 | }; 51 | 52 | extern struct pattern_ops patterns[]; 53 | 54 | 55 | -------------------------------------------------------------------------------- /fabtests/scripts/run_with_output.cmd: -------------------------------------------------------------------------------- 1 | set cmdline=%1 2 | set out_file=%2 3 | set result_file=%3 4 | 5 | 6 | for /f "tokens=*" %%n in (%cmdline%) do set test_cmdline=%%n 7 | %test_cmdline% >%out_file% 2>&1 8 | echo %errorlevel% >%result_file%.tmp 9 | ren %result_file%.tmp %result_file% 10 | 11 | exit 12 | -------------------------------------------------------------------------------- /fabtests/scripts/toCSV.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import sys 4 | import csv 5 | from optparse import OptionParser 6 | 7 | try: 8 | import yaml 9 | except ImportError: 10 | print ("PyYAML library missing, try: yum install pyyaml") 11 | sys.exit(1) 12 | 13 | def main(argv=None): 14 | """Convert runfabtests.sh yaml output to CSV. If no argument is given 15 | stdin is read, otherwise read from file. 16 | """ 17 | 18 | parser = OptionParser(description=main.__doc__, usage="usage: %prog [file]") 19 | (options, args) = parser.parse_args() 20 | 21 | if len(args) == 0: 22 | fd = sys.stdin 23 | else: 24 | fd = open(args[0], 'r') 25 | 26 | yi = yaml.load(fd.read()) 27 | 28 | csv_fd = csv.writer(sys.stdout, delimiter=",", quotechar='"', quoting=csv.QUOTE_NONNUMERIC) 29 | csv_fd.writerow(["Test name", "Status"]) 30 | 31 | for k,v in yi.items(): 32 | csv_fd.writerow([k, v]) 33 | 34 | return 0 35 | 36 | if __name__ == "__main__": 37 | sys.exit(main(sys.argv)) 38 | -------------------------------------------------------------------------------- /fabtests/test_configs/freebsd.exclude: -------------------------------------------------------------------------------- 1 | # Regex patterns of tests to exclude in runfabtests.sh 2 | 3 | # Exclude msg_epoll test as FreeBSD doesn't have epoll system call 4 | msg_epoll 5 | -------------------------------------------------------------------------------- /fabtests/test_configs/lat_bw.test: -------------------------------------------------------------------------------- 1 | #: "Latency and bandwidth tests" 2 | { 3 | prov_name: tcp, 4 | test_type: [ 5 | FT_TEST_LATENCY, 6 | FT_TEST_BANDWIDTH, 7 | ], 8 | class_function: [ 9 | FT_FUNC_SEND, 10 | ], 11 | ep_type: [ 12 | FI_EP_DGRAM, 13 | FI_EP_MSG, 14 | FI_EP_RDM 15 | ], 16 | av_type: [ 17 | FI_AV_MAP, 18 | ], 19 | comp_type: [ 20 | FT_COMP_QUEUE, 21 | ], 22 | test_class: [ 23 | FT_CAP_MSG, 24 | FT_CAP_TAGGED, 25 | ], 26 | test_flags: FT_FLAG_QUICKTEST 27 | }, 28 | { 29 | prov_name: verbs, 30 | test_type: [ 31 | FT_TEST_LATENCY, 32 | FT_TEST_BANDWIDTH, 33 | ], 34 | class_function: [ 35 | FT_FUNC_SEND, 36 | ], 37 | ep_type: [ 38 | FI_EP_MSG, 39 | ], 40 | comp_type: [ 41 | FT_COMP_QUEUE, 42 | ], 43 | test_class: [ 44 | FT_CAP_MSG, 45 | ], 46 | test_flags: FT_FLAG_QUICKTEST 47 | }, 48 | { 49 | prov_name: udp, 50 | test_type: [ 51 | FT_TEST_LATENCY, 52 | FT_TEST_BANDWIDTH, 53 | ], 54 | class_function: [ 55 | FT_FUNC_SEND, 56 | ], 57 | ep_type: [ 58 | FI_EP_DGRAM, 59 | ], 60 | av_type: [ 61 | FI_AV_TABLE, 62 | ], 63 | comp_type: [ 64 | FT_COMP_QUEUE, 65 | ], 66 | test_class: [ 67 | FT_CAP_MSG, 68 | ], 69 | test_flags: FT_FLAG_QUICKTEST 70 | }, 71 | -------------------------------------------------------------------------------- /fabtests/test_configs/ofi_rxd/ofi_rxd.exclude: -------------------------------------------------------------------------------- 1 | # Regex patterns of tests to exclude in runfabtests.sh 2 | 3 | ^fi_msg 4 | -e msg 5 | ^fi_dgram 6 | -e dgram 7 | 8 | # Exclude all prefix tests 9 | -k 10 | 11 | # Exclude tests that use sread/polling until issues are resolved 12 | -S 13 | rdm_cntr_pingpong 14 | poll 15 | cq_data 16 | 17 | # Exclude tests with unsupported capabilities 18 | cm_data 19 | trigger 20 | shared_ctx 21 | scalable_ep 22 | shared_av 23 | multi_mr 24 | 25 | # Exclude because it takes too long 26 | ubertest 27 | -------------------------------------------------------------------------------- /fabtests/test_configs/ofi_rxd/udp.test: -------------------------------------------------------------------------------- 1 | { 2 | prov_name: UDP;ofi_rxd, 3 | test_type: [ 4 | FT_TEST_LATENCY, 5 | FT_TEST_BANDWIDTH, 6 | ], 7 | class_function: [ 8 | FT_FUNC_SEND, 9 | FT_FUNC_SENDV, 10 | FT_FUNC_SENDMSG, 11 | FT_FUNC_SENDDATA, 12 | ], 13 | ep_type: [ 14 | FI_EP_RDM 15 | ], 16 | comp_type: [ 17 | FT_COMP_QUEUE, 18 | ], 19 | test_class: [ 20 | FT_CAP_MSG, 21 | FT_CAP_TAGGED, 22 | ], 23 | }, 24 | -------------------------------------------------------------------------------- /fabtests/test_configs/ofi_rxd/verbs.test: -------------------------------------------------------------------------------- 1 | { 2 | prov_name: verbs;ofi_rxd, 3 | test_type: [ 4 | FT_TEST_LATENCY, 5 | FT_TEST_BANDWIDTH, 6 | ], 7 | class_function: [ 8 | FT_FUNC_SEND, 9 | FT_FUNC_SENDV, 10 | FT_FUNC_SENDMSG, 11 | FT_FUNC_SENDDATA, 12 | ], 13 | ep_type: [ 14 | FI_EP_RDM 15 | ], 16 | comp_type: [ 17 | FT_COMP_QUEUE, 18 | ], 19 | test_class: [ 20 | FT_CAP_MSG, 21 | FT_CAP_TAGGED, 22 | ], 23 | }, 24 | -------------------------------------------------------------------------------- /fabtests/test_configs/ofi_rxm/ofi_rxm.exclude: -------------------------------------------------------------------------------- 1 | # Regex patterns of tests to exclude in runfabtests.sh 2 | 3 | # Exclude all prefix tests 4 | -k 5 | 6 | ^fi_msg 7 | -e msg 8 | ^fi_dgram 9 | -e dgram 10 | 11 | cm_data 12 | rdm_rma_simple 13 | trigger 14 | shared_ctx 15 | scalable_ep 16 | shared_av 17 | multi_mr 18 | atomic 19 | -------------------------------------------------------------------------------- /fabtests/test_configs/ofi_rxm/tcp.test: -------------------------------------------------------------------------------- 1 | { 2 | prov_name: tcp;ofi_rxm, 3 | test_type: [ 4 | FT_TEST_LATENCY, 5 | FT_TEST_BANDWIDTH, 6 | ], 7 | class_function: [ 8 | FT_FUNC_SEND, 9 | FT_FUNC_SENDV, 10 | FT_FUNC_SENDDATA, 11 | FT_FUNC_INJECT, 12 | FT_FUNC_INJECTDATA, 13 | ], 14 | ep_type: [ 15 | FI_EP_RDM, 16 | ], 17 | comp_type: [ 18 | FT_COMP_QUEUE, 19 | ], 20 | test_class: [ 21 | FT_CAP_MSG, 22 | FT_CAP_TAGGED, 23 | ], 24 | mr_mode: [FI_MR_LOCAL, FI_MR_VIRT_ADDR, FI_MR_ALLOCATED, FI_MR_PROV_KEY], 25 | progress: [FI_PROGRESS_MANUAL, FI_PROGRESS_AUTO], 26 | }, 27 | -------------------------------------------------------------------------------- /fabtests/test_configs/osx.exclude: -------------------------------------------------------------------------------- 1 | # Regex patterns of tests to exclude in runfabtests.sh 2 | 3 | # Exclude msg_epoll test as OSX doesn't have epoll system call 4 | msg_epoll 5 | 6 | # Does not work with utility providers because of epoll limitations 7 | rdm_cntr_pingpong 8 | unexpected_msg 9 | rdm_tagged_peek 10 | -------------------------------------------------------------------------------- /fabtests/test_configs/psm/all.test: -------------------------------------------------------------------------------- 1 | { 2 | prov_name: psm, 3 | test_type: [ 4 | FT_TEST_LATENCY, 5 | FT_TEST_BANDWIDTH, 6 | ], 7 | class_function: [ 8 | FT_FUNC_SEND, 9 | FT_FUNC_SENDV, 10 | FT_FUNC_SENDMSG, 11 | ], 12 | ep_type: [ 13 | FI_EP_RDM 14 | ], 15 | av_type: [ 16 | FI_AV_TABLE 17 | FI_AV_MAP, 18 | ], 19 | comp_type: [ 20 | FT_COMP_QUEUE, 21 | ], 22 | mode: [ 23 | FI_CONTEXT, 24 | ], 25 | test_class: [ 26 | FT_CAP_MSG, 27 | FT_CAP_TAGGED, 28 | ], 29 | test_flags: FT_FLAG_QUICKTEST 30 | }, 31 | { 32 | prov_name: psm, 33 | test_type: [ 34 | FT_TEST_LATENCY, 35 | FT_TEST_BANDWIDTH, 36 | ], 37 | class_function: [ 38 | FT_FUNC_WRITE, 39 | FT_FUNC_WRITEV, 40 | FT_FUNC_WRITEMSG, 41 | FT_FUNC_READ, 42 | FT_FUNC_READV, 43 | FT_FUNC_READMSG, 44 | ], 45 | ep_type: [ 46 | FI_EP_RDM 47 | ], 48 | av_type: [ 49 | FI_AV_TABLE 50 | FI_AV_MAP, 51 | ], 52 | comp_type: [ 53 | FT_COMP_QUEUE, 54 | ], 55 | mode: [ 56 | FI_CONTEXT, 57 | ], 58 | test_class: [ 59 | FT_CAP_RMA, 60 | ], 61 | test_flags: FT_FLAG_QUICKTEST 62 | }, 63 | -------------------------------------------------------------------------------- /fabtests/test_configs/psm2/psm2.exclude: -------------------------------------------------------------------------------- 1 | # Regex patterns of tests to exclude in runfabtests.sh 2 | 3 | # Exclude all prefix tests 4 | -k 5 | 6 | # av_test supports only FI_SOCKADDR 7 | av_test 8 | 9 | ^fi_msg 10 | -e msg 11 | 12 | cm_data 13 | shared_ctx 14 | scalable_ep 15 | shared_av 16 | rdm_cntr_pingpong 17 | multi_recv 18 | -------------------------------------------------------------------------------- /fabtests/test_configs/shm/shm.exclude: -------------------------------------------------------------------------------- 1 | # Regex patterns of tests to exclude in runfabtests.sh 2 | 3 | ^fi_msg 4 | -e msg 5 | ^fi_dgram 6 | -e dgram 7 | 8 | # Exclude tests that use sread/polling 9 | -S 10 | rdm_cntr_pingpong 11 | poll 12 | cq_data 13 | 14 | # Exclude tests with unsupported capabilities 15 | -k 16 | rdm_tagged_peek 17 | cm_data 18 | trigger 19 | shared_ctx 20 | scalable_ep 21 | shared_av 22 | multi_mr 23 | av_test 24 | -------------------------------------------------------------------------------- /fabtests/test_configs/sockets/all.test: -------------------------------------------------------------------------------- 1 | #: "Suite of tests for the sockets provider" 2 | { 3 | prov_name: sockets, 4 | test_type: [ 5 | FT_TEST_LATENCY, 6 | FT_TEST_BANDWIDTH, 7 | ], 8 | class_function: [ 9 | FT_FUNC_SEND, 10 | FT_FUNC_SENDV, 11 | FT_FUNC_SENDMSG, 12 | FT_FUNC_INJECT, 13 | FT_FUNC_INJECTDATA, 14 | ], 15 | ep_type: [ 16 | FI_EP_MSG, 17 | FI_EP_RDM, 18 | ], 19 | av_type: [ 20 | FI_AV_TABLE, 21 | FI_AV_MAP, 22 | ], 23 | comp_type: [ 24 | FT_COMP_QUEUE, 25 | ], 26 | test_class: [ 27 | FT_CAP_MSG, 28 | FT_CAP_TAGGED, 29 | ], 30 | }, 31 | { 32 | prov_name: sockets, 33 | test_type: [ 34 | FT_TEST_LATENCY, 35 | ], 36 | class_function: [ 37 | FT_FUNC_SEND, 38 | ], 39 | ep_type: [ 40 | FI_EP_MSG, 41 | ], 42 | av_type: [ 43 | FI_AV_TABLE, 44 | ], 45 | comp_type: [ 46 | FT_COMP_QUEUE, 47 | ], 48 | eq_wait_obj: [ 49 | FI_WAIT_NONE, 50 | FI_WAIT_UNSPEC, 51 | FI_WAIT_FD, 52 | FI_WAIT_MUTEX_COND, 53 | ], 54 | cq_wait_obj: [ 55 | FI_WAIT_NONE, 56 | ], 57 | test_class: [ 58 | FT_CAP_MSG, 59 | ], 60 | }, 61 | { 62 | prov_name: sockets, 63 | test_type: [ 64 | FT_TEST_LATENCY, 65 | FT_TEST_BANDWIDTH, 66 | ], 67 | class_function: [ 68 | FT_FUNC_SEND, 69 | ], 70 | ep_type: [ 71 | FI_EP_MSG, 72 | ], 73 | av_type: [ 74 | FI_AV_TABLE, 75 | ], 76 | comp_type: [ 77 | FT_COMP_QUEUE, 78 | ], 79 | eq_wait_obj: [ 80 | FI_WAIT_NONE, 81 | ], 82 | cq_wait_obj: [ 83 | FI_WAIT_NONE, 84 | FI_WAIT_UNSPEC, 85 | FI_WAIT_FD, 86 | FI_WAIT_MUTEX_COND, 87 | ], 88 | test_class: [ 89 | FT_CAP_MSG, 90 | ], 91 | }, 92 | -------------------------------------------------------------------------------- /fabtests/test_configs/sockets/sockets.exclude: -------------------------------------------------------------------------------- 1 | # Regex patterns of tests to exclude in runfabtests.sh 2 | 3 | -e dgram 4 | dgram 5 | -------------------------------------------------------------------------------- /fabtests/test_configs/tcp/quick.test: -------------------------------------------------------------------------------- 1 | #: "Suite of tests for the tcp provider" 2 | { 3 | prov_name: tcp, 4 | test_type: [ 5 | FT_TEST_LATENCY, 6 | FT_TEST_BANDWIDTH, 7 | FT_TEST_UNIT 8 | ], 9 | class_function: [ 10 | FT_FUNC_SEND, 11 | FT_FUNC_SENDV, 12 | FT_FUNC_SENDMSG, 13 | FT_FUNC_INJECT, 14 | FT_FUNC_INJECTDATA, 15 | FT_FUNC_SENDDATA, 16 | ], 17 | ep_type: [ 18 | FI_EP_MSG, 19 | ], 20 | comp_type: [ 21 | FT_COMP_QUEUE 22 | ], 23 | test_class: [ 24 | FT_CAP_MSG, 25 | ], 26 | test_flags: FT_FLAG_QUICKTEST 27 | }, 28 | { 29 | prov_name: tcp, 30 | test_type: [ 31 | FT_TEST_LATENCY, 32 | FT_TEST_BANDWIDTH, 33 | FT_TEST_UNIT 34 | ], 35 | class_function: [ 36 | FT_FUNC_READ, 37 | FT_FUNC_READV, 38 | FT_FUNC_READMSG, 39 | FT_FUNC_WRITE, 40 | FT_FUNC_WRITEV, 41 | FT_FUNC_WRITEMSG, 42 | FT_FUNC_WRITEDATA 43 | ], 44 | ep_type: [ 45 | FI_EP_MSG, 46 | ], 47 | comp_type: [ 48 | FT_COMP_QUEUE 49 | ], 50 | test_class: [ 51 | FT_CAP_RMA, 52 | ], 53 | test_flags: FT_FLAG_QUICKTEST 54 | } 55 | -------------------------------------------------------------------------------- /fabtests/test_configs/tcp/tcp.exclude: -------------------------------------------------------------------------------- 1 | # Regex patterns of tests to exclude in runfabtests.sh 2 | 3 | ^fi_dgram 4 | -e dgram 5 | 6 | rdm_rma_simple 7 | rdm_rma_trigger 8 | shared_ctx 9 | scalable_ep 10 | shared_av 11 | multi_mr 12 | atomic 13 | inj_complete -e msg 14 | unexpected_msg -e msg 15 | multi_recv 16 | 17 | # TODO. Following fails with macOS. will fix them later 18 | cq_data -e rdm 19 | rdm_tagged_peek 20 | unexpected_msg -e rdm 21 | -------------------------------------------------------------------------------- /fabtests/test_configs/udp/all.test: -------------------------------------------------------------------------------- 1 | #: "Suite of tests for the udp provider" 2 | { 3 | prov_name: udp, 4 | test_type: [ 5 | FT_TEST_LATENCY, 6 | FT_TEST_BANDWIDTH, 7 | ], 8 | class_function: [ 9 | FT_FUNC_SEND, 10 | FT_FUNC_SENDV, 11 | FT_FUNC_SENDMSG, 12 | FT_FUNC_INJECT, 13 | ], 14 | ep_type: [ 15 | FI_EP_DGRAM, 16 | ], 17 | av_type: [ 18 | FI_AV_TABLE, 19 | FI_AV_MAP, 20 | ], 21 | comp_type: [ 22 | FT_COMP_QUEUE, 23 | ], 24 | eq_wait_obj: [ 25 | FI_WAIT_NONE, 26 | FI_WAIT_UNSPEC, 27 | FI_WAIT_FD, 28 | ], 29 | cq_wait_obj: [ 30 | FI_WAIT_NONE, 31 | FI_WAIT_UNSPEC, 32 | FI_WAIT_FD, 33 | ], 34 | test_class: [ 35 | FT_CAP_MSG, 36 | ], 37 | }, 38 | -------------------------------------------------------------------------------- /fabtests/test_configs/udp/functional.test: -------------------------------------------------------------------------------- 1 | #: "Simple test for the udp provider" 2 | { 3 | prov_name: udp, 4 | test_type: [ 5 | FT_TEST_LATENCY, 6 | ], 7 | class_function: [ 8 | FT_FUNC_SEND, 9 | ], 10 | ep_type: [ 11 | FI_EP_DGRAM, 12 | ], 13 | av_type: [ 14 | FI_AV_TABLE, 15 | ], 16 | comp_type: [ 17 | FT_COMP_QUEUE, 18 | ], 19 | eq_wait_obj: [ 20 | FI_WAIT_NONE, 21 | ], 22 | cq_wait_obj: [ 23 | FI_WAIT_NONE, 24 | ], 25 | test_class: [ 26 | FT_CAP_MSG, 27 | ], 28 | test_flags: FT_FLAG_QUICKTEST 29 | }, 30 | -------------------------------------------------------------------------------- /fabtests/test_configs/udp/lat_bw.test: -------------------------------------------------------------------------------- 1 | #: "Latency and bandwidth tests for the udp provider" 2 | { 3 | prov_name: udp, 4 | test_type: [ 5 | FT_TEST_LATENCY, 6 | FT_TEST_BANDWIDTH, 7 | ], 8 | class_function: [ 9 | FT_FUNC_SEND, 10 | ], 11 | ep_type: [ 12 | FI_EP_DGRAM, 13 | ], 14 | av_type: [ 15 | FI_AV_TABLE, 16 | ], 17 | comp_type: [ 18 | FT_COMP_QUEUE, 19 | ], 20 | test_class: [ 21 | FT_CAP_MSG, 22 | ], 23 | test_flags: FT_FLAG_QUICKTEST 24 | }, 25 | -------------------------------------------------------------------------------- /fabtests/test_configs/udp/quick.test: -------------------------------------------------------------------------------- 1 | #: "Suite of tests for the udp provider" 2 | { 3 | prov_name: udp, 4 | test_type: [ 5 | FT_TEST_LATENCY, 6 | FT_TEST_BANDWIDTH, 7 | ], 8 | class_function: [ 9 | FT_FUNC_SEND, 10 | FT_FUNC_SENDV, 11 | FT_FUNC_SENDMSG, 12 | FT_FUNC_INJECT, 13 | ], 14 | ep_type: [ 15 | FI_EP_DGRAM, 16 | ], 17 | av_type: [ 18 | FI_AV_TABLE, 19 | FI_AV_MAP, 20 | ], 21 | comp_type: [ 22 | FT_COMP_QUEUE, 23 | ], 24 | eq_wait_obj: [ 25 | FI_WAIT_NONE, 26 | FI_WAIT_UNSPEC, 27 | FI_WAIT_FD, 28 | ], 29 | cq_wait_obj: [ 30 | FI_WAIT_NONE, 31 | FI_WAIT_UNSPEC, 32 | FI_WAIT_FD, 33 | ], 34 | test_class: [ 35 | FT_CAP_MSG, 36 | ], 37 | test_flags: FT_FLAG_QUICKTEST 38 | }, 39 | -------------------------------------------------------------------------------- /fabtests/test_configs/udp/udp.exclude: -------------------------------------------------------------------------------- 1 | # Regex patterns of tests to exclude in runfabtests.sh 2 | 3 | # Feature not supported by udp provider 4 | cq_data 5 | inj_complete -e dgram 6 | 7 | # No utility provider available for MSG EP support 8 | ^fi_msg 9 | -e msg 10 | cm_data 11 | 12 | # Not supported by ofi_rxd provider 13 | scalable_ep 14 | shared_ctx 15 | shared_av 16 | multi_mr 17 | trigger 18 | -------------------------------------------------------------------------------- /fabtests/test_configs/usnic/all.test: -------------------------------------------------------------------------------- 1 | #: "Suite of tests for the usnic provider" 2 | { 3 | prov_name: usnic, 4 | test_type: [ 5 | FT_TEST_LATENCY, 6 | FT_TEST_BANDWIDTH, 7 | ], 8 | class_function: [ 9 | FT_FUNC_SEND, 10 | FT_FUNC_SENDV, 11 | FT_FUNC_SENDMSG, 12 | FT_FUNC_INJECT, 13 | ], 14 | ep_type: [ 15 | FI_EP_DGRAM, 16 | FI_EP_RDM, 17 | FI_EP_MSG 18 | ], 19 | av_type: [ 20 | FI_AV_MAP, 21 | ], 22 | comp_type: [ 23 | FT_COMP_QUEUE, 24 | ], 25 | eq_wait_obj: [ 26 | FI_WAIT_NONE, 27 | FI_WAIT_UNSPEC, 28 | FI_WAIT_FD, 29 | ], 30 | cq_wait_obj: [ 31 | FI_WAIT_NONE, 32 | FI_WAIT_UNSPEC, 33 | ], 34 | mode: [ 35 | FI_CONTEXT, FI_RX_CQ_DATA, 36 | ], 37 | test_class: [ 38 | FT_CAP_MSG, 39 | ], 40 | }, 41 | -------------------------------------------------------------------------------- /fabtests/test_configs/usnic/quick.test: -------------------------------------------------------------------------------- 1 | #: "Suite of tests for the usnic provider" 2 | { 3 | prov_name: usnic, 4 | test_type: [ 5 | FT_TEST_LATENCY, 6 | FT_TEST_BANDWIDTH, 7 | ], 8 | class_function: [ 9 | FT_FUNC_SEND, 10 | FT_FUNC_SENDV, 11 | FT_FUNC_SENDMSG, 12 | FT_FUNC_INJECT, 13 | ], 14 | ep_type: [ 15 | FI_EP_DGRAM, 16 | FI_EP_RDM, 17 | FI_EP_MSG, 18 | ], 19 | av_type: [ 20 | FI_AV_MAP, 21 | ], 22 | comp_type: [ 23 | FT_COMP_QUEUE, 24 | ], 25 | eq_wait_obj: [ 26 | FI_WAIT_NONE, 27 | FI_WAIT_UNSPEC, 28 | FI_WAIT_FD, 29 | ], 30 | cq_wait_obj: [ 31 | FI_WAIT_NONE, 32 | FI_WAIT_UNSPEC, 33 | ], 34 | mode: [ 35 | FI_CONTEXT, FI_RX_CQ_DATA, 36 | ], 37 | test_class: [ 38 | FT_CAP_MSG, 39 | ], 40 | test_flags: FT_FLAG_QUICKTEST 41 | }, 42 | -------------------------------------------------------------------------------- /fabtests/test_configs/verbs/quick.test: -------------------------------------------------------------------------------- 1 | #: "Suite of tests for the verbs provider" 2 | { 3 | prov_name: verbs, 4 | test_type: [ 5 | FT_TEST_LATENCY, 6 | FT_TEST_BANDWIDTH, 7 | ], 8 | class_function: [ 9 | FT_FUNC_SEND, 10 | FT_FUNC_SENDV, 11 | FT_FUNC_SENDMSG, 12 | FT_FUNC_INJECT, 13 | FT_FUNC_INJECTDATA, 14 | ], 15 | ep_type: [ 16 | FI_EP_MSG, 17 | ], 18 | comp_type: [ 19 | FT_COMP_QUEUE 20 | ], 21 | mr_mode: [ FI_MR_LOCAL, FI_MR_VIRT_ADDR, FI_MR_ALLOCATED, FI_MR_PROV_KEY ], 22 | mode: [ FI_CONTEXT, FI_RX_CQ_DATA ], 23 | test_class: [ 24 | FT_CAP_MSG, 25 | ], 26 | test_flags: FT_FLAG_QUICKTEST 27 | }, 28 | { 29 | prov_name: verbs, 30 | test_type: [ 31 | FT_TEST_LATENCY, 32 | ], 33 | class_function: [ 34 | FT_FUNC_SEND, 35 | ], 36 | ep_type: [ 37 | FI_EP_MSG, 38 | ], 39 | comp_type: [ 40 | FT_COMP_QUEUE 41 | ], 42 | eq_wait_obj: [ 43 | FI_WAIT_NONE 44 | FI_WAIT_UNSPEC, 45 | FI_WAIT_FD, 46 | ], 47 | cq_wait_obj: [ 48 | FI_WAIT_NONE 49 | ], 50 | mr_mode: [ FI_MR_LOCAL, FI_MR_VIRT_ADDR, FI_MR_ALLOCATED, FI_MR_PROV_KEY ], 51 | mode: [ FI_CONTEXT, FI_RX_CQ_DATA ], 52 | test_class: [ 53 | FT_CAP_MSG, 54 | ], 55 | test_flags: FT_FLAG_QUICKTEST 56 | }, 57 | { 58 | prov_name: verbs, 59 | test_type: [ 60 | FT_TEST_LATENCY, 61 | FT_TEST_BANDWIDTH, 62 | ], 63 | class_function: [ 64 | FT_FUNC_SEND, 65 | ], 66 | ep_type: [ 67 | FI_EP_MSG, 68 | ], 69 | comp_type: [ 70 | FT_COMP_QUEUE 71 | ], 72 | eq_wait_obj: [ 73 | FI_WAIT_NONE 74 | ], 75 | cq_wait_obj: [ 76 | FI_WAIT_NONE 77 | FI_WAIT_UNSPEC, 78 | FI_WAIT_FD, 79 | ], 80 | mr_mode: [ FI_MR_LOCAL, FI_MR_VIRT_ADDR, FI_MR_ALLOCATED, FI_MR_PROV_KEY ], 81 | mode: [ FI_CONTEXT, FI_RX_CQ_DATA ], 82 | test_class: [ 83 | FT_CAP_MSG, 84 | ], 85 | test_flags: FT_FLAG_QUICKTEST 86 | }, 87 | -------------------------------------------------------------------------------- /fabtests/test_configs/verbs/verbs.exclude: -------------------------------------------------------------------------------- 1 | # Regex patterns of tests to exclude in runfabtests.sh 2 | 3 | # Exclude all prefix tests 4 | -k 5 | 6 | rdm 7 | dgram 8 | 9 | trigger 10 | 11 | # Verbs supports only shared receive context 12 | shared_ctx$|shared_ctx --no|shared_ctx -e msg$|shared_ctx -e msg --no-rx 13 | 14 | scalable_ep 15 | multi_mr 16 | multi_recv 17 | recv_cancel 18 | unexpected_msg 19 | inj_complete 20 | -------------------------------------------------------------------------------- /include/fasthash.h: -------------------------------------------------------------------------------- 1 | /* The MIT License 2 | 3 | Copyright (C) 2012 Zilong Tan (eric.zltan@gmail.com) 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, copy, 9 | modify, merge, publish, distribute, sublicense, and/or sell copies 10 | of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 20 | BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 21 | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | SOFTWARE. 24 | */ 25 | 26 | #ifndef _FASTHASH_H 27 | #define _FASTHASH_H 28 | 29 | #include 30 | #include 31 | 32 | #ifdef __cplusplus 33 | extern "C" { 34 | #endif 35 | 36 | /** 37 | * fasthash32 - 32-bit implementation of fasthash 38 | * @buf: data buffer 39 | * @len: data size 40 | * @seed: the seed 41 | */ 42 | uint32_t fasthash32(const void *buf, size_t len, uint32_t seed); 43 | 44 | /** 45 | * fasthash64 - 64-bit implementation of fasthash 46 | * @buf: data buffer 47 | * @len: data size 48 | * @seed: the seed 49 | */ 50 | uint64_t fasthash64(const void *buf, size_t len, uint64_t seed); 51 | 52 | #ifdef __cplusplus 53 | } 54 | #endif 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /include/linux/rdpmc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2012,2013,2018 Intel Corporation 3 | * Author: Andi Kleen 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that: (1) source code distributions 7 | * retain the above copyright notice and this paragraph in its entirety, (2) 8 | * distributions including binary code include the above copyright notice and 9 | * this paragraph in its entirety in the documentation or other materials 10 | * provided with the distribution 11 | * 12 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 13 | * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 14 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 15 | */ 16 | 17 | #ifndef RDPMC_H 18 | #define RDPMC_H 19 | 20 | #if HAVE_LINUX_PERF_RDPMC 21 | 22 | #include 23 | #include 24 | 25 | 26 | struct rdpmc_ctx { 27 | int fd; 28 | struct perf_event_mmap_page *buf; 29 | }; 30 | 31 | int rdpmc_open(unsigned counter, struct rdpmc_ctx *ctx); 32 | int rdpmc_open_attr(struct perf_event_attr *attr, struct rdpmc_ctx *ctx, 33 | struct rdpmc_ctx *leader_ctx); 34 | void rdpmc_close(struct rdpmc_ctx *ctx); 35 | unsigned long long rdpmc_read(struct rdpmc_ctx *ctx); 36 | 37 | 38 | struct ofi_perf_ctx { 39 | struct rdpmc_ctx ctx; 40 | }; 41 | 42 | 43 | #endif /* HAVE_LINUX_PERF_RDPMC */ 44 | 45 | #endif 46 | -------------------------------------------------------------------------------- /include/ofi_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013-2014 Intel Corporation. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | #ifndef _OFI_FILE_H_ 34 | #define _OFI_FILE_H_ 35 | 36 | #include "config.h" 37 | 38 | #include 39 | #include 40 | 41 | 42 | #ifdef __cplusplus 43 | extern "C" { 44 | #endif 45 | 46 | 47 | int fi_read_file(const char *dir, const char *file, char *buf, size_t size); 48 | int fi_poll_fd(int fd, int timeout); 49 | 50 | #define RDMA_CONF_DIR SYSCONFDIR "/" RDMADIR 51 | #define FI_CONF_DIR RDMA_CONF_DIR "/fabric" 52 | 53 | 54 | #ifdef __cplusplus 55 | } 56 | #endif 57 | 58 | #endif /* _OFI_FILE_H_ */ 59 | -------------------------------------------------------------------------------- /include/windows/arpa/inet.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | 5 | -------------------------------------------------------------------------------- /include/windows/dirent.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | 5 | 6 | struct dirent { 7 | char d_name[256]; 8 | }; 9 | 10 | static inline int scandir(const char *dirp, struct dirent **namelist, 11 | int (*filter)(const struct dirent *), 12 | int (*compar)(const struct dirent **, const struct dirent **)) 13 | { 14 | errno = ENOSYS; 15 | return -1; 16 | } 17 | -------------------------------------------------------------------------------- /include/windows/ifaddrs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation. All rights reserved. 3 | * 4 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 5 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 6 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 7 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 8 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 9 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 10 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 11 | * SOFTWARE. 12 | */ 13 | 14 | #pragma once 15 | 16 | #include 17 | 18 | /* here is minimal subset of ifaddr API required for sockets & UDP 19 | providers */ 20 | struct ifaddrs { 21 | struct ifaddrs *ifa_next; /* Next item in list */ 22 | char *ifa_name; /* Name of interface */ 23 | unsigned int ifa_flags; /* Flags from SIOCGIFFLAGS */ 24 | struct sockaddr *ifa_addr; /* Address of interface */ 25 | struct sockaddr *ifa_netmask; /* Netmask of interface */ 26 | 27 | struct sockaddr_storage in_addrs; 28 | struct sockaddr_storage in_netmasks; 29 | 30 | char ad_name[16]; 31 | size_t speed; 32 | }; 33 | 34 | int getifaddrs(struct ifaddrs **ifap); 35 | void freeifaddrs(struct ifaddrs *ifa); 36 | 37 | -------------------------------------------------------------------------------- /include/windows/net/if.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | 5 | -------------------------------------------------------------------------------- /include/windows/netdb.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | 5 | -------------------------------------------------------------------------------- /include/windows/netinet/in.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef _FI_WIN_NETINET_IN_H_ 3 | #define _FI_WIN_NETINET_IN_H_ 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | #endif /* _FI_WIN_NETINET_IN_H_ */ 10 | -------------------------------------------------------------------------------- /include/windows/netinet/ip.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | 5 | -------------------------------------------------------------------------------- /include/windows/netinet/tcp.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | 5 | -------------------------------------------------------------------------------- /include/windows/poll.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation. All rights reserved. 3 | * 4 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 5 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 6 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 7 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 8 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 9 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 10 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 11 | * SOFTWARE. 12 | */ 13 | 14 | #pragma once 15 | 16 | #include 17 | 18 | static inline int poll(struct pollfd *fds, int nfds, int timeout) 19 | { 20 | /* if none of fds is passed, returns 0 instead of error 21 | * to allign Windows and Linux poll system call */ 22 | if (!nfds) { 23 | Sleep(timeout); 24 | return 0; 25 | } else { 26 | return WSAPoll(fds, nfds, timeout); 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /include/windows/sys/ipc.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | 5 | -------------------------------------------------------------------------------- /include/windows/sys/param.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | 5 | -------------------------------------------------------------------------------- /include/windows/sys/select.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | 5 | -------------------------------------------------------------------------------- /include/windows/sys/socket.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation. All rights reserved. 3 | * 4 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 5 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 6 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 7 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 8 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 9 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 10 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 11 | * SOFTWARE. 12 | */ 13 | 14 | #ifndef _FI_WIN_SYS_SOCKET_H_ 15 | #define _FI_WIN_SYS_SOCKET_H_ 16 | 17 | #include "ofi_osd.h" 18 | #include "rdma/fabric.h" 19 | 20 | #ifdef __cplusplus 21 | extern "C" { 22 | #endif /* __cplusplus */ 23 | 24 | struct msghdr { 25 | void * msg_name; /* optional address */ 26 | socklen_t msg_namelen; /* size of address */ 27 | struct iovec * msg_iov; /* scatter/gather array */ 28 | size_t msg_iovlen; /* # elements in msg_iov */ 29 | void * msg_control; /* ancillary data, see below */ 30 | socklen_t msg_controllen; /* ancillary data buffer len */ 31 | int msg_flags; /* flags on received message */ 32 | }; 33 | 34 | ssize_t sendmsg(SOCKET sd, struct msghdr *msg, int flags); 35 | ssize_t recvmsg(SOCKET sd, struct msghdr *msg, int flags); 36 | 37 | #ifdef __cplusplus 38 | extern } 39 | #endif /* __cplusplus */ 40 | 41 | #endif /* _FI_WIN_SYS_SOCKET_H_ */ 42 | -------------------------------------------------------------------------------- /include/windows/sys/time.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation. All rights reserved. 3 | * 4 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 5 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 6 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 7 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 8 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 9 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 10 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 11 | * SOFTWARE. 12 | */ 13 | 14 | #pragma once 15 | 16 | #include 17 | #include 18 | 19 | static inline int gettimeofday(struct timeval* time, struct timezone* zone) 20 | { 21 | /* shift is difference between 1970-Jan-01 & 1601-Jan-01 22 | * in 100-nanosecond intervals: (27111902 << 32) + 3577643008 */ 23 | const uint64_t shift = 116444736000000000ULL; 24 | zone; 25 | 26 | SYSTEMTIME stime; 27 | FILETIME ftime; 28 | uint64_t utime; 29 | 30 | GetSystemTime(&stime); 31 | SystemTimeToFileTime(&stime, &ftime); 32 | utime = (((uint64_t)ftime.dwHighDateTime) << 32) + ((uint64_t)ftime.dwLowDateTime); 33 | 34 | time->tv_sec = (long)((utime - shift) / 10000000L); 35 | time->tv_usec = (long)(stime.wMilliseconds * 1000); 36 | return 0; 37 | } 38 | 39 | -------------------------------------------------------------------------------- /include/windows/sys/uio.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation. All rights reserved. 3 | * 4 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 5 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 6 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 7 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 8 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 9 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 10 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 11 | * SOFTWARE. 12 | */ 13 | 14 | #ifndef _FI_WIN_SYS_UIO_H_ 15 | #define _FI_WIN_SYS_UIO_H_ 16 | 17 | #include 18 | #include 19 | 20 | struct iovec { 21 | void *iov_base; /* Pointer to data. */ 22 | size_t iov_len; /* Length of data. */ 23 | }; 24 | 25 | #endif /* _FI_WIN_SYS_UIO_H_ */ 26 | 27 | -------------------------------------------------------------------------------- /include/windows/sys/wait.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | -------------------------------------------------------------------------------- /include/windows/unistd.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017 Intel Corporation. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | #pragma once 34 | 35 | #include 36 | 37 | static inline void usleep(DWORD waitTime) 38 | { 39 | LARGE_INTEGER perfCnt, start, now; 40 | 41 | QueryPerformanceFrequency(&perfCnt); 42 | QueryPerformanceCounter(&start); 43 | 44 | do { 45 | QueryPerformanceCounter((LARGE_INTEGER*)&now); 46 | } while ((now.QuadPart - start.QuadPart) / 47 | (float)perfCnt.QuadPart * 1000 * 1000 < waitTime); 48 | } -------------------------------------------------------------------------------- /info.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | Source Files 26 | 27 | 28 | 29 | 30 | Header Files 31 | 32 | 33 | -------------------------------------------------------------------------------- /libfabric.def: -------------------------------------------------------------------------------- 1 | 2 | EXPORTS 3 | fi_version = fi_version 4 | fi_dupinfo = fi_dupinfo 5 | fi_getinfo = fi_getinfo 6 | fi_freeinfo = fi_freeinfo 7 | fi_fabric = fi_fabric 8 | fi_strerror = fi_strerror 9 | fi_tostr = fi_tostr 10 | fi_getparams = fi_getparams 11 | fi_freeparams = fi_freeparams 12 | -------------------------------------------------------------------------------- /libfabric.map.in: -------------------------------------------------------------------------------- 1 | FABRIC_1.0 { 2 | global: 3 | fi_getinfo; 4 | fi_freeinfo; 5 | fi_dupinfo; 6 | fi_fabric; 7 | fi_version; 8 | fi_strerror; 9 | fi_tostr; 10 | fi_log_enabled; 11 | fi_log; 12 | fi_param_define; 13 | fi_param_get; 14 | fi_getparams; 15 | fi_freeparams; 16 | @FI_DIRECT_PROVIDER_API_10@ 17 | local: *; 18 | }; 19 | 20 | FABRIC_1.1 { 21 | global: 22 | fi_getinfo; 23 | fi_freeinfo; 24 | fi_dupinfo; 25 | fi_fabric; 26 | } FABRIC_1.0; 27 | 28 | FABRIC_1.2 { 29 | global: 30 | fi_getinfo; 31 | fi_freeinfo; 32 | fi_dupinfo; 33 | } FABRIC_1.1; 34 | 35 | FABRIC_1.3 { 36 | global: 37 | fi_getinfo; 38 | fi_freeinfo; 39 | fi_dupinfo; 40 | } FABRIC_1.2; 41 | -------------------------------------------------------------------------------- /libfabric.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | 6 | Name: libfabric 7 | Description: OFI-WG libfabric 8 | URL: https://github.com/ofiwg/libfabric.git 9 | Version: @VERSION@ 10 | Requires: 11 | Cflags: -I${includedir} 12 | Libs: -L${libdir} -lfabric @FI_PC_PUBLIC_LIBS@ 13 | Libs.private: @FI_PC_PRIVATE_LIBS@ 14 | Requires.private: -------------------------------------------------------------------------------- /man/fi_control.3.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: fi_control(3) 4 | tagline: Libfabric Programmer's Manual 5 | --- 6 | {% include JB/setup %} 7 | 8 | # NAME 9 | 10 | fi_control \- Perform an operation on a fabric resource. 11 | 12 | # SYNOPSIS 13 | 14 | ```c 15 | #include 16 | 17 | int fi_control(struct fid *fid, int command, void *arg); 18 | ``` 19 | 20 | 21 | # ARGUMENTS 22 | 23 | *fid* 24 | : Fabric resource 25 | 26 | *command* 27 | : Operation to perform 28 | 29 | *arg* 30 | : Optional argument to the command 31 | 32 | # DESCRIPTION 33 | 34 | The fi_control operation is used to perform one or more operations on a 35 | fabric resource. Conceptually, fi_control is similar to the POSIX fcntl 36 | routine. The exact behavior of using fi_control depends on the fabric 37 | resource being operated on, the specified command, and any provided 38 | arguments for the command. For specific details, see the fabric resource 39 | specific help pages noted below. 40 | 41 | # SEE ALSO 42 | 43 | [`fi_endpoint`(3)](fi_endpoint.3.html), 44 | [`fi_cm`(3)](fi_cm.3.html), 45 | [`fi_cntr`(3)](fi_cntr.3.html), 46 | [`fi_cq`(3)](fi_cq.3.html), 47 | [`fi_eq`(3)](fi_eq.3.html), 48 | -------------------------------------------------------------------------------- /man/fi_mlx.7.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: fi_mlx(7) 4 | tagline: Libfabric Programmer's Manual 5 | --- 6 | {% include JB/setup %} 7 | 8 | # NAME 9 | 10 | fi_mlx \- The MLX Fabric Provider 11 | 12 | # OVERVIEW 13 | 14 | The mlx provider was deprecated and removed in libfabric 1.9 15 | due to a lack of a maintainer. 16 | 17 | # SEE ALSO 18 | 19 | [`fabric`(7)](fabric.7.html), 20 | [`fi_provider`(7)](fi_provider.7.html), 21 | -------------------------------------------------------------------------------- /man/fi_rxd.7.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: fi_rxd(7) 4 | tagline: Libfabric Programmer's Manual 5 | --- 6 | {% include JB/setup %} 7 | 8 | # NAME 9 | 10 | fi_rxd \- The RxD (RDM over DGRAM) Utility Provider 11 | 12 | # OVERVIEW 13 | 14 | The RxD provider is a utility provider that supports RDM endpoints 15 | emulated over a base DGRAM provider. 16 | 17 | # SUPPORTED FEATURES 18 | 19 | The RxD provider currently supports *FI_MSG* capabilities. 20 | 21 | *Endpoint types* 22 | : The provider supports only endpoint type *FI_EP_RDM*. 23 | 24 | *Endpoint capabilities* : The following data transfer interface is 25 | supported: *fi_msg*. 26 | 27 | *Modes* 28 | : The provider does not require the use of any mode bits but supports 29 | core DGRAM providers that require FI_CONTEXT and FI_MSG_PREFIX. 30 | 31 | *Progress* 32 | : The RxD provider only supports *FI_PROGRESS_MANUAL*. 33 | 34 | # LIMITATIONS 35 | 36 | The RxD provider has hard-coded maximums for supported queue sizes and 37 | data transfers. Some of these limits are set based on the selected 38 | base DGRAM provider. 39 | 40 | No support for multi-recv. 41 | 42 | No support for counters. 43 | 44 | The RxD provider is still under development and is not extensively 45 | tested. 46 | 47 | # RUNTIME PARAMETERS 48 | 49 | The *rxd* provider checks for the following environment variables: 50 | 51 | *FI_OFI_RXD_SPIN_COUNT* 52 | : Number of times to read the core provider's CQ for a segment completion 53 | before trying to progress sends. Default is 1000. 54 | 55 | *FI_OFI_RXD_RETRY* 56 | : Toggles retrying of packets and assumes reliability of individual packets 57 | and will reassemble all received packets. Retrying is turned on by default. 58 | 59 | *FI_OFI_RXD_MAX_PEERS* 60 | : Maximum number of peers the provider should prepare to track. Default: 1024 61 | 62 | *FI_OFI_RXD_MAX_UNACKED* 63 | : Maximum number of packets (per peer) to send at a time. Default: 128 64 | 65 | # SEE ALSO 66 | 67 | [`fabric`(7)](fabric.7.html), 68 | [`fi_provider`(7)](fi_provider.7.html), 69 | [`fi_getinfo`(3)](fi_getinfo.3.html) 70 | -------------------------------------------------------------------------------- /man/fi_strerror.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: fi_strerror(1) 4 | tagline: Libfabric Programmer's Manual 5 | --- 6 | {% include JB/setup %} 7 | 8 | # NAME 9 | 10 | fi_strerror \- display libfabric error strings 11 | 12 | # SYNOPSIS 13 | 14 | ``` 15 | fi_strerror FI_ERROR_CODE 16 | ``` 17 | 18 | # DESCRIPTION 19 | 20 | Display the error string for the given numeric `FI_ERROR_CODE`. 21 | `FI_ERROR_CODE` may be a hexadecimal, octal, or decimal constant. Although 22 | the [`fi_strerror`(3)](fi_errno.3.html) library function only accepts positive 23 | error values, for convenience this utility accepts both positive and negative 24 | error values. 25 | 26 | This is primarily a convenience tool for developers. 27 | 28 | # SEE ALSO 29 | 30 | [`fabric`(7)](fabric.7.html) 31 | [`fi_errno`(3)](fi_errno.3.html) 32 | -------------------------------------------------------------------------------- /man/fi_udp.7.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: fi_udp(7) 4 | tagline: Libfabric Programmer's Manual 5 | --- 6 | {% include JB/setup %} 7 | 8 | # NAME 9 | 10 | fi_udp \- The UDP Fabric Provider 11 | 12 | # OVERVIEW 13 | 14 | The UDP provider is a basic provider that can be used on any 15 | system that supports UDP sockets. The provider is not intended to provide 16 | performance improvements over regular TCP sockets, but rather to allow 17 | application and provider developers to write, test, and debug their code. 18 | The UDP provider forms the foundation of a utility provider that enables 19 | the implementation of libfabric features over any hardware. 20 | 21 | # SUPPORTED FEATURES 22 | 23 | The UDP provider supports a minimal set of features useful for sending and 24 | receiving datagram messages over an unreliable endpoint. 25 | 26 | *Endpoint types* 27 | : The provider supports only endpoint type *FI_EP_DGRAM*. 28 | 29 | *Endpoint capabilities* 30 | : The following data transfer interface is supported: *fi_msg*. The 31 | provider supports standard unicast datagram transfers, as well as 32 | multicast operations. 33 | 34 | *Modes* 35 | : The provider does not require the use of any mode bits. 36 | 37 | *Progress* 38 | : The UDP provider supports both *FI_PROGRESS_AUTO* and *FI_PROGRESS_MANUAL*, 39 | with a default set to auto. However, receive side data buffers are not 40 | modified outside of completion processing routines. 41 | 42 | # LIMITATIONS 43 | 44 | The UDP provider has hard-coded maximums for supported queue sizes and data 45 | transfers. These values are reflected in the related fabric attribute 46 | structures 47 | 48 | EPs must be bound to both RX and TX CQs. 49 | 50 | No support for selective completions or multi-recv. 51 | 52 | No support for counters. 53 | 54 | # RUNTIME PARAMETERS 55 | 56 | No runtime parameters are currently defined. 57 | 58 | # SEE ALSO 59 | 60 | [`fabric`(7)](fabric.7.html), 61 | [`fi_provider`(7)](fi_provider.7.html), 62 | [`fi_getinfo`(3)](fi_getinfo.3.html) 63 | -------------------------------------------------------------------------------- /man/fi_version.3.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: fi_version(3) 4 | tagline: Libfabric Programmer's Manual 5 | --- 6 | {% include JB/setup %} 7 | 8 | # NAME 9 | 10 | fi_version \- Version of the library interfaces 11 | 12 | # SYNOPSIS 13 | 14 | ```c 15 | #include 16 | 17 | uint32_t fi_version(void); 18 | 19 | FI_MAJOR(version) 20 | 21 | FI_MINOR(version) 22 | ``` 23 | 24 | # DESCRIPTION 25 | 26 | This call returns the current version of the library interfaces. The 27 | version includes major and minor numbers. These may be extracted 28 | from the returned value using the FI_MAJOR() and FI_MINOR() macros. 29 | 30 | # NOTES 31 | 32 | The library may support older versions of the interfaces. 33 | 34 | # RETURN VALUE 35 | 36 | Returns the current library version. The upper 16-bits of the version 37 | correspond to the major number, and the lower 16-bits correspond with 38 | the minor number. 39 | 40 | # SEE ALSO 41 | 42 | [`fabric`(7)](fabric.7.html), 43 | [`fi_getinfo`(3)](fi_getinfo.3.html) 44 | -------------------------------------------------------------------------------- /man/man1/fi_strerror.1: -------------------------------------------------------------------------------- 1 | .\" Automatically generated by Pandoc 1.19.2.4 2 | .\" 3 | .TH "fi_strerror" "1" "2018\-10\-05" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@" 4 | .hy 5 | .SH NAME 6 | .PP 7 | fi_strerror \- display libfabric error strings 8 | .SH SYNOPSIS 9 | .IP 10 | .nf 11 | \f[C] 12 | fi_strerror\ FI_ERROR_CODE 13 | \f[] 14 | .fi 15 | .SH DESCRIPTION 16 | .PP 17 | Display the error string for the given numeric \f[C]FI_ERROR_CODE\f[]. 18 | \f[C]FI_ERROR_CODE\f[] may be a hexadecimal, octal, or decimal constant. 19 | Although the \f[C]fi_strerror\f[](3) library function only accepts 20 | positive error values, for convenience this utility accepts both 21 | positive and negative error values. 22 | .PP 23 | This is primarily a convenience tool for developers. 24 | .SH SEE ALSO 25 | .PP 26 | \f[C]fabric\f[](7) \f[C]fi_errno\f[](3) 27 | .SH AUTHORS 28 | OpenFabrics. 29 | -------------------------------------------------------------------------------- /man/man3/fi_accept.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cm.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_alias.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_endpoint.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_allgather.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_collective.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_allreduce.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_collective.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_alltoall.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_collective.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_atomic_valid.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_atomic.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_atomicmsg.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_atomic.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_atomicv.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_atomic.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_av_bind.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_av.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_av_insert.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_av.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_av_insertsvc.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_av.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_av_lookup.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_av.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_av_open.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_av.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_av_remove.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_av.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_av_set_diff.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_av_set.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_av_set_insert.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_av_set.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_av_set_intersect.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_av_set.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_av_set_remove.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_av_set.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_av_set_union.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_av_set.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_av_straddr.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_av.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_barrier.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_collective.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_broadcast.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_collective.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_cancel.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_endpoint.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_close.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_domain.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_cntr_add.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cntr.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_cntr_open.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cntr.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_cntr_read.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cntr.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_cntr_set.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cntr.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_cntr_wait.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cntr.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_compare_atomic.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_atomic.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_compare_atomic_valid.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_atomic.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_compare_atomicmsg.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_atomic.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_compare_atomicv.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_atomic.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_connect.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cm.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_control.3: -------------------------------------------------------------------------------- 1 | .\" Automatically generated by Pandoc 1.19.2.4 2 | .\" 3 | .TH "fi_control" "3" "2018\-10\-05" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@" 4 | .hy 5 | .SH NAME 6 | .PP 7 | fi_control \- Perform an operation on a fabric resource. 8 | .SH SYNOPSIS 9 | .IP 10 | .nf 11 | \f[C] 12 | #include\ 13 | 14 | int\ fi_control(struct\ fid\ *fid,\ int\ command,\ void\ *arg); 15 | \f[] 16 | .fi 17 | .SH ARGUMENTS 18 | .TP 19 | .B \f[I]fid\f[] 20 | Fabric resource 21 | .RS 22 | .RE 23 | .TP 24 | .B \f[I]command\f[] 25 | Operation to perform 26 | .RS 27 | .RE 28 | .TP 29 | .B \f[I]arg\f[] 30 | Optional argument to the command 31 | .RS 32 | .RE 33 | .SH DESCRIPTION 34 | .PP 35 | The fi_control operation is used to perform one or more operations on a 36 | fabric resource. 37 | Conceptually, fi_control is similar to the POSIX fcntl routine. 38 | The exact behavior of using fi_control depends on the fabric resource 39 | being operated on, the specified command, and any provided arguments for 40 | the command. 41 | For specific details, see the fabric resource specific help pages noted 42 | below. 43 | .SH SEE ALSO 44 | .PP 45 | \f[C]fi_endpoint\f[](3), \f[C]fi_cm\f[](3), \f[C]fi_cntr\f[](3), 46 | \f[C]fi_cq\f[](3), \f[C]fi_eq\f[](3), 47 | .SH AUTHORS 48 | OpenFabrics. 49 | -------------------------------------------------------------------------------- /man/man3/fi_cq_open.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cq.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_cq_read.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cq.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_cq_readerr.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cq.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_cq_readfrom.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cq.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_cq_signal.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cq.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_cq_sread.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cq.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_cq_sreadfrom.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cq.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_cq_strerror.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cq.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_domain_bind.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_domain.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_domain_query.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_domain.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_dupinfo.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_getinfo.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_enable.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_endpoint.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_ep.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_endpoint.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_ep_bind.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_endpoint.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_eq_open.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_eq.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_eq_read.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_eq.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_eq_readerr.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_eq.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_eq_sread.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_eq.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_eq_strerror.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_eq.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_eq_write.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_eq.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_fetch_atomic.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_atomic.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_fetch_atomic_valid.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_atomic.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_fetch_atomicmsg.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_atomic.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_fetch_atomicv.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_atomic.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_freeinfo.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_getinfo.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_getname.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cm.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_getopt.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_endpoint.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_getpeer.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cm.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_inject.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_msg.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_inject_atomic.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_atomic.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_inject_write.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_rma.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_inject_writedata.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_rma.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_injectdata.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_msg.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_join.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cm.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_join_collective.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_collective.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_leave.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cm.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_listen.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cm.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_mr_bind.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_mr.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_mr_desc.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_mr.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_mr_key.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_mr.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_mr_reg.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_mr.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_mr_regattr.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_mr.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_mr_regv.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_mr.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_open.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_domain.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_open_ops.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_domain.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_passive_ep.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_endpoint.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_pep_bind.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_endpoint.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_poll_add.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_poll.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_poll_del.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_poll.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_poll_open.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_poll.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_query_atomic.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_atomic.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_query_collective.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_collective.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_read.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_rma.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_readmsg.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_rma.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_readv.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_rma.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_recv.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_msg.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_recvmsg.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_msg.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_recvv.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_msg.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_reduce_scatter.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_collective.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_reject.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cm.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_rx_addr.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_av.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_rx_size_left.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_endpoint.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_scalable_ep_bind.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_endpoint.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_send.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_msg.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_senddata.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_msg.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_sendmsg.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_msg.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_sendv.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_msg.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_setname.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cm.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_setopt.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_endpoint.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_shutdown.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_cm.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_strerror.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_errno.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_tinject.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_tagged.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_tinjectdata.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_tagged.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_tostr.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_fabric.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_trecv.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_tagged.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_trecvmsg.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_tagged.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_trecvv.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_tagged.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_trywait.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_poll.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_tsend.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_tagged.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_tsenddata.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_tagged.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_tsendmsg.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_tagged.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_tsendv.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_tagged.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_tx_size_left.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_endpoint.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_version.3: -------------------------------------------------------------------------------- 1 | .\" Automatically generated by Pandoc 1.19.2.4 2 | .\" 3 | .TH "fi_version" "3" "2018\-10\-05" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@" 4 | .hy 5 | .SH NAME 6 | .PP 7 | fi_version \- Version of the library interfaces 8 | .SH SYNOPSIS 9 | .IP 10 | .nf 11 | \f[C] 12 | #include\ 13 | 14 | uint32_t\ fi_version(void); 15 | 16 | FI_MAJOR(version) 17 | 18 | FI_MINOR(version) 19 | \f[] 20 | .fi 21 | .SH DESCRIPTION 22 | .PP 23 | This call returns the current version of the library interfaces. 24 | The version includes major and minor numbers. 25 | These may be extracted from the returned value using the FI_MAJOR() and 26 | FI_MINOR() macros. 27 | .SH NOTES 28 | .PP 29 | The library may support older versions of the interfaces. 30 | .SH RETURN VALUE 31 | .PP 32 | Returns the current library version. 33 | The upper 16\-bits of the version correspond to the major number, and 34 | the lower 16\-bits correspond with the minor number. 35 | .SH SEE ALSO 36 | .PP 37 | \f[C]fabric\f[](7), \f[C]fi_getinfo\f[](3) 38 | .SH AUTHORS 39 | OpenFabrics. 40 | -------------------------------------------------------------------------------- /man/man3/fi_wait.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_poll.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_wait_open.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_poll.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_write.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_rma.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_writedata.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_rma.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_writemsg.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_rma.3 2 | -------------------------------------------------------------------------------- /man/man3/fi_writev.3: -------------------------------------------------------------------------------- 1 | .so man3/fi_rma.3 2 | -------------------------------------------------------------------------------- /man/man7/fi_mlx.7: -------------------------------------------------------------------------------- 1 | .\" Automatically generated by Pandoc 1.19.2.4 2 | .\" 3 | .TH "fi_mlx" "7" "2019\-09\-17" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@" 4 | .hy 5 | .SH NAME 6 | .PP 7 | fi_mlx \- The MLX Fabric Provider 8 | .SH OVERVIEW 9 | .PP 10 | The mlx provider was deprecated and removed in libfabric 1.9 due to a 11 | lack of a maintainer. 12 | .SH SEE ALSO 13 | .PP 14 | \f[C]fabric\f[](7), \f[C]fi_provider\f[](7), 15 | .SH AUTHORS 16 | OpenFabrics. 17 | -------------------------------------------------------------------------------- /pingpong.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | 26 | 27 | Header Files 28 | 29 | 30 | -------------------------------------------------------------------------------- /prov/bgq/.gitignore: -------------------------------------------------------------------------------- 1 | NOTES 2 | -------------------------------------------------------------------------------- /prov/bgq/include/rdma/fi_direct_trigger.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 by Argonne National Laboratory. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | #ifndef _FI_BGQ_DIRECT_TRIGGER_H_ 33 | #define _FI_BGQ_DIRECT_TRIGGER_H_ 34 | 35 | #define FABRIC_DIRECT_TRIGGER 1 36 | 37 | #ifdef __cplusplus 38 | extern "C" { 39 | #endif 40 | 41 | #ifdef FABRIC_DIRECT 42 | /* Size must match struct fi_context */ 43 | struct fi_triggered_context { 44 | enum fi_trigger_event event_type; 45 | union { 46 | struct fi_trigger_threshold threshold; 47 | void *internal[3]; 48 | }; 49 | }; 50 | #endif 51 | 52 | #ifdef __cplusplus 53 | } 54 | #endif 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /prov/bgq/provider_FABRIC_1.0.map: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 by Argonne National Laboratory. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | /* 33 | * used for exporting BGQ provider 34 | * symbols when building to support FI_DIRECT 35 | */ 36 | -------------------------------------------------------------------------------- /prov/bgq/src/fi_bgq_agent.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 by Argonne National Laboratory. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | #include 34 | #include 35 | 36 | int main (int argc, char ** argv) { 37 | 38 | setbuf(stdout, NULL); 39 | setbuf(stderr, NULL); 40 | 41 | while (1) usleep(1000); 42 | 43 | return 0; 44 | } 45 | -------------------------------------------------------------------------------- /prov/efa/src/rxr/rxr_atomic.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019-2020 Amazon.com, Inc. or its affiliates. 3 | * All rights reserved. 4 | * 5 | * This software is available to you under a choice of one of two 6 | * licenses. You may choose to be licensed under the terms of the GNU 7 | * General Public License (GPL) Version 2, available from the file 8 | * COPYING in the main directory of this source tree, or the 9 | * BSD license below: 10 | * 11 | * Redistribution and use in source and binary forms, with or 12 | * without modification, are permitted provided that the following 13 | * conditions are met: 14 | * 15 | * - Redistributions of source code must retain the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer. 18 | * 19 | * - Redistributions in binary form must reproduce the above 20 | * copyright notice, this list of conditions and the following 21 | * disclaimer in the documentation and/or other materials 22 | * provided with the distribution. 23 | * 24 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 25 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 26 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 27 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 28 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 29 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 30 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | * SOFTWARE. 32 | */ 33 | #if HAVE_CONFIG_H 34 | #include 35 | #endif /* HAVE_CONFIG_H */ 36 | 37 | #ifndef _RXR_ATOMIC_H_ 38 | #define _RXR_ATOMIC_H_ 39 | 40 | int rxr_query_atomic(struct fid_domain *domain, 41 | enum fi_datatype datatype, enum fi_op op, 42 | struct fi_atomic_attr *attr, uint64_t flags); 43 | 44 | extern struct fi_ops_atomic rxr_ops_atomic; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /prov/efa/src/rxr/rxr_cntr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019 Amazon.com, Inc. or its affiliates. 3 | * All rights reserved. 4 | * 5 | * This software is available to you under a choice of one of two 6 | * licenses. You may choose to be licensed under the terms of the GNU 7 | * General Public License (GPL) Version 2, available from the file 8 | * COPYING in the main directory of this source tree, or the 9 | * BSD license below: 10 | * 11 | * Redistribution and use in source and binary forms, with or 12 | * without modification, are permitted provided that the following 13 | * conditions are met: 14 | * 15 | * - Redistributions of source code must retain the above 16 | * copyright notice, this list of conditions and the following 17 | * disclaimer. 18 | * 19 | * - Redistributions in binary form must reproduce the above 20 | * copyright notice, this list of conditions and the following 21 | * disclaimer in the documentation and/or other materials 22 | * provided with the distribution. 23 | * 24 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 25 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 26 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 27 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 28 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 29 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 30 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | * SOFTWARE. 32 | */ 33 | 34 | #if HAVE_CONFIG_H 35 | #include 36 | #endif /* HAVE_CONFIG_H */ 37 | 38 | #ifndef _RXR_CNTR_H_ 39 | #define _RXR_CNTR_H_ 40 | 41 | int efa_cntr_open(struct fid_domain *domain, struct fi_cntr_attr *attr, 42 | struct fid_cntr **cntr_fid, void *context); 43 | 44 | void efa_cntr_report_tx_completion(struct util_ep *ep, uint64_t flags); 45 | 46 | void efa_cntr_report_rx_completion(struct util_ep *ep, uint64_t flags); 47 | 48 | void efa_cntr_report_error(struct util_ep *ep, uint64_t flags); 49 | 50 | #endif 51 | 52 | -------------------------------------------------------------------------------- /prov/gni/README.md: -------------------------------------------------------------------------------- 1 | # OFI libfabric GNI provider 2 | 3 | The GNI provider is a research prototype provider layer for OFI 4 | libfabric running on Cray XC (TM) systems. It is being developed as a 5 | collaboration between Los Alamos National Laboratory and Cray Inc. 6 | The goals of the collaboration are to enable libfabric clients such as 7 | OpenMPI to experiment at scale on today's hardware. As such, we have 8 | initially tried to address requirements of MPI, SHMEM and PGAS 9 | language and library implementation. As with any provider, there 10 | features that are difficult to support efficiently (e.g., 11 | FI_MR_SCALABLE) and have been omitted for the time being. 12 | 13 | Bugs should be filed as GitHub issues on the ofi-cray/libfabric-cray 14 | repository (https://github.com/ofi-cray/libfabric-cray). 15 | 16 | ## For Developers 17 | 18 | See the wiki pages at the ofi-cray/libfabric-cray repository 19 | (https://github.com/ofi-cray/libfabric-cray) for tips and other useful 20 | information. 21 | 22 | -------------------------------------------------------------------------------- /prov/gni/include/rdma/fi_direct.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013-2014 Intel Corporation. All rights reserved. 3 | * Copyright (c) 2015-2016 Los Alamos National Security, LLC. All 4 | * rights reserved. 5 | * Copyright (c) 2015-2016 Cray Inc. All rights reserved. 6 | * 7 | * This software is available to you under a choice of one of two 8 | * licenses. You may choose to be licensed under the terms of the GNU 9 | * General Public License (GPL) Version 2, available from the file 10 | * COPYING in the main directory of this source tree, or the 11 | * BSD license below: 12 | * 13 | * Redistribution and use in source and binary forms, with or 14 | * without modification, are permitted provided that the following 15 | * conditions are met: 16 | * 17 | * - Redistributions of source code must retain the above 18 | * copyright notice, this list of conditions and the following 19 | * disclaimer. 20 | * 21 | * - Redistributions in binary form must reproduce the above 22 | * copyright notice, this list of conditions and the following 23 | * disclaimer in the documentation and/or other materials 24 | * provided with the distribution. 25 | * 26 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 27 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 28 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 29 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 30 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 31 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 32 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 33 | * SOFTWARE. 34 | */ 35 | 36 | #ifndef _FI_DIRECT_H_ 37 | #define _FI_DIRECT_H_ 38 | 39 | #define FABRIC_DIRECT_ 1 40 | 41 | struct fi_context { 42 | void *internal[4]; 43 | }; 44 | 45 | #endif /* _FI_DIRECT_H_ */ 46 | -------------------------------------------------------------------------------- /prov/gni/include/rdma/fi_direct_trigger.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015-2016 Los Alamos National Security, LLC. All 3 | * rights reserved. 4 | * Copyright (c) 2015-2016 Cray Inc. All rights reserved. 5 | * 6 | * This software is available to you under a choice of one of two 7 | * licenses. You may choose to be licensed under the terms of the GNU 8 | * General Public License (GPL) Version 2, available from the file 9 | * COPYING in the main directory of this source tree, or the 10 | * BSD license below: 11 | * 12 | * Redistribution and use in source and binary forms, with or 13 | * without modification, are permitted provided that the following 14 | * conditions are met: 15 | * 16 | * - Redistributions of source code must retain the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer. 19 | * 20 | * - Redistributions in binary form must reproduce the above 21 | * copyright notice, this list of conditions and the following 22 | * disclaimer in the documentation and/or other materials 23 | * provided with the distribution. 24 | * 25 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 26 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 27 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 28 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 29 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 30 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 31 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 | * SOFTWARE. 33 | */ 34 | 35 | #ifndef _FI_DIRECT_TRIGGER_H_ 36 | #define _FI_DIRECT_TRIGGER_H_ 37 | 38 | #define FABRIC_DIRECT_TRIGGER 1 39 | 40 | /* Size must match struct fi_context */ 41 | struct fi_triggered_context { 42 | enum fi_trigger_event event_type; 43 | union { 44 | struct fi_trigger_threshold threshold; 45 | void *internal[3]; 46 | } trigger; 47 | }; 48 | 49 | #endif /* _FI_DIRECT_TRIGGER_H_ */ 50 | -------------------------------------------------------------------------------- /prov/hook/Makefile.include: -------------------------------------------------------------------------------- 1 | src_libfabric_la_CPPFLAGS += -I$(top_srcdir)/prov/hook/include 2 | src_libfabric_la_SOURCES += prov/hook/include/hook_prov.h 3 | -------------------------------------------------------------------------------- /prov/hook/hook_debug/Makefile.include: -------------------------------------------------------------------------------- 1 | if HAVE_HOOK_DEBUG 2 | _hook_debug_files = \ 3 | prov/hook/hook_debug/src/hook_debug.c 4 | 5 | _hook_debug_headers = \ 6 | prov/hook/hook_debug/include/hook_debug.h 7 | 8 | 9 | src_libfabric_la_SOURCES += $(_hook_debug_files) \ 10 | $(_hook_debug_headers) 11 | src_libfabric_la_CPPFLAGS += -I$(top_srcdir)/prov/hook/hook_debug/include 12 | src_libfabric_la_LIBADD += $(hook_debug_shm_LIBS) 13 | endif HAVE_HOOK_DEBUG 14 | -------------------------------------------------------------------------------- /prov/hook/hook_debug/configure.m4: -------------------------------------------------------------------------------- 1 | dnl Configury specific to the libfabrics debug hooking provider 2 | 3 | dnl Called to configure this provider 4 | dnl 5 | dnl Arguments: 6 | dnl 7 | dnl $1: action if configured successfully 8 | dnl $2: action if not configured successfully 9 | dnl 10 | 11 | AC_DEFUN([FI_HOOK_DEBUG_CONFIGURE],[ 12 | # Determine if we can support the debug hooking provider 13 | hook_debug_happy=0 14 | AS_IF([test x"$enable_hook_debug" != x"no"], [hook_debug_happy=1]) 15 | AS_IF([test x"$hook_debug_dl" == x"1"], [ 16 | hook_debug_happy=0 17 | AC_MSG_ERROR([debug hooking provider cannot be compiled as DL]) 18 | ]) 19 | AS_IF([test $hook_debug_happy -eq 1], [$1], [$2]) 20 | 21 | ]) 22 | -------------------------------------------------------------------------------- /prov/hook/include/hook_prov.h: -------------------------------------------------------------------------------- 1 | #ifndef HOOK_PROV_H 2 | #define HOOK_PROV_H 3 | 4 | #include 5 | #include "ofi_hook.h" 6 | 7 | int hook_bind(struct fid *fid, struct fid *bfid, uint64_t flags); 8 | int hook_control(struct fid *fid, int command, void *arg); 9 | int hook_ops_open(struct fid *fid, const char *name, 10 | uint64_t flags, void **ops, void *context); 11 | int hook_close(struct fid *fid); 12 | 13 | #if HAVE_PERF 14 | #include "hook_perf.h" 15 | #else 16 | #define perf_msg_ops hook_msg_ops 17 | #define perf_rma_ops hook_rma_ops 18 | #define perf_tagged_ops hook_tagged_ops 19 | #define perf_cntr_ops hook_cntr_ops 20 | #define perf_cq_ops hook_cq_ops 21 | 22 | #define hook_perf_create hook_fabric_create 23 | #define hook_perf_destroy hook_fabric_destroy 24 | 25 | #endif /* HAVE_PERF */ 26 | #endif /* HOOK_PROV_H */ 27 | -------------------------------------------------------------------------------- /prov/hook/perf/Makefile.include: -------------------------------------------------------------------------------- 1 | if HAVE_PERF 2 | _perfhook_files = \ 3 | prov/hook/perf/src/hook_perf.c 4 | 5 | _perfhook_headers = \ 6 | prov/hook/perf/include/hook_perf.h 7 | 8 | 9 | src_libfabric_la_SOURCES += $(_perfhook_files) \ 10 | $(_perfhook_headers) 11 | src_libfabric_la_CPPFLAGS += -I$(top_srcdir)/prov/hook/perf/include 12 | src_libfabric_la_LIBADD += $(perfhook_shm_LIBS) 13 | endif HAVE_PERF 14 | -------------------------------------------------------------------------------- /prov/hook/perf/configure.m4: -------------------------------------------------------------------------------- 1 | dnl Configury specific to the libfabrics perf hooking provider 2 | 3 | dnl Called to configure this provider 4 | dnl 5 | dnl Arguments: 6 | dnl 7 | dnl $1: action if configured successfully 8 | dnl $2: action if not configured successfully 9 | dnl 10 | 11 | AC_DEFUN([FI_PERF_CONFIGURE],[ 12 | # Determine if we can support the perf hooking provider 13 | perf_happy=0 14 | AS_IF([test x"$enable_perf" != x"no"], [perf_happy=1]) 15 | AS_IF([test x"$perf_dl" == x"1"], [ 16 | perf_happy=0 17 | AC_MSG_ERROR([perf provider cannot be compiled as DL]) 18 | ]) 19 | AS_IF([test $perf_happy -eq 1], [$1], [$2]) 20 | 21 | ]) 22 | -------------------------------------------------------------------------------- /prov/mrail/Makefile.include: -------------------------------------------------------------------------------- 1 | if HAVE_MRAIL 2 | _mrail_files = \ 3 | prov/mrail/src/mrail_init.c \ 4 | prov/mrail/src/mrail_attr.c \ 5 | prov/mrail/src/mrail_fabric.c \ 6 | prov/mrail/src/mrail_domain.c \ 7 | prov/mrail/src/mrail_cq.c \ 8 | prov/mrail/src/mrail_ep.c \ 9 | prov/mrail/src/mrail_av.c \ 10 | prov/mrail/src/mrail_rma.c \ 11 | prov/mrail/src/mrail.h 12 | 13 | if HAVE_MRAIL_DL 14 | pkglib_LTLIBRARIES += libmrail-fi.la 15 | libmrail_fi_la_SOURCES = $(_mrail_files) $(common_srcs) 16 | libmrail_fi_la_LIBADD = $(linkback) $(mrail_shm_LIBS) 17 | libmrail_fi_la_LDFLAGS = -module -avoid-version -shared -export-dynamic 18 | libmrail_fi_la_DEPENDENCIES = $(linkback) 19 | else !HAVE_MRAIL_DL 20 | src_libfabric_la_SOURCES += $(_mrail_files) 21 | src_libfabric_la_LIBADD += $(mrail_shm_LIBS) 22 | endif !HAVE_MRAIL_DL 23 | 24 | prov_install_man_pages += man/man7/fi_mrail.7 25 | 26 | endif HAVE_MRAIL 27 | 28 | prov_dist_man_pages += man/man7/fi_mrail.7 29 | -------------------------------------------------------------------------------- /prov/mrail/configure.m4: -------------------------------------------------------------------------------- 1 | dnl Configury specific to the libfabric mrail provider 2 | 3 | dnl Called to configure this provider 4 | dnl 5 | dnl Arguments: 6 | dnl 7 | dnl $1: action if configured successfully 8 | dnl $2: action if not configured successfully 9 | dnl 10 | AC_DEFUN([FI_MRAIL_CONFIGURE],[ 11 | # Determine if we can support the mrail provider 12 | mrail_h_happy=0 13 | AS_IF([test x"$enable_mrail" != x"no"], [mrail_h_happy=1]) 14 | AS_IF([test $mrail_h_happy -eq 1], [$1], [$2]) 15 | ]) 16 | -------------------------------------------------------------------------------- /prov/netdir/NetDirect/README.NetworkDirect: -------------------------------------------------------------------------------- 1 | Network Direct SDK/DDK may be obtained as a nuget package (preferred) from: 2 | 3 | https://www.nuget.org/packages/NetworkDirect 4 | 5 | or downloaded from: 6 | 7 | https://www.microsoft.com/en-us/download/details.aspx?id=36043 8 | on page press Download button and select NetworkDirect_DDK.zip. 9 | 10 | Extract header files from downloaded 11 | NetworkDirect_DDK.zip:\NetDirect\include\ file into this directory, 12 | or add path to NetDirect headers into VS include paths 13 | -------------------------------------------------------------------------------- /prov/psm/Makefile.include: -------------------------------------------------------------------------------- 1 | if HAVE_PSM 2 | _psm_files = \ 3 | prov/psm/src/version.h \ 4 | prov/psm/src/psm_am.h \ 5 | prov/psm/src/psmx.h \ 6 | prov/psm/src/psmx_init.c \ 7 | prov/psm/src/psmx_fabric.c \ 8 | prov/psm/src/psmx_domain.c \ 9 | prov/psm/src/psmx_cq.c \ 10 | prov/psm/src/psmx_cntr.c \ 11 | prov/psm/src/psmx_av.c \ 12 | prov/psm/src/psmx_ep.c \ 13 | prov/psm/src/psmx_cm.c \ 14 | prov/psm/src/psmx_tagged.c \ 15 | prov/psm/src/psmx_msg.c \ 16 | prov/psm/src/psmx_msg2.c \ 17 | prov/psm/src/psmx_rma.c \ 18 | prov/psm/src/psmx_atomic.c \ 19 | prov/psm/src/psmx_am.c \ 20 | prov/psm/src/psmx_mr.c \ 21 | prov/psm/src/psmx_wait.c \ 22 | prov/psm/src/psmx_util.c 23 | 24 | if HAVE_PSM_DL 25 | pkglib_LTLIBRARIES += libpsmx-fi.la 26 | libpsmx_fi_la_SOURCES = $(_psm_files) $(common_srcs) 27 | libpsmx_fi_la_CPPFLAGS = $(AM_CPPFLAGS) $(psm_CPPFLAGS) 28 | libpsmx_fi_la_LDFLAGS = \ 29 | -module -avoid-version -shared -export-dynamic $(psm_LDFLAGS) 30 | libpsmx_fi_la_LIBADD = $(linkback) $(psm_LIBS) 31 | libpsmx_fi_la_DEPENDENCIES = $(linkback) 32 | else !HAVE_PSM_DL 33 | noinst_LTLIBRARIES += libpsmx.la 34 | libpsmx_la_SOURCES = $(_psm_files) 35 | libpsmx_la_CPPFLAGS = $(src_libfabric_la_CPPFLAGS) $(psm_CPPFLAGS) 36 | libpsmx_la_LDFLAGS = $(psm_LDFLAGS) 37 | libpsmx_la_LIBADD = $(psm_LIBS) 38 | src_libfabric_la_LIBADD += libpsmx.la 39 | src_libfabric_la_DEPENDENCIES += libpsmx.la 40 | endif !HAVE_PSM_DL 41 | 42 | prov_install_man_pages += man/man7/fi_psm.7 43 | 44 | endif HAVE_PSM 45 | 46 | prov_dist_man_pages += man/man7/fi_psm.7 47 | -------------------------------------------------------------------------------- /prov/psm/configure.m4: -------------------------------------------------------------------------------- 1 | dnl Configury specific to the libfabric PSM provider 2 | 3 | dnl Called to configure this provider 4 | dnl 5 | dnl Arguments: 6 | dnl 7 | dnl $1: action if configured successfully 8 | dnl $2: action if not configured successfully 9 | dnl 10 | AC_DEFUN([FI_PSM_CONFIGURE],[ 11 | # Determine if we can support the psm provider 12 | psm_happy=0 13 | 14 | # Save CPPFLAGS and LDFLAGS because if PSM is found, we need 15 | # to do additional tests which require resetting them (and 16 | # then we want to set them back to their original values when 17 | # done). 18 | psm_CPPFLAGS_SAVE=$CPPFLAGS 19 | psm_LDFLAGS_SAVE=$LDFLAGS 20 | 21 | AS_IF([test x"$enable_psm" != x"no"], 22 | [FI_CHECK_PACKAGE([psm], 23 | [psm.h], 24 | [psm_infinipath], 25 | [psm_init], 26 | [], 27 | [$psm_PREFIX], 28 | [$psm_LIBDIR], 29 | [psm_happy=1], 30 | [psm_happy=0]) 31 | AS_IF([test $psm_happy -eq 1], 32 | [LDFLAGS="$LDFLAGS $psm_LDFLAGS" 33 | CPPFLAGS="$CPPFLAGS $psm_CPPFLAGS"]) 34 | AS_IF([test $psm_happy -eq 1], 35 | [AC_CHECK_LIB([psm_infinipath], 36 | [psm_am_get_source], 37 | [AC_MSG_RESULT([PSM version is not 1.x]); psm_happy=0], 38 | [AC_MSG_RESULT([PSM version is 1.x])]) 39 | ]) 40 | AS_IF([test $psm_happy -eq 1], 41 | [AC_CHECK_TYPE([psm_epconn_t], 42 | [], 43 | [psm_happy=0], 44 | [[#include ]])]) 45 | ]) 46 | 47 | AS_IF([test $psm_happy -eq 1], [$1], [$2]) 48 | 49 | # Reset CPPFLAGS and LDFLAGS back to their original values and 50 | # tidy up 51 | CPPFLAGS=$psm_CPPFLAGS_SAVE 52 | unset psm_CPPFLAGS_SAVE 53 | LDFLAGS=$psm_LDFLAGS_SAVE 54 | unset psm_LDFLAGS_SAVE 55 | ]) 56 | -------------------------------------------------------------------------------- /prov/psm/libfabric-psm.spec.in: -------------------------------------------------------------------------------- 1 | %{!?configopts: %global configopts LDFLAGS=-Wl,--build-id} 2 | %{!?provider: %define provider psm} 3 | %{!?provider_formal: %define provider_formal PSM} 4 | 5 | Name: libfabric-%{provider} 6 | Version: @VERSION@ 7 | Release: 1%{?dist} 8 | Summary: Dynamic %{provider_formal} provider for user-space Open Fabric Interfaces 9 | Group: System Environment/Libraries 10 | License: GPLv2 or BSD 11 | Url: http://www.github.com/ofiwg/libfabric 12 | Source: http://www.github.org/ofiwg/%{name}/releases/download/v{%version}/libfabric-%{version}.tar.bz2 13 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 14 | Requires: libfabric 15 | BuildRequires: libfabric 16 | 17 | %description 18 | libfabric provides a user-space API to access high-performance fabric 19 | services, such as RDMA. 20 | 21 | This RPM provides the %{provider_formal} provider as a "plugin" to an existing 22 | libfabric installation. This plugin will override older %{provider_formal} 23 | provider functionality in the existing libfabric installation. 24 | 25 | %prep 26 | %setup -q -n libfabric-%{version} 27 | 28 | %build 29 | %configure %{configopts} --enable-%{provider}=dl 30 | make %{?_smp_mflags} 31 | 32 | %install 33 | rm -rf %{buildroot} 34 | %makeinstall installdirs 35 | 36 | %clean 37 | rm -rf %{buildroot} 38 | 39 | %files 40 | %defattr(-,root,root,-) 41 | %{_libdir}/libfabric/*.so 42 | 43 | %exclude %{_libdir}/libfabric.* 44 | %exclude %{_libdir}/libfabric/*.la 45 | %exclude %{_libdir}/pkgconfig 46 | %exclude %{_bindir} 47 | %exclude %{_mandir} 48 | %exclude %{_includedir} 49 | 50 | %changelog 51 | * Wed May 24 2017 Open Fabrics Interfaces Working Group 52 | - First release of specfile for packaging a single dl provider. 53 | -------------------------------------------------------------------------------- /prov/psm/src/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013-2017 Intel Corporation. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | #ifndef _FI_PSM_VERSION_H_ 34 | #define _FI_PSM_VERSION_H_ 35 | 36 | #include 37 | #include 38 | #include "psm_am.h" 39 | #if (PSM_VERNO_MAJOR >= 2) 40 | #error "building PSM provider against PSM2 is not supported" 41 | #endif 42 | 43 | #define PSMX_PROV_NAME "psm" 44 | #define PSMX_DOMAIN_NAME "psm" 45 | #define PSMX_FABRIC_NAME "psm" 46 | 47 | #define PSMX_DEFAULT_UUID "0FFF0FFF-0000-0000-0000-0FFF0FFF0FFF" 48 | #define PROVIDER_INI PSM_INI 49 | 50 | #endif 51 | 52 | -------------------------------------------------------------------------------- /prov/psm2/build-psm2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ######################################################################## 3 | # This is a sample script for building the psm2 provider with three 4 | # different options: 5 | # 6 | # lib: Link against external libpsm2.so; 7 | # src: With PSM2 library source compiled in; 8 | # lto: With PSM2 library source compiled in and with link-time 9 | # optimization enabled. 10 | # 11 | # Please run the script from the top level directory of the source repo. 12 | # 13 | # The "psm", "usnic", and "verbs" providers are disabled to reduce the 14 | # building time. They can be enabled as needed. 15 | # 16 | # Please check that the following variables are either set to appropriate 17 | # values or can use the default values. 18 | # 19 | # PREFIX Destination for installation 20 | # STAGE Name for sub-directory used for building 21 | # PSM2_HOME Location for PSM2 header and libraries (for "lib" build) 22 | # PSM2_SRC Location for PSM2 source code (for "src" and "lto" builds) 23 | ######################################################################## 24 | 25 | if [ $# -eq 0 ]; then 26 | echo Usage: $0 '[lib|src|lto]' 27 | exit 1 28 | fi 29 | 30 | case $1 in 31 | lib) options="" 32 | cflags="" 33 | ldflags="" 34 | ;; 35 | src) options="--with-psm2-src=${PSM2_SRC:-$HOME/scm/opa-psm2}" 36 | cflags='CFLAGS="-O3"' 37 | ldflags="" 38 | ;; 39 | lto) options="--with-psm2-src=${PSM2_SRC:-$HOME/scm/opa-psm2}" 40 | cflags='CFLAGS="-O3 -flto -ffat-lto-objects -msse4.2"' 41 | ldflags='LDFLAGS="-fuse-linker-plugin -flto-partition=none"' 42 | ;; 43 | *) echo Invalid option: "$1" 44 | exit 1 45 | ;; 46 | esac 47 | 48 | if [ ! -f ./autogen.sh ]; then 49 | echo Please run the script from the top level directory. 50 | exit 1 51 | fi 52 | 53 | ./autogen.sh && \ 54 | cd ${STAGE:-stage} && \ 55 | eval ../configure \ 56 | $cflags $ldflags $options \ 57 | --prefix=${PREFIX:-$HOME/install/ofi} \ 58 | --enable-psm2=${PSM2_HOME:-yes} \ 59 | --disable-psm \ 60 | --disable-usnic \ 61 | --disable-verbs && \ 62 | make && make install 63 | 64 | -------------------------------------------------------------------------------- /prov/psm2/include/rdma/fi_direct.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016-2018 Intel Corporation. All rights reserved. 3 | * Copyright (c) 2015-2016 Los Alamos National Security, LLC. 4 | * All rights reserved. 5 | * 6 | * This software is available to you under a choice of one of two 7 | * licenses. You may choose to be licensed under the terms of the GNU 8 | * General Public License (GPL) Version 2, available from the file 9 | * COPYING in the main directory of this source tree, or the 10 | * BSD license below: 11 | * 12 | * Redistribution and use in source and binary forms, with or 13 | * without modification, are permitted provided that the following 14 | * conditions are met: 15 | * 16 | * - Redistributions of source code must retain the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer. 19 | * 20 | * - Redistributions in binary form must reproduce the above 21 | * copyright notice, this list of conditions and the following 22 | * disclaimer in the documentation and/or other materials 23 | * provided with the distribution. 24 | * 25 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 26 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 27 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 28 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 29 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 30 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 31 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 | * SOFTWARE. 33 | */ 34 | 35 | #ifndef FI_DIRECT_H 36 | #define FI_DIRECT_H 37 | 38 | /* 39 | * use default definitions 40 | */ 41 | 42 | #endif /* FI_DIRECT_H */ 43 | -------------------------------------------------------------------------------- /prov/psm2/include/rdma/fi_direct_atomic_def.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016-2018 Intel Corporation, Inc. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | #ifndef FI_DIRECT_ATOMIC_DEF_H 34 | #define FI_DIRECT_ATOMIC_DEF_H 35 | 36 | /* 37 | * use the default definitions 38 | */ 39 | 40 | #endif /* FI_DIRECT_ATOMIC_DEF_H */ 41 | -------------------------------------------------------------------------------- /prov/psm2/include/rdma/fi_direct_tagged.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016-2018 Intel Corporation, Inc. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | #ifndef FI_DIRECT_TAGGED_H 34 | #define FI_DIRECT_TAGGED_H 35 | 36 | /* 37 | * use defaults bacause function pointers are needed for specialization 38 | */ 39 | 40 | #endif /* FI_DIRECT_TAGGED_H */ 41 | -------------------------------------------------------------------------------- /prov/psm2/include/rdma/fi_direct_trigger.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016-2018 Intel Corporation, Inc. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | #ifndef FI_DIRECT_TRIGGER_H 34 | #define FI_DIRECT_TRIGGER_H 35 | 36 | /* 37 | * use default definitions 38 | */ 39 | 40 | #endif /* FI_DIRECT_TRIGGER_H */ 41 | -------------------------------------------------------------------------------- /prov/psm2/libfabric-psm2.spec.in: -------------------------------------------------------------------------------- 1 | %{!?configopts: %global configopts LDFLAGS=-Wl,--build-id} 2 | %{!?provider: %define provider psm2} 3 | %{!?provider_formal: %define provider_formal PSM2} 4 | 5 | Name: libfabric-%{provider} 6 | Version: @VERSION@ 7 | Release: 1%{?dist} 8 | Summary: Dynamic %{provider_formal} provider for user-space Open Fabric Interfaces 9 | Group: System Environment/Libraries 10 | License: GPLv2 or BSD 11 | Url: http://www.github.com/ofiwg/libfabric 12 | Source: http://www.github.org/ofiwg/%{name}/releases/download/v{%version}/libfabric-%{version}.tar.bz2 13 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 14 | Requires: libfabric 15 | BuildRequires: libfabric 16 | 17 | %description 18 | libfabric provides a user-space API to access high-performance fabric 19 | services, such as RDMA. 20 | 21 | This RPM provides the %{provider_formal} provider as a "plugin" to an existing 22 | libfabric installation. This plugin will override older %{provider_formal} 23 | provider functionality in the existing libfabric installation. 24 | 25 | %prep 26 | %setup -q -n libfabric-%{version} 27 | 28 | %build 29 | %configure %{configopts} --enable-%{provider}=dl 30 | make %{?_smp_mflags} 31 | 32 | %install 33 | rm -rf %{buildroot} 34 | %makeinstall installdirs 35 | 36 | %clean 37 | rm -rf %{buildroot} 38 | 39 | %files 40 | %defattr(-,root,root,-) 41 | %{_libdir}/libfabric/*.so 42 | 43 | %exclude %{_libdir}/libfabric.* 44 | %exclude %{_libdir}/libfabric/*.la 45 | %exclude %{_libdir}/pkgconfig 46 | %exclude %{_bindir} 47 | %exclude %{_mandir} 48 | %exclude %{_includedir} 49 | 50 | %changelog 51 | * Wed May 24 2017 Open Fabrics Interfaces Working Group 52 | - First release of specfile for packaging a single dl provider. 53 | -------------------------------------------------------------------------------- /prov/psm2/provider_FABRIC_1.0.map: -------------------------------------------------------------------------------- 1 | /* 2 | * Included from "libfabric.map" at the top level directory. 3 | * Used for fabric direct build only. 4 | */ 5 | psmx2_atomic_write; 6 | psmx2_atomic_writev; 7 | psmx2_atomic_writemsg; 8 | psmx2_atomic_inject; 9 | psmx2_atomic_readwrite; 10 | psmx2_atomic_readwritev; 11 | psmx2_atomic_readwritemsg; 12 | psmx2_atomic_compwrite; 13 | psmx2_atomic_compwritev; 14 | psmx2_atomic_compwritemsg; 15 | psmx2_atomic_writevalid; 16 | psmx2_atomic_readwritevalid; 17 | psmx2_atomic_compwritevalid; 18 | psmx2_query_atomic; 19 | psmx2_cm_getname; 20 | psmx2_domain_open; 21 | psmx2_cq_open; 22 | psmx2_cntr_open; 23 | psmx2_wait_open; 24 | psmx2_mr_reg; 25 | psmx2_mr_regv; 26 | psmx2_mr_regattr; 27 | psmx2_mr_bind; 28 | psmx2_av_open; 29 | psmx2_av_bind; 30 | psmx2_av_insert; 31 | psmx2_av_remove; 32 | psmx2_av_lookup; 33 | psmx2_av_straddr; 34 | psmx2_ep_open; 35 | psmx2_sep_open; 36 | psmx2_ep_bind; 37 | psmx2_sep_bind; 38 | psmx2_ep_control; 39 | psmx2_ep_cancel; 40 | psmx2_ep_getopt; 41 | psmx2_ep_setopt; 42 | psmx2_tx_context; 43 | psmx2_rx_context; 44 | psmx2_rx_size_left; 45 | psmx2_tx_size_left; 46 | psmx2_stx_ctx; 47 | psmx2_recv; 48 | psmx2_recvv; 49 | psmx2_recvmsg; 50 | psmx2_send; 51 | psmx2_sendv; 52 | psmx2_sendmsg; 53 | psmx2_inject; 54 | psmx2_senddata; 55 | psmx2_injectdata; 56 | psmx2_wait_trywait; 57 | psmx2_wait_wait; 58 | psmx2_cq_read; 59 | psmx2_cq_readfrom; 60 | psmx2_cq_readerr; 61 | psmx2_cq_sread; 62 | psmx2_cq_sreadfrom; 63 | psmx2_cq_signal; 64 | psmx2_cq_strerror; 65 | psmx2_cntr_read; 66 | psmx2_cntr_readerr; 67 | psmx2_cntr_add; 68 | psmx2_cntr_adderr; 69 | psmx2_cntr_set; 70 | psmx2_cntr_seterr; 71 | psmx2_cntr_wait; 72 | psmx2_read; 73 | psmx2_readv; 74 | psmx2_readmsg; 75 | psmx2_write; 76 | psmx2_writev; 77 | psmx2_writemsg; 78 | psmx2_inject_write; 79 | psmx2_writedata; 80 | psmx2_inject_writedata; 81 | 82 | -------------------------------------------------------------------------------- /prov/psm2/src/psm2_revision.c: -------------------------------------------------------------------------------- 1 | #ifndef PSMX2_IFS_VERSION 2 | #define PSMX2_IFS_VERSION "" 3 | #endif 4 | 5 | #ifndef PSMX2_BUILD_TIMESTAMP 6 | #define PSMX2_BUILD_TIMESTAMP "" 7 | #endif 8 | 9 | #ifndef PSMX2_SRC_CHECKSUM 10 | #define PSMX2_SRC_CHECKSUM "" 11 | #endif 12 | 13 | #ifndef PSMX2_GIT_CHECKSUM 14 | #define PSMX2_GIT_CHECKSUM "" 15 | #endif 16 | 17 | char psmi_hfi_IFS_version[] = PSMX2_IFS_VERSION; 18 | char psmi_hfi_build_timestamp[] = PSMX2_BUILD_TIMESTAMP; 19 | char psmi_hfi_sources_checksum[] = PSMX2_SRC_CHECKSUM; 20 | char psmi_hfi_git_checksum[] = PSMX2_GIT_CHECKSUM; 21 | 22 | -------------------------------------------------------------------------------- /prov/rstream/Makefile.include: -------------------------------------------------------------------------------- 1 | if HAVE_RSTREAM 2 | _rstream_files = \ 3 | prov/rstream/src/rstream_domain.c \ 4 | prov/rstream/src/rstream_fabric.c \ 5 | prov/rstream/src/rstream_attr.c \ 6 | prov/rstream/src/rstream_init.c \ 7 | prov/rstream/src/rstream_cm.c \ 8 | prov/rstream/src/rstream_msg.c \ 9 | prov/rstream/src/rstream_eq.c \ 10 | prov/rstream/src/rstream_ep.c \ 11 | prov/rstream/src/rstream.h 12 | 13 | if HAVE_RSTREAM_DL 14 | pkglib_LTLIBRARIES += librstream-fi.la 15 | librstream_fi_la_SOURCES = $(_rstream_files) $(common_srcs) 16 | librstream_fi_la_LIBADD = $(linkback) $(rstream_LIBS) 17 | librstream_fi_la_LDFLAGS = -module -avoid-version -shared -export-dynamic 18 | librstream_fi_la_DEPENDENCIES = $(linkback) 19 | else !HAVE_RSTREAM_DL 20 | src_libfabric_la_SOURCES += $(_rstream_files) 21 | src_libfabric_la_LIBADD += $(rstream_LIBS) 22 | endif !HAVE_RSTREAM_DL 23 | 24 | prov_install_man_pages += man/man7/fi_rstream.7 25 | 26 | endif HAVE_RSTREAM 27 | 28 | prov_dist_man_pages += man/man7/fi_rstream.7 29 | -------------------------------------------------------------------------------- /prov/rstream/configure.m4: -------------------------------------------------------------------------------- 1 | dnl Configury specific to the libfabric rstream provider 2 | 3 | dnl Called to configure this provider 4 | dnl 5 | dnl Arguments: 6 | dnl 7 | dnl $1: action if configured successfully 8 | dnl $2: action if not configured successfully 9 | dnl 10 | AC_DEFUN([FI_RSTREAM_CONFIGURE],[ 11 | # Determine if we can support the rxd provider 12 | rstream_h_happy=0 13 | AS_IF([test x"$enable_rstream" != x"no"], [rstream_h_happy=1]) 14 | AS_IF([test $rstream_h_happy -eq 1], [$1], [$2]) 15 | ]) 16 | -------------------------------------------------------------------------------- /prov/rxd/Makefile.include: -------------------------------------------------------------------------------- 1 | if HAVE_RXD 2 | _rxd_files = \ 3 | prov/rxd/src/rxd_attr.c \ 4 | prov/rxd/src/rxd_init.c \ 5 | prov/rxd/src/rxd_fabric.c \ 6 | prov/rxd/src/rxd_domain.c \ 7 | prov/rxd/src/rxd_av.c \ 8 | prov/rxd/src/rxd_cq.c \ 9 | prov/rxd/src/rxd_cntr.c \ 10 | prov/rxd/src/rxd_ep.c \ 11 | prov/rxd/src/rxd_msg.c \ 12 | prov/rxd/src/rxd_tagged.c \ 13 | prov/rxd/src/rxd_rma.c \ 14 | prov/rxd/src/rxd_atomic.c \ 15 | prov/rxd/src/rxd.h \ 16 | prov/rxd/src/rxd_proto.h 17 | 18 | if HAVE_RXD_DL 19 | pkglib_LTLIBRARIES += librxd-fi.la 20 | librxd_fi_la_SOURCES = $(_rxd_files) $(common_srcs) 21 | librxd_fi_la_LIBADD = $(linkback) $(rxd_shm_LIBS) 22 | librxd_fi_la_LDFLAGS = -module -avoid-version -shared -export-dynamic 23 | librxd_fi_la_DEPENDENCIES = $(linkback) 24 | else !HAVE_RXD_DL 25 | src_libfabric_la_SOURCES += $(_rxd_files) 26 | src_libfabric_la_LIBADD += $(rxd_shm_LIBS) 27 | endif !HAVE_RXD_DL 28 | 29 | #prov_install_man_pages += man/man7/fi_rxd.7 30 | 31 | endif HAVE_RXD 32 | 33 | #prov_dist_man_pages += man/man7/fi_rxd.7 34 | -------------------------------------------------------------------------------- /prov/rxd/configure.m4: -------------------------------------------------------------------------------- 1 | dnl Configury specific to the libfabric rxd provider 2 | 3 | dnl Called to configure this provider 4 | dnl 5 | dnl Arguments: 6 | dnl 7 | dnl $1: action if configured successfully 8 | dnl $2: action if not configured successfully 9 | dnl 10 | AC_DEFUN([FI_RXD_CONFIGURE],[ 11 | # Determine if we can support the rxd provider 12 | rxd_h_happy=0 13 | AS_IF([test x"$enable_rxd" != x"no"], [rxd_h_happy=1]) 14 | AS_IF([test $rxd_h_happy -eq 1], [$1], [$2]) 15 | ]) 16 | -------------------------------------------------------------------------------- /prov/rxm/Makefile.include: -------------------------------------------------------------------------------- 1 | if HAVE_RXM 2 | _rxm_files = \ 3 | prov/rxm/src/rxm_attr.c \ 4 | prov/rxm/src/rxm_init.c \ 5 | prov/rxm/src/rxm_fabric.c \ 6 | prov/rxm/src/rxm_domain.c \ 7 | prov/rxm/src/rxm_conn.c \ 8 | prov/rxm/src/rxm_ep.c \ 9 | prov/rxm/src/rxm_cq.c \ 10 | prov/rxm/src/rxm_av.c \ 11 | prov/rxm/src/rxm_rma.c \ 12 | prov/rxm/src/rxm_atomic.c \ 13 | prov/rxm/src/rxm.h 14 | 15 | if HAVE_RXM_DL 16 | pkglib_LTLIBRARIES += librxm-fi.la 17 | librxm_fi_la_SOURCES = $(_rxm_files) $(common_srcs) 18 | librxm_fi_la_LIBADD = $(linkback) $(rxm_shm_LIBS) 19 | librxm_fi_la_LDFLAGS = -module -avoid-version -shared -export-dynamic 20 | librxm_fi_la_DEPENDENCIES = $(linkback) 21 | else !HAVE_RXM_DL 22 | src_libfabric_la_SOURCES += $(_rxm_files) 23 | src_libfabric_la_LIBADD += $(rxm_shm_LIBS) 24 | endif !HAVE_RXM_DL 25 | 26 | prov_install_man_pages += man/man7/fi_rxm.7 27 | 28 | endif HAVE_RXM 29 | 30 | prov_dist_man_pages += man/man7/fi_rxm.7 31 | -------------------------------------------------------------------------------- /prov/rxm/configure.m4: -------------------------------------------------------------------------------- 1 | dnl Configury specific to the libfabric rxm provider 2 | 3 | dnl Called to configure this provider 4 | dnl 5 | dnl Arguments: 6 | dnl 7 | dnl $1: action if configured successfully 8 | dnl $2: action if not configured successfully 9 | dnl 10 | AC_DEFUN([FI_RXM_CONFIGURE],[ 11 | # Determine if we can support the rxm provider 12 | rxm_h_happy=0 13 | AS_IF([test x"$enable_rxm" != x"no"], [rxm_h_happy=1]) 14 | AS_IF([test $rxm_h_happy -eq 1], [$1], [$2]) 15 | ]) 16 | 17 | -------------------------------------------------------------------------------- /prov/shm/Makefile.include: -------------------------------------------------------------------------------- 1 | if HAVE_SHM 2 | _shm_files = \ 3 | prov/shm/src/smr_attr.c \ 4 | prov/shm/src/smr_cq.c \ 5 | prov/shm/src/smr_domain.c \ 6 | prov/shm/src/smr_progress.c \ 7 | prov/shm/src/smr_comp.c \ 8 | prov/shm/src/smr_cntr.c \ 9 | prov/shm/src/smr_msg.c \ 10 | prov/shm/src/smr_rma.c \ 11 | prov/shm/src/smr_atomic.c \ 12 | prov/shm/src/smr_ep.c \ 13 | prov/shm/src/smr_fabric.c \ 14 | prov/shm/src/smr_init.c \ 15 | prov/shm/src/smr_av.c \ 16 | prov/shm/src/smr_signal.h \ 17 | prov/shm/src/smr.h 18 | 19 | if HAVE_SHM_DL 20 | pkglib_LTLIBRARIES += libshm-fi.la 21 | libshm_fi_la_SOURCES = $(_shm_files) $(common_srcs) 22 | libshm_fi_la_LIBADD = $(linkback) $(shm_lib_LIBS) 23 | libshm_fi_la_LDFLAGS = -module -avoid-version -shared -export-dynamic 24 | libshm_fi_la_DEPENDENCIES = $(linkback) 25 | else !HAVE_SHM_DL 26 | src_libfabric_la_SOURCES += $(_shm_files) 27 | src_libfabric_la_LIBADD += $(shm_lib_LIBS) 28 | endif !HAVE_SHM_DL 29 | 30 | prov_install_man_pages += man/man7/fi_shm.7 31 | 32 | endif HAVE_SHM 33 | 34 | prov_dist_man_pages += man/man7/fi_shm.7 35 | -------------------------------------------------------------------------------- /prov/shm/configure.m4: -------------------------------------------------------------------------------- 1 | dnl Configury specific to the libfabric shm provider 2 | 3 | dnl Called to configure this provider 4 | dnl 5 | dnl Arguments: 6 | dnl 7 | dnl $1: action if configured successfully 8 | dnl $2: action if not configured successfully 9 | dnl 10 | AC_DEFUN([FI_SHM_CONFIGURE],[ 11 | # Determine if we can support the shm provider 12 | shm_happy=0 13 | cma_happy=0 14 | AS_IF([test x"$enable_shm" != x"no"], 15 | [ 16 | # check if CMA support are present 17 | AS_IF([test x$linux = x1 && test x$host_cpu = xx86_64], 18 | [cma_happy=1], 19 | [AC_CHECK_FUNC([process_vm_readv], 20 | [cma_happy=1], 21 | [cma_happy=0])] 22 | ) 23 | 24 | # check if SHM support are present 25 | AC_CHECK_FUNC([shm_open], 26 | [shm_happy=1], 27 | [shm_happy=0]) 28 | 29 | # look for shm_open in librt if not already present 30 | AS_IF([test $shm_happy -eq 0], 31 | [FI_CHECK_PACKAGE([shm_lib], 32 | [sys/mman.h], 33 | [rt], 34 | [shm_open], 35 | [], 36 | [], 37 | [], 38 | [shm_happy=1], 39 | [shm_happy=0])]) 40 | ]) 41 | 42 | AS_IF([test $shm_happy -eq 1 && \ 43 | test $cma_happy -eq 1], [$1], [$2]) 44 | ]) 45 | -------------------------------------------------------------------------------- /prov/sockets/Makefile.include: -------------------------------------------------------------------------------- 1 | # Makefile.include for sockets provider 2 | 3 | if HAVE_SOCKETS 4 | 5 | AM_CPPFLAGS += -I$(top_srcdir)/prov/sockets/include -I$(top_srcdir)/prov/sockets 6 | 7 | _sockets_files = \ 8 | prov/sockets/src/sock_attr.c \ 9 | prov/sockets/src/sock_av.c \ 10 | prov/sockets/src/sock_dom.c \ 11 | prov/sockets/src/sock_mr.c \ 12 | prov/sockets/src/sock_eq.c \ 13 | prov/sockets/src/sock_cq.c \ 14 | prov/sockets/src/sock_cntr.c \ 15 | prov/sockets/src/sock_poll.c \ 16 | prov/sockets/src/sock_wait.c \ 17 | prov/sockets/src/sock_ep_rdm.c \ 18 | prov/sockets/src/sock_ep_dgram.c \ 19 | prov/sockets/src/sock_ep_msg.c \ 20 | prov/sockets/src/sock_fabric.c \ 21 | prov/sockets/src/sock_ep.c \ 22 | prov/sockets/src/sock_ctx.c \ 23 | prov/sockets/src/sock_rx_entry.c \ 24 | prov/sockets/src/sock_progress.c \ 25 | prov/sockets/src/sock_comm.c \ 26 | prov/sockets/src/sock_conn.c \ 27 | prov/sockets/src/sock_msg.c \ 28 | prov/sockets/src/sock_rma.c \ 29 | prov/sockets/src/sock_atomic.c \ 30 | prov/sockets/src/sock_trigger.c 31 | 32 | _sockets_headers = \ 33 | prov/sockets/include/sock.h \ 34 | prov/sockets/include/sock_util.h 35 | 36 | if HAVE_SOCKETS_DL 37 | pkglib_LTLIBRARIES += libsockets-fi.la 38 | libsockets_fi_la_SOURCES = $(_sockets_files) $(_sockets_headers) $(common_srcs) 39 | libsockets_fi_la_LIBADD = $(linkback) $(sockets_LIBS) 40 | libsockets_fi_la_LDFLAGS = -module -avoid-version -shared -export-dynamic 41 | libsockets_fi_la_DEPENDENCIES = $(linkback) 42 | else !HAVE_SOCKETS_DL 43 | src_libfabric_la_SOURCES += $(_sockets_files) $(_sockets_headers) 44 | src_libfabric_la_LIBADD += $(sockets_LIBS) 45 | endif !HAVE_SOCKETS_DL 46 | 47 | prov_install_man_pages += man/man7/fi_sockets.7 48 | 49 | endif HAVE_SOCKETS 50 | 51 | prov_dist_man_pages += man/man7/fi_sockets.7 52 | -------------------------------------------------------------------------------- /prov/sockets/configure.m4: -------------------------------------------------------------------------------- 1 | dnl Configury specific to the libfabric sockets provider 2 | 3 | dnl Called to configure this provider 4 | dnl 5 | dnl Arguments: 6 | dnl 7 | dnl $1: action if configured successfully 8 | dnl $2: action if not configured successfully 9 | dnl 10 | AC_DEFUN([FI_SOCKETS_CONFIGURE],[ 11 | # Determine if we can support the sockets provider 12 | sockets_h_happy=0 13 | sockets_shm_happy=0 14 | AS_IF([test x"$enable_sockets" != x"no"], 15 | [AC_CHECK_HEADER([sys/socket.h], [sockets_h_happy=1], 16 | [sockets_h_happy=0]) 17 | 18 | 19 | # check if shm_open is already present 20 | AC_CHECK_FUNC([shm_open], 21 | [sockets_shm_happy=1], 22 | [sockets_shm_happy=0]) 23 | 24 | # look for shm_open in librt if not already present 25 | AS_IF([test $sockets_shm_happy -eq 0], 26 | [FI_CHECK_PACKAGE([sockets], 27 | [sys/mman.h], 28 | [rt], 29 | [shm_open], 30 | [], 31 | [], 32 | [], 33 | [sockets_shm_happy=1], 34 | [sockets_shm_happy=0])]) 35 | ]) 36 | 37 | AC_CHECK_FUNCS([getifaddrs]) 38 | 39 | AS_IF([test $sockets_h_happy -eq 1 && \ 40 | test $sockets_shm_happy -eq 1], [$1], [$2]) 41 | ]) 42 | -------------------------------------------------------------------------------- /prov/sockets/include/rdma/fi_direct.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation. All rights reserved. 3 | * Copyright (c) 2015-2016 Los Alamos National Security, LLC. 4 | * All rights reserved. 5 | * 6 | * This software is available to you under a choice of one of two 7 | * licenses. You may choose to be licensed under the terms of the GNU 8 | * General Public License (GPL) Version 2, available from the file 9 | * COPYING in the main directory of this source tree, or the 10 | * BSD license below: 11 | * 12 | * Redistribution and use in source and binary forms, with or 13 | * without modification, are permitted provided that the following 14 | * conditions are met: 15 | * 16 | * - Redistributions of source code must retain the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer. 19 | * 20 | * - Redistributions in binary form must reproduce the above 21 | * copyright notice, this list of conditions and the following 22 | * disclaimer in the documentation and/or other materials 23 | * provided with the distribution. 24 | * 25 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 26 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 27 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 28 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 29 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 30 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 31 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 | * SOFTWARE. 33 | */ 34 | 35 | /* Do not remove this file. All the include/rdma/fi_direct*.h files are created 36 | * build the provider with FABRIC_DIRECT option. For details see man/fi_direct.7.md 37 | */ 38 | -------------------------------------------------------------------------------- /prov/sockets/include/rdma/fi_direct_atomic.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation, Inc. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | /* Do not remove this file. See fi_direct.h */ 34 | -------------------------------------------------------------------------------- /prov/sockets/include/rdma/fi_direct_atomic_def.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation, Inc. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | /* Do not remove this file. See fi_direct.h */ 34 | -------------------------------------------------------------------------------- /prov/sockets/include/rdma/fi_direct_cm.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation, Inc. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | /* Do not remove this file. See fi_direct.h */ 34 | -------------------------------------------------------------------------------- /prov/sockets/include/rdma/fi_direct_domain.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation, Inc. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | /* Do not remove this file. See fi_direct.h */ 34 | -------------------------------------------------------------------------------- /prov/sockets/include/rdma/fi_direct_endpoint.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation, Inc. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | /* Do not remove this file. See fi_direct.h */ 34 | -------------------------------------------------------------------------------- /prov/sockets/include/rdma/fi_direct_eq.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation, Inc. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | /* Do not remove this file. See fi_direct.h */ 34 | -------------------------------------------------------------------------------- /prov/sockets/include/rdma/fi_direct_rma.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation, Inc. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | /* Do not remove this file. See fi_direct.h */ 34 | -------------------------------------------------------------------------------- /prov/sockets/include/rdma/fi_direct_tagged.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation, Inc. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | /* Do not remove this file. See fi_direct.h */ 34 | -------------------------------------------------------------------------------- /prov/sockets/include/rdma/fi_direct_trigger.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation, Inc. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30 | * SOFTWARE. 31 | */ 32 | 33 | /* Do not remove this file. See fi_direct.h */ 34 | -------------------------------------------------------------------------------- /prov/sockets/libfabric-sockets.spec.in: -------------------------------------------------------------------------------- 1 | %{!?configopts: %global configopts LDFLAGS=-Wl,--build-id} 2 | %{!?provider: %define provider sockets} 3 | %{!?provider_formal: %define provider_formal sockets} 4 | 5 | Name: libfabric-%{provider} 6 | Version: @VERSION@ 7 | Release: 1%{?dist} 8 | Summary: Dynamic %{provider_formal} provider for user-space Open Fabric Interfaces 9 | Group: System Environment/Libraries 10 | License: GPLv2 or BSD 11 | Url: http://www.github.com/ofiwg/libfabric 12 | Source: http://www.github.org/ofiwg/%{name}/releases/download/v{%version}/libfabric-%{version}.tar.bz2 13 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 14 | Requires: libfabric 15 | BuildRequires: libfabric 16 | 17 | %description 18 | libfabric provides a user-space API to access high-performance fabric 19 | services, such as RDMA. 20 | 21 | This RPM provides the %{provider_formal} provider as a "plugin" to an existing 22 | libfabric installation. This plugin will override older %{provider_formal} 23 | provider functionality in the existing libfabric installation. 24 | 25 | %prep 26 | %setup -q -n libfabric-%{version} 27 | 28 | %build 29 | %configure %{configopts} --enable-%{provider}=dl 30 | make %{?_smp_mflags} 31 | 32 | %install 33 | rm -rf %{buildroot} 34 | %makeinstall installdirs 35 | 36 | %clean 37 | rm -rf %{buildroot} 38 | 39 | %files 40 | %defattr(-,root,root,-) 41 | %{_libdir}/libfabric/*.so 42 | 43 | %exclude %{_libdir}/libfabric.* 44 | %exclude %{_libdir}/libfabric/*.la 45 | %exclude %{_libdir}/pkgconfig 46 | %exclude %{_bindir} 47 | %exclude %{_mandir} 48 | %exclude %{_includedir} 49 | 50 | %changelog 51 | * Wed May 24 2017 Open Fabrics Interfaces Working Group 52 | - First release of specfile for packaging a single dl provider. 53 | -------------------------------------------------------------------------------- /prov/sockets/provider_FABRIC_1.0.map: -------------------------------------------------------------------------------- 1 | /* Do not remove this file. This is needed for FABRIC_DIRECT option. See man/fi_direct.7.md for details. */ 2 | -------------------------------------------------------------------------------- /prov/tcp/Makefile.include: -------------------------------------------------------------------------------- 1 | if HAVE_TCP 2 | _tcp_files = \ 3 | prov/tcp/src/tcpx_fabric.c \ 4 | prov/tcp/src/tcpx_attr.c \ 5 | prov/tcp/src/tcpx_conn_mgr.c \ 6 | prov/tcp/src/tcpx_domain.c \ 7 | prov/tcp/src/tcpx_rma.c \ 8 | prov/tcp/src/tcpx_msg.c \ 9 | prov/tcp/src/tcpx_ep.c \ 10 | prov/tcp/src/tcpx_shared_ctx.c \ 11 | prov/tcp/src/tcpx_cq.c \ 12 | prov/tcp/src/tcpx_eq.c \ 13 | prov/tcp/src/tcpx_init.c \ 14 | prov/tcp/src/tcpx_progress.c \ 15 | prov/tcp/src/tcpx_comm.c \ 16 | prov/tcp/src/tcpx.h 17 | 18 | if HAVE_TCP_DL 19 | pkglib_LTLIBRARIES += libtcp-fi.la 20 | libtcp_fi_la_SOURCES = $(_tcp_files) $(common_srcs) 21 | libtcp_fi_la_LIBADD = $(linkback) $(tcp_shm_LIBS) 22 | libtcp_fi_la_LDFLAGS = -module -avoid-version -shared -export-dynamic 23 | libtcp_fi_la_DEPENDENCIES = $(linkback) 24 | else !HAVE_TCP_DL 25 | src_libfabric_la_SOURCES += $(_tcp_files) 26 | src_libfabric_la_LIBADD += $(tcp_shm_LIBS) 27 | endif !HAVE_TCP_DL 28 | 29 | prov_install_man_pages += man/man7/fi_tcp.7 30 | 31 | endif HAVE_TCP 32 | 33 | prov_dist_man_pages += man/man7/fi_tcp.7 34 | -------------------------------------------------------------------------------- /prov/tcp/configure.m4: -------------------------------------------------------------------------------- 1 | dnl Configury specific to the libfabric tcp provider 2 | 3 | dnl Called to configure this provider 4 | dnl 5 | dnl Arguments: 6 | dnl 7 | dnl $1: action if configured successfully 8 | dnl $2: action if not configured successfully 9 | dnl 10 | AC_DEFUN([FI_TCP_CONFIGURE],[ 11 | # Determine if we can support the tcp provider 12 | tcp_h_happy=0 13 | AS_IF([test x"$enable_tcp" != x"no"], [tcp_h_happy=1]) 14 | AS_IF([test $tcp_h_happy -eq 1], [$1], [$2]) 15 | ]) 16 | -------------------------------------------------------------------------------- /prov/udp/Makefile.include: -------------------------------------------------------------------------------- 1 | if HAVE_UDP 2 | _udp_files = \ 3 | prov/udp/src/udpx_attr.c \ 4 | prov/udp/src/udpx_cq.c \ 5 | prov/udp/src/udpx_domain.c \ 6 | prov/udp/src/udpx_ep.c \ 7 | prov/udp/src/udpx_fabric.c \ 8 | prov/udp/src/udpx_init.c \ 9 | prov/udp/src/udpx.h 10 | 11 | if HAVE_UDP_DL 12 | pkglib_LTLIBRARIES += libudp-fi.la 13 | libudp_fi_la_SOURCES = $(_udp_files) $(common_srcs) 14 | libudp_fi_la_LIBADD = $(linkback) $(udp_shm_LIBS) 15 | libudp_fi_la_LDFLAGS = -module -avoid-version -shared -export-dynamic 16 | libudp_fi_la_DEPENDENCIES = $(linkback) 17 | else !HAVE_UDP_DL 18 | src_libfabric_la_SOURCES += $(_udp_files) 19 | src_libfabric_la_LIBADD += $(udp_shm_LIBS) 20 | endif !HAVE_UDP_DL 21 | 22 | prov_install_man_pages += man/man7/fi_udp.7 23 | 24 | endif HAVE_UDP 25 | 26 | prov_dist_man_pages += man/man7/fi_udp.7 27 | -------------------------------------------------------------------------------- /prov/udp/configure.m4: -------------------------------------------------------------------------------- 1 | dnl Configury specific to the libfabric udp provider 2 | 3 | dnl Called to configure this provider 4 | dnl 5 | dnl Arguments: 6 | dnl 7 | dnl $1: action if configured successfully 8 | dnl $2: action if not configured successfully 9 | dnl 10 | AC_DEFUN([FI_UDP_CONFIGURE],[ 11 | # Determine if we can support the udp provider 12 | udp_h_happy=0 13 | udp_shm_happy=0 14 | AS_IF([test x"$enable_udp" != x"no"], 15 | [AC_CHECK_HEADER([sys/socket.h], [udp_h_happy=1], 16 | [udp_h_happy=0]) 17 | 18 | 19 | # check if shm_open is already present 20 | AC_CHECK_FUNC([shm_open], 21 | [udp_shm_happy=1], 22 | [udp_shm_happy=0]) 23 | 24 | # look for shm_open in librt if not already present 25 | AS_IF([test $udp_shm_happy -eq 0], 26 | [FI_CHECK_PACKAGE([udp_shm], 27 | [sys/mman.h], 28 | [rt], 29 | [shm_open], 30 | [], 31 | [], 32 | [], 33 | [udp_shm_happy=1], 34 | [udp_shm_happy=0])]) 35 | ]) 36 | 37 | AS_IF([test $udp_h_happy -eq 1 && \ 38 | test $udp_shm_happy -eq 1], [$1], [$2]) 39 | ]) 40 | -------------------------------------------------------------------------------- /prov/udp/libfabric-udp.spec.in: -------------------------------------------------------------------------------- 1 | %{!?configopts: %global configopts LDFLAGS=-Wl,--build-id} 2 | %{!?provider: %define provider usnic} 3 | %{!?provider_formal: %define provider_formal usNIC} 4 | 5 | Name: libfabric-%{provider} 6 | Version: @VERSION@ 7 | Release: 1%{?dist} 8 | Summary: Dynamic %{provider_formal} provider for user-space Open Fabric Interfaces 9 | Group: System Environment/Libraries 10 | License: GPLv2 or BSD 11 | Url: http://www.github.com/ofiwg/libfabric 12 | Source: http://www.github.org/ofiwg/%{name}/releases/download/v{%version}/libfabric-%{version}.tar.bz2 13 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 14 | Requires: libfabric 15 | BuildRequires: libfabric 16 | 17 | %description 18 | libfabric provides a user-space API to access high-performance fabric 19 | services, such as RDMA. 20 | 21 | This RPM provides the %{provider_formal} provider as a "plugin" to an existing 22 | libfabric installation. This plugin will override older %{provider_formal} 23 | provider functionality in the existing libfabric installation. 24 | 25 | %prep 26 | %setup -q -n libfabric-%{version} 27 | 28 | %build 29 | %configure %{configopts} --enable-%{provider}=dl 30 | make %{?_smp_mflags} 31 | 32 | %install 33 | rm -rf %{buildroot} 34 | %makeinstall installdirs 35 | 36 | %clean 37 | rm -rf %{buildroot} 38 | 39 | %files 40 | %defattr(-,root,root,-) 41 | %{_libdir}/libfabric/*.so 42 | 43 | %exclude %{_libdir}/libfabric.* 44 | %exclude %{_libdir}/libfabric/*.la 45 | %exclude %{_libdir}/pkgconfig 46 | %exclude %{_bindir} 47 | %exclude %{_mandir} 48 | %exclude %{_includedir} 49 | 50 | %changelog 51 | * Wed May 24 2017 Open Fabrics Interfaces Working Group 52 | - First release of specfile for packaging a single dl provider. 53 | -------------------------------------------------------------------------------- /prov/usnic/libfabric-usnic.spec.in: -------------------------------------------------------------------------------- 1 | %{!?configopts: %global configopts LDFLAGS=-Wl,--build-id} 2 | %{!?provider: %define provider usnic} 3 | %{!?provider_formal: %define provider_formal usNIC} 4 | 5 | Name: libfabric-%{provider} 6 | Version: @VERSION@ 7 | Release: 1%{?dist} 8 | Summary: Dynamic %{provider_formal} provider for user-space RDMA Fabric Interfaces 9 | Group: System Environment/Libraries 10 | License: GPLv2 or BSD 11 | Url: http://www.github.com/ofiwg/libfabric 12 | Source: http://www.github.org/ofiwg/%{name}/releases/download/v{%version}/libfabric-%{version}.tar.bz2 13 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 14 | Requires: libfabric 15 | BuildRequires: libfabric 16 | 17 | %description 18 | libfabric provides a user-space API to access high-performance fabric 19 | services, such as RDMA. 20 | 21 | This RPM provides the %{provider_formal} provider as a "plugin" to an existing 22 | Libfabric installation. This plugin will override any existing %{provider_formal} 23 | provider functionality in the existing Libfabric installation. 24 | 25 | %prep 26 | %setup -q -n libfabric-%{version} 27 | 28 | %build 29 | %configure %{configopts} --enable-%{provider}=dl 30 | make %{?_smp_mflags} 31 | 32 | %install 33 | rm -rf %{buildroot} 34 | %makeinstall installdirs 35 | 36 | %clean 37 | rm -rf %{buildroot} 38 | 39 | %files 40 | %defattr(-,root,root,-) 41 | %{_libdir}/libfabric/*.so 42 | 43 | %exclude %{_libdir}/libfabric.* 44 | %exclude %{_libdir}/libfabric/*.la 45 | %exclude %{_libdir}/pkgconfig 46 | %exclude %{_bindir} 47 | %exclude %{_mandir} 48 | %exclude %{_includedir} 49 | 50 | %changelog 51 | * Wed May 24 2017 Open Fabrics Interfaces Working Group 52 | - First release of specfile for packaging a single dl provider. 53 | -------------------------------------------------------------------------------- /prov/usnic/src/usdf_socket.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014, Cisco Systems, Inc. All rights reserved. 3 | * 4 | * This software is available to you under a choice of one of two 5 | * licenses. You may choose to be licensed under the terms of the GNU 6 | * General Public License (GPL) Version 2, available from the file 7 | * COPYING in the main directory of this source tree, or the 8 | * BSD license below: 9 | * 10 | * Redistribution and use in source and binary forms, with or 11 | * without modification, are permitted provided that the following 12 | * conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer. 17 | * 18 | * - Redistributions in binary form must reproduce the above 19 | * copyright notice, this list of conditions and the following 20 | * disclaimer in the documentation and/or other materials 21 | * provided with the distribution. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 27 | * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | * POSSIBILITY OF SUCH DAMAGE. 35 | */ 36 | #ifndef _USDF_SOCKET_H_ 37 | #define _USDF_SOCKET_H_ 38 | 39 | #define EPOLLBAD (EPOLLHUP | EPOLLRDHUP | EPOLLERR) 40 | 41 | int usdf_check_sock_error(int sock, uint32_t events); 42 | 43 | #endif /* _USDF_SOCKET_H_ */ 44 | -------------------------------------------------------------------------------- /prov/usnic/src/usnic_direct/linux/delay.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. 3 | * 4 | * LICENSE_BEGIN 5 | * 6 | * This software is available to you under a choice of one of two 7 | * licenses. You may choose to be licensed under the terms of the GNU 8 | * General Public License (GPL) Version 2, available from the file 9 | * COPYING in the main directory of this source tree, or the 10 | * BSD license below: 11 | * 12 | * Redistribution and use in source and binary forms, with or 13 | * without modification, are permitted provided that the following 14 | * conditions are met: 15 | * 16 | * - Redistributions of source code must retain the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer. 19 | * 20 | * - Redistributions in binary form must reproduce the above 21 | * copyright notice, this list of conditions and the following 22 | * disclaimer in the documentation and/or other materials 23 | * provided with the distribution. 24 | * 25 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 26 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 27 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 28 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 29 | * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 30 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 31 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 32 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 33 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | * POSSIBILITY OF SUCH DAMAGE. 37 | * 38 | * LICENSE_END 39 | * 40 | * 41 | */ 42 | 43 | #ifndef _DELAY_H_ 44 | #define _DELAY_H_ 45 | 46 | /* Fake header file so that we can compile kernel code in userspace. */ 47 | 48 | #endif /* _DELAY_H_ */ 49 | -------------------------------------------------------------------------------- /prov/usnic/src/usnic_direct/linux/slab.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. 3 | * 4 | * LICENSE_BEGIN 5 | * 6 | * This software is available to you under a choice of one of two 7 | * licenses. You may choose to be licensed under the terms of the GNU 8 | * General Public License (GPL) Version 2, available from the file 9 | * COPYING in the main directory of this source tree, or the 10 | * BSD license below: 11 | * 12 | * Redistribution and use in source and binary forms, with or 13 | * without modification, are permitted provided that the following 14 | * conditions are met: 15 | * 16 | * - Redistributions of source code must retain the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer. 19 | * 20 | * - Redistributions in binary form must reproduce the above 21 | * copyright notice, this list of conditions and the following 22 | * disclaimer in the documentation and/or other materials 23 | * provided with the distribution. 24 | * 25 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 26 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 27 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 28 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 29 | * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 30 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 31 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 32 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 33 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | * POSSIBILITY OF SUCH DAMAGE. 37 | * 38 | * LICENSE_END 39 | * 40 | * 41 | */ 42 | 43 | #ifndef _SLAB_H_ 44 | #define _SLAB_H_ 45 | 46 | /* Fake header file so that we can compile kernel code in userspace. */ 47 | 48 | #endif /* _SLAB_H_ */ 49 | -------------------------------------------------------------------------------- /prov/usnic/src/usnic_direct/usd_caps.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014, Cisco Systems, Inc. All rights reserved. 3 | * 4 | * LICENSE_BEGIN 5 | * 6 | * This software is available to you under a choice of one of two 7 | * licenses. You may choose to be licensed under the terms of the GNU 8 | * General Public License (GPL) Version 2, available from the file 9 | * COPYING in the main directory of this source tree, or the 10 | * BSD license below: 11 | * 12 | * Redistribution and use in source and binary forms, with or 13 | * without modification, are permitted provided that the following 14 | * conditions are met: 15 | * 16 | * - Redistributions of source code must retain the above 17 | * copyright notice, this list of conditions and the following 18 | * disclaimer. 19 | * 20 | * - Redistributions in binary form must reproduce the above 21 | * copyright notice, this list of conditions and the following 22 | * disclaimer in the documentation and/or other materials 23 | * provided with the distribution. 24 | * 25 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 26 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 27 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 28 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 29 | * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 30 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 31 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 32 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 33 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | * POSSIBILITY OF SUCH DAMAGE. 37 | * 38 | * LICENSE_END 39 | * 40 | * 41 | */ 42 | 43 | #ifndef _USD_CAPS_H_ 44 | #define _USD_CAPS_H_ 45 | 46 | int usd_read_caps(struct usd_device *dev); 47 | 48 | #endif /* _USD_CAPS_H_ */ 49 | -------------------------------------------------------------------------------- /prov/verbs/Makefile.include: -------------------------------------------------------------------------------- 1 | if HAVE_VERBS 2 | _verbs_files = \ 3 | prov/verbs/src/fi_verbs.h \ 4 | prov/verbs/src/fi_verbs.c \ 5 | prov/verbs/src/verbs_cm.c \ 6 | prov/verbs/src/verbs_cm_xrc.c \ 7 | prov/verbs/src/verbs_cq.c \ 8 | prov/verbs/src/verbs_domain.c \ 9 | prov/verbs/src/verbs_domain_xrc.c \ 10 | prov/verbs/src/verbs_mr.c \ 11 | prov/verbs/src/verbs_eq.c \ 12 | prov/verbs/src/verbs_info.c \ 13 | prov/verbs/src/verbs_ep.c \ 14 | prov/verbs/src/verbs_msg.c \ 15 | prov/verbs/src/verbs_rma.c \ 16 | prov/verbs/src/verbs_dgram_ep_msg.c \ 17 | prov/verbs/src/verbs_dgram_av.c \ 18 | prov/verbs/src/ofi_verbs_priv.h 19 | 20 | if HAVE_VERBS_DL 21 | pkglib_LTLIBRARIES += libverbs-fi.la 22 | libverbs_fi_la_SOURCES = $(_verbs_files) $(common_srcs) 23 | libverbs_fi_la_CPPFLAGS = \ 24 | -I$(top_srcdir)/include \ 25 | -I$(top_srcdir)/prov/verbs/src/ep_rdm \ 26 | -I$(top_srcdir)/prov/verbs/src/ep_dgram \ 27 | $(AM_CPPFLAGS) $(verbs_CPPFLAGS) 28 | libverbs_fi_la_LDFLAGS = \ 29 | -module -avoid-version -shared -export-dynamic \ 30 | $(verbs_LDFLAGS) 31 | libverbs_fi_la_LIBADD = $(linkback) $(verbs_LIBS) 32 | libverbs_fi_la_DEPENDENCIES = $(linkback) 33 | else !HAVE_VERBS_DL 34 | src_libfabric_la_SOURCES += $(_verbs_files) 35 | src_libfabric_la_CPPFLAGS += \ 36 | -I$(top_srcdir)/prov/verbs/src/ep_rdm \ 37 | -I$(top_srcdir)/prov/verbs/src/ep_dgram \ 38 | $(verbs_CPPFLAGS) 39 | src_libfabric_la_LDFLAGS += $(verbs_LDFLAGS) 40 | src_libfabric_la_LIBADD += $(verbs_LIBS) 41 | endif !HAVE_VERBS_DL 42 | 43 | prov_install_man_pages += man/man7/fi_verbs.7 44 | 45 | endif HAVE_VERBS 46 | 47 | prov_dist_man_pages += man/man7/fi_verbs.7 48 | -------------------------------------------------------------------------------- /prov/verbs/libfabric-verbs.spec.in: -------------------------------------------------------------------------------- 1 | %{!?configopts: %global configopts LDFLAGS=-Wl,--build-id} 2 | %{!?provider: %define provider verbs} 3 | %{!?provider_formal: %define provider_formal verbs} 4 | 5 | Name: libfabric-%{provider} 6 | Version: @VERSION@ 7 | Release: 1%{?dist} 8 | Summary: Dynamic %{provider_formal} provider for user-space Open Fabric Interfaces 9 | Group: System Environment/Libraries 10 | License: GPLv2 or BSD 11 | Url: http://www.github.com/ofiwg/libfabric 12 | Source: http://www.github.org/ofiwg/%{name}/releases/download/v{%version}/libfabric-%{version}.tar.bz2 13 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 14 | Requires: libfabric 15 | BuildRequires: libfabric 16 | 17 | %description 18 | libfabric provides a user-space API to access high-performance fabric 19 | services, such as RDMA. 20 | 21 | This RPM provides the %{provider_formal} provider as a "plugin" to an existing 22 | libfabric installation. This plugin will override older %{provider_formal} 23 | provider functionality in the existing libfabric installation. 24 | 25 | %prep 26 | %setup -q -n libfabric-%{version} 27 | 28 | %build 29 | %configure %{configopts} --enable-%{provider}=dl 30 | make %{?_smp_mflags} 31 | 32 | %install 33 | rm -rf %{buildroot} 34 | %makeinstall installdirs 35 | 36 | %clean 37 | rm -rf %{buildroot} 38 | 39 | %files 40 | %defattr(-,root,root,-) 41 | %{_libdir}/libfabric/*.so 42 | 43 | %exclude %{_libdir}/libfabric.* 44 | %exclude %{_libdir}/libfabric/*.la 45 | %exclude %{_libdir}/pkgconfig 46 | %exclude %{_bindir} 47 | %exclude %{_mandir} 48 | %exclude %{_includedir} 49 | 50 | %changelog 51 | * Wed May 24 2017 Open Fabrics Interfaces Working Group 52 | - First release of specfile for packaging a single dl provider. 53 | -------------------------------------------------------------------------------- /strerror.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | -------------------------------------------------------------------------------- /util/windows/getopt/getopt.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Intel Corporation. All rights reserved. 3 | * 4 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 5 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 6 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 7 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 8 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 9 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 10 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 11 | * SOFTWARE. 12 | */ 13 | 14 | #ifndef _GETOPT_H_ 15 | #define _GETOPT_H_ 16 | 17 | #ifdef __cplusplus 18 | extern "C" { 19 | #endif /* __cplusplus */ 20 | 21 | extern char* optarg; 22 | extern int optind, opterr, optopt; 23 | 24 | #ifndef no_argument 25 | # define no_argument 0 26 | #endif /* no_argument */ 27 | 28 | #ifndef required_argument 29 | # define required_argument 1 30 | #endif /* required_argument */ 31 | 32 | #ifndef optional_argument 33 | # define optional_argument 2 34 | #endif /* optional_argument */ 35 | 36 | int getopt(int argc, char * const argv[], const char *optstring); 37 | 38 | struct option { 39 | const char *name; 40 | int has_arg; 41 | int *flag; 42 | int val; 43 | }; 44 | 45 | int getopt_long(int argc, char * const argv[], 46 | const char *optstring, 47 | const struct option *longopts, int *longindex); 48 | 49 | int getopt_long_only(int argc, char * const argv[], 50 | const char *optstring, 51 | const struct option *longopts, int *longindex); 52 | 53 | #ifdef __cplusplus 54 | } 55 | #endif /* __cplusplus */ 56 | 57 | #endif //_GETOPT_H_ 58 | 59 | --------------------------------------------------------------------------------