Details
-
Bug
-
Resolution: Won't Fix
-
Minor
-
None
-
Lustre 2.4.3
-
None
-
sles11sp3 3.0.101-0.31.1
Mellanox OFED.2.2.1.0.0.1.gdf6fefb
-
3
-
15339
Description
I tried to compile lustre-2.4.3 client with Mellanox OFED.2.2.1.0.0.1.gdf6fefb. The compilation failed. It failed at
/usr/src/ofa_kernel/default/include/linux/pm_qos_params.h:27: error: ‘LINUX_BACKPORT’ declared as function returning a function
I saw LU-5224 and cherry-picked the patch, but it still failed:
...
make[5]: Entering directory `/usr/src/linux-3.0.101-0.31.1.20140612nasa-obj/x86_64/nasa'
In file included from /usr/src/linux-3.0.101-0.31.1.20140612nasa/include/linux/netdevice.h:35,
from /usr/src/linux-3.0.101-0.31.1.20140612nasa/include/net/sock.h:51,
from /usr/src/packages/BUILD/lustre-2.4.3/libcfs/include/libcfs/linux/linux-tcpip.h:53,
from /usr/src/packages/BUILD/lustre-2.4.3/libcfs/include/libcfs/linux/libcfs.h:57,
from /usr/src/packages/BUILD/lustre-2.4.3/libcfs/include/libcfs/libcfs.h:48,
from /usr/src/packages/BUILD/lustre-2.4.3/libcfs/libcfs/linux/linux-tracefile.c:41:
/usr/src/ofa_kernel/nasa/include/linux/pm_qos_params.h:27: error: 'LINUX_BACKPORT' declared as function returning a function
cc1: warnings being treated as errors
/usr/src/ofa_kernel/nasa/include/linux/pm_qos_params.h:27: error: parameter names (without types) in function declaration
/usr/src/ofa_kernel/nasa/include/linux/pm_qos_params.h:29: error: 'LINUX_BACKPORT' declared as function returning a function
/usr/src/ofa_kernel/nasa/include/linux/pm_qos_params.h:29: error: parameter names (without types) in function declaration
/usr/src/ofa_kernel/nasa/include/linux/pm_qos_params.h:31: error: 'LINUX_BACKPORT' declared as function returning a function
/usr/src/ofa_kernel/nasa/include/linux/pm_qos_params.h:31: error: parameter names (without types) in function declaration
/usr/src/ofa_kernel/nasa/include/linux/pm_qos_params.h:34: error: 'LINUX_BACKPORT' declared as function returning a function
/usr/src/ofa_kernel/nasa/include/linux/pm_qos_params.h:34: error: parameter names (without types) in function declaration
/usr/src/ofa_kernel/nasa/include/linux/pm_qos_params.h:37: error: 'LINUX_BACKPORT' declared as function returning a function
/usr/src/ofa_kernel/nasa/include/linux/pm_qos_params.h:37: error: parameter names (without types) in function declaration
/usr/src/ofa_kernel/nasa/include/linux/pm_qos_params.h:39: error: 'LINUX_BACKPORT' declared as function returning a function
/usr/src/ofa_kernel/nasa/include/linux/pm_qos_params.h:39: error: parameter names (without types) in function declaration
In file included from /usr/src/linux-3.0.101-0.31.1.20140612nasa/include/net/sock.h:51,
from /usr/src/packages/BUILD/lustre-2.4.3/libcfs/include/libcfs/linux/linux-tcpip.h:53,
from /usr/src/packages/BUILD/lustre-2.4.3/libcfs/include/libcfs/linux/libcfs.h:57,
from /usr/src/packages/BUILD/lustre-2.4.3/libcfs/include/libcfs/libcfs.h:48,
from /usr/src/packages/BUILD/lustre-2.4.3/libcfs/libcfs/linux/linux-tracefile.c:41:
/usr/src/linux-3.0.101-0.31.1.20140612nasa/include/linux/netdevice.h:1064: error: field 'pm_qos_req' has incomplete type
make[10]: *** [/usr/src/packages/BUILD/lustre-2.4.3/libcfs/libcfs/linux/linux-tracefile.o] Error 1
The LU-5224 patch tried to address the compilation problem at o2iblnd.h. However, all C files that include <net/sock.h> would end up including <linux/pm_qos_params.h> and hit this problem. There are more files in the lustre code do that other than o2iblnd.c
I think the correct fix is to add the define
-DCOFIG_COMPAT_PM_QOS
to
EXTRA_LNET_INCLUDE="$EXTRA_LNET_INCLUDE -DCONFIG_COMPAT_SLES_11_$SP -DCONFIG_COMPAT_PM_QOS"
in config/lustre-build-linux.m4.
I am not sure if we need to qualify which sles11sp? kernel version? so that the fix would not break unaffected kernel versions. LU-5224 patch was not a correct fix.