[LU-7527] Configure errors with OFED 3.18-1, ZFS, and EL6.7 kernel Created: 08/Dec/15  Updated: 02/Aug/16  Resolved: 02/Aug/16

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.8.0
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Nathan Crawford Assignee: WC Triage
Resolution: Duplicate Votes: 1
Labels: zfs
Environment:

Lustre 2.7.63_g2d11035, Scientific Linux 6.7 (kernel-2.6.32-573.8.1.el6.x86_64), OFED 3.18-1 (using qib drivers), ZFS 0.6.5.3 (using dkms packages from zfsonlinux.org repo).


Issue Links:
Related
is related to LU-8401 modprobe: ERROR: could not insert 'ln... Resolved
Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

During configure, these zfs tests all fail:
checking if zfs defines dsl_pool_config_enter/exit
checking if zfs defines dsl_sync_task_do_nowait
checking if zfs defines sa_spill_alloc
checking if zfs defines spa_maxblocksize
due to conflicting definitions in "/usr/src/compat-rdma/include/linux/kthread.h" and "include/linux/kthread.h".

These config test errors lead to compilation failures when making osd-zfs.

My configure command:
./configure --disable-ldiskfs --disable-gss --with-o2ib=/usr/src/compat-rdma --with-zfs=/usr/src/zfs-0.6.5.3 --with-zfs-obj=/var/lib/dkms/zfs/0.6.5.3/2.6.32-573.8.1.el6.x86_64/x86_64 --with-spl=/usr/src/spl-0.6.5.3 --with-spl-obj=/var/lib/dkms/spl/0.6.5.3/2.6.32-573.8.1.el6.x86_64/x86_64 --with-linux=/usr/src/kernels/2.6.32-573.8.1.el6.x86_64

Attempted workaround: add this to test programs in config/lustre-build-zfs.m4:
#ifdef HAVE_COMPAT_RDMA
#undef PACKAGE_NAME
#undef PACKAGE_TARNAME
#undef PACKAGE_VERSION
#undef PACKAGE_STRING
#undef PACKAGE_BUGREPORT
#undef PACKAGE_URL
#include <linux/compat-2.6.h>
#endif

Result: Compiles and installs, works with tcp(eth0) and tcp(ib0), but o2ib fails. This probably just superficially hid the kthread.h conflict.

Successful workaround: uninstall OFED and use in-kernel IB drivers. Everything compiles and runs well. I have no idea if performance is affected.



 Comments   
Comment by Nathan Crawford [ 15/Mar/16 ]

As an update, I'm still hitting this configure issue with lustre 2.8.0-RC5, ZFSonLinux 0.6.5.5, OFED 3.18-2-20160313-0128 and kernel 2.6.32-573.18.1.el6.x86_64.

Is there a simple solution? There are some important updates in the newer OFED that I really don't want to skip.

Comment by Chris Horn [ 21/Mar/16 ]

I think I'm seeing the same issue compiling Lustre 2.8.0-RC5 client on a 3.12 kernel with OFED 3.18-1. My configure line:

./configure --disable-server --enable-client --disable-doc --disable-manpages --with-o2ib=yes

config.log shows numerous configure tests failing with kthread redefinition:

  CC [M]  /home/build/lustre-filesystem/build/conftest.o
In file included from /lib/modules/3.12.28-4-default/source/include/linux/device.h:29:0,
                 from /lib/modules/3.12.28-4-default/source/include/linux/genhd.h:62,
                 from /lib/modules/3.12.28-4-default/source/include/linux/blkdev.h:9,
                 from /home/build/lustre-filesystem/build/conftest.c:50:
/usr/src/compat-rdma/include/linux/kthread.h:23:8: error: redefinition of ‘struct kthread_worker’
 struct kthread_worker {

This seems like the compat_autoconf.h header isn't being included correctly?

build@iosr60-2:~/lustre-filesystem> uname -a
Linux iosr60-2 3.12.28-4-default #1 SMP Thu Sep 25 17:02:34 UTC 2014 (9879bd4) x86_64 x86_64 x86_64 GNU/Linux
build@iosr60-2:~/lustre-filesystem> ofed_info
OFED-3.18-1:
<snip>
Installed Packages:
-------------------
ofed-scripts-3.18-1.1.gf2c716b.x86_64
compat-rdma-devel-3.18-1.1.ga854cfe.3.12.28_4_default.x86_64
compat-rdma-3.18-1.1.ga854cfe.3.12.28_4_default.x86_64
build@iosr60-2:~/lustre-filesystem>

I get the same errors with Lustre 2.7 + patches as well as master

Comment by Chris Horn [ 21/Mar/16 ]

I searched the config.log for all tests that failed with the "redefinition" error, and I added

+	#ifdef HAVE_COMPAT_RDMA
+	#undef PACKAGE_NAME
+	#undef PACKAGE_TARNAME
+	#undef PACKAGE_VERSION
+	#undef PACKAGE_STRING
+	#undef PACKAGE_BUGREPORT
+	#undef PACKAGE_URL
+	#include <linux/compat-2.6.h>
+	#endif

to each, and that seems to have done the trick for the 2.8-RC5 client build.

Comment by James A Simmons [ 01/Aug/16 ]

The patch from LU-8401 should fix this issue once it is back ported.

Comment by Peter Jones [ 02/Aug/16 ]

Thanks James. This is being tracked sepatately to land to the maintenance branches so I'll mark this ticket as a duplicate.

Generated at Sat Feb 10 02:09:40 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.