Kernel OFI repro layout and naming Frank Yang, Chen Zhao Netapp PPG Stan Smith Intel SSG/DPD May, 2015
Kernel OFI Naming • Repro naming – kfabric/ • API naming – kfi_*() vs. fi_*() ? – Use kfi_*() throughout – Use fi_*() throughout – Hybrid • kfi_*()for providers (exports DOWN) • fi_*() for clients (exports UP) www. openfabrics. org 2
• Module naming – Framework: kfabric. ko – Test: • kfit_xxx. ko • kfi_test_xxx. ko – Providers: • kfi_xxx. ko - kfi_verbs. ko… • Kfip_xxx. ko - kfip_ibv. ko… www. openfabrics. org 3
Kernel OFI Repro Layout kfabric kfi (framework) kfabric. c www. openfabrics. org prov (providers) ibverbs include socket Makefile man tests ibverbs socket 4
• Makefile(s) – kfabric/Makefile would build everything for the current running kernel; with other kernel. org kernel possible. Entire build is out-of-kernel as we do not yet know where kfabric/ would land in the kernel src tree. Could be under drivers/ or net/ ? kfabric/prov/ibverbs/Makefile would build kfip_ibv. ko (IB provider). kfabric/tests/Makefile would build all tests under kfabric/tests/* ibverbs/* www. openfabrics. org 5
• Part of the rational behind kfabric/include/rdma is within kfabric/include are common ‘. h’ files used by all providers. Partitioning such that provider header files are not mixed with API header files in kfabric/include/rdma. Honestly, I’ve never liked the rdma/ name, include/api/ or something other than rdma/ would work? Provider builds search. . /include/ and . . /kfi/ www. openfabrics. org 6