Compile error: ‘IBV_ODP_SUPPORT_SRQ_RECV’ undeclared
smichnowicz opened this issue · 4 comments
Dear Developers,
I went to compile perftest but got the following compile errors
/usr/include/infiniband/verbs.h:78: note: this is the location of the previous definition
78 | #define container_of(ptr, type, member) \
|
src/perftest_resources.c: In function ‘check_odp_transport_caps’:
src/perftest_resources.c:1398:40: error: ‘IBV_ODP_SUPPORT_SRQ_RECV’ undeclared (first use in this function); did you mean ‘IBV_EXP_ODP_SUPPORT_SRQ_RECV’?
1398 | if (!(caps & (IBV_ODP_SUPPORT_RECV | IBV_ODP_SUPPORT_SRQ_RECV))) {
| ^~~~~~~~~~~~~~~~~~~~~~~~
| IBV_EXP_ODP_SUPPORT_SRQ_RECV
src/perftest_resources.c:1398:40: note: each undeclared identifier is reported only once for each function it appears in
src/perftest_resources.c: In function ‘check_odp_support’:
src/perftest_resources.c:1456:52: error: ‘struct ibv_device_attr_ex’ has no member named ‘xrc_odp_caps’; did you mean ‘odp_caps’?
1456 | if ( !check_odp_transport_caps(user_param, dattr.xrc_odp_caps) )
| ^~~~~~~~~~~~
| odp_caps
The file /usr/include/infiniband/verbs.h exists. Does the program depend upon the version of this file?
It is a Centos 7.9 system and I have the following packages installed:
yum list installed | grep verb
libibverbs.x86_64 41mlnx1-OFED.4.9.3.0.0.49510 installed
libibverbs-devel.x86_64 41mlnx1-OFED.4.9.3.0.0.49510 installed
libibverbs-devel-static.x86_64 41mlnx1-OFED.4.9.3.0.0.49510 installed
libibverbs-utils.x86_64 41mlnx1-OFED.4.9.3.0.0.49510 installe
thanks
Simon
Hi,
It seems that your ofed uses legacy verbs, you need to use the legacy branch of perftest
https://github.com/linux-rdma/perftest/tree/legacy_verbs_support
Please reopen if the issue continues
Hi, I have used the legacy branch of perftest but I also encountered the same error:
src/perftest_resources.c: In function ‘check_odp_transport_caps’:
src/perftest_resources.c:1428:40: error: ‘IBV_ODP_SUPPORT_SRQ_RECV’ undeclared (first use in this function); did you mean ‘IBV_EXP_ODP_SUPPORT_SRQ_RECV’?
if (!(caps & (IBV_ODP_SUPPORT_RECV | IBV_ODP_SUPPORT_SRQ_RECV))) {
^~~~~~~~~~~~~~~~~~~~~~~~
IBV_EXP_ODP_SUPPORT_SRQ_RECV
src/perftest_resources.c:1428:40: note: each undeclared identifier is reported only once for each function it appears in
src/perftest_resources.c: In function ‘check_odp_support’:
src/perftest_resources.c:1486:52: error: ‘struct ibv_device_attr_ex’ has no member named ‘xrc_odp_caps’; did you mean ‘odp_caps’?
if ( !check_odp_transport_caps(user_param, dattr.xrc_odp_caps) )
^~~~~~~~~~~~
odp_caps
Here is my environment:
Ubuntu18.04
Linux 4.15.0-46-generic
MLNX_OFED_LINUX-4.9-3.1.5.0
Ethernet controller: Mellanox Technologies MT27700 Family [ConnectX-4]
As for MLNX_OFED_LINUX-4.9-3.1.5.0, I checked the relevant documentation:
https://docs.nvidia.com/networking/display/ofedv490170/release+notes
The corresponding perftest version found is
perftest | 4.4-0.23.g89e176a.49017
I downloaded the version perftest-4.4-0.23 in releases and compiled it correctly.