diff --git a/src/core/ibverbs_wrapper.cc b/src/core/ibverbs_wrapper.cc index 4fdf1b1e..a147e458 100644 --- a/src/core/ibverbs_wrapper.cc +++ b/src/core/ibverbs_wrapper.cc @@ -10,32 +10,11 @@ #include "logger.hpp" -// NOTE: MRC_SUPPORT is a temporal macro that makes the current MRC implementation work. -// MRC_SUPPORT is needed because the current libibverbs implmentation of MRC does not provide -// all symbols that we need, so we need to load some symbols from the original libibverbs. -// This macro will be removed (set 0) once MRC provides all necessary symbols. -// Non-MRC environments will not be affected by this macro as long as VMRC_LIBIBVERBS_SO -// environment variable is not set. -#define MRC_SUPPORT 1 -#if (MRC_SUPPORT) -#include -#include -#endif // (MRC_SUPPORT) - namespace mscclpp { static std::unique_ptr globalIBVerbsHandle(nullptr, &::dlclose); -#if (MRC_SUPPORT) -static std::unique_ptr globalOrigIBVerbsHandle(nullptr, &::dlclose); -#endif // (MRC_SUPPORT) void* IBVerbs::dlsym(const std::string& symbol, bool allowReturnNull) { -#if (MRC_SUPPORT) - static std::set mrcSymbols = { - "ibv_get_device_list", "ibv_get_device_name", "ibv_open_device", "ibv_close_device", "ibv_query_qp", - "ibv_create_cq", "ibv_destroy_cq", "ibv_create_qp", "ibv_modify_qp", "ibv_destroy_qp", - }; -#endif // (MRC_SUPPORT) if (!globalIBVerbsHandle) { if (mscclpp::env()->ibvSo != "") { void* handle = ::dlopen(mscclpp::env()->ibvSo.c_str(), RTLD_NOW); @@ -56,26 +35,7 @@ void* IBVerbs::dlsym(const std::string& symbol, bool allowReturnNull) { THROW(NET, SysError, errno, "Failed to open libibverbs: ", std::string(::dlerror())); } } -#if (MRC_SUPPORT) - // In MRC mode, `VMRC_LIBIBVERBS_SO` should be set. - char* vmrcLibibverbsSo = ::getenv("VMRC_LIBIBVERBS_SO"); - void* ptr; - if (vmrcLibibverbsSo != nullptr && mrcSymbols.find(symbol) == mrcSymbols.end()) { - // If we are in MRC mode and the symbol is not in the table, get it from the original libibverbs. - if (!globalOrigIBVerbsHandle) { - void* handle = ::dlopen(vmrcLibibverbsSo, RTLD_NOW); - if (!handle) { - THROW(NET, SysError, errno, "Failed to open ", std::string(vmrcLibibverbsSo)); - } - globalOrigIBVerbsHandle.reset(handle); - } - ptr = ::dlsym(globalOrigIBVerbsHandle.get(), symbol.c_str()); - } else { - ptr = ::dlsym(globalIBVerbsHandle.get(), symbol.c_str()); - } -#else // !(MRC_SUPPORT) void* ptr = ::dlsym(globalIBVerbsHandle.get(), symbol.c_str()); -#endif // !(MRC_SUPPORT) if (!ptr && !allowReturnNull) { THROW(NET, SysError, errno, "Failed to load libibverbs symbol: ", symbol); }