Details
Description
Dear Lustre developers
I tried to install lustre-client-source-2.2.51-2.6.32.36_0.5_default_g8bd0642 in one of my cluster using SUSE SLES 11.2 (kernel 3.0.13-0.27.1) and OFED-1.5.4 but I fall in a bunch of problems which I cannot solve. Following the summary of my tests:
1) Installed lustre-client-source-2.2.51-2.6.32.36_0.5_default_g8bd0642.x86_64.rpm and kernel-ib-devel-1.5.4-3.0.13_0.27_default.x86_64.rpm (generate by the OFED installation)
2) cd /usr/src/lustre-2.2.51 and configure it as follow:
./configure --with-linux=/usr/src/linux-3.0.13-0.27 --with-linux-obj=/usr/src/linux-3.0.13-0.27-obj/x86_64/default\
--with-o2ib=/usr/src/openib
...
CC: gcc
LD:
CPPFLAGS: -include /usr/src/lustre-2.2.51/config.h -I/usr/src/lustre-2.2.51/libcfs/include -I/usr/src/lustre-2.2.51/lnet/include -I/usr/src/lustre-2.2.51/lustre/include
LLCPPFLAGS: -D_arch_lib_ -D_LARGEFILE64_SOURCE=1
CFLAGS: -g -O2 -Werror
EXTRA_KCFLAGS: -include /usr/src/lustre-2.2.51/config.h -g -I/usr/src/lustre-2.2.51/libcfs/include -I/usr/src/lustre-2.2.51/lnet/include -I/usr/src/lustre-2.2.51/lustre/include
LLCFLAGS: -g -Wall -fPIC -D_GNU_SOURCE
Type 'make' to build Lustre.
3) make
...
/usr/src/lustre-2.2.51/libcfs/include/libcfs/linux/linux-lock.h:52:28: error: linux/smp_lock.h: No such file or directory
make[8]: *** [/usr/src/lustre-2.2.51/libcfs/libcfs/linux/linux-tracefile.o] Error 1
make[7]: *** [/usr/src/lustre-2.2.51/libcfs/libcfs] Error 2
make[6]: *** [/usr/src/lustre-2.2.51/libcfs] Error 2
make[5]: *** [_module_/usr/src/lustre-2.2.51] Error 2
make[4]: *** [sub-make] Error 2
make[3]: *** [all] Error 2
make[3]: Leaving directory `/usr/src/linux-3.0.13-0.27-obj/x86_64/default'
make[2]: *** [modules] Error 2
make[2]: Leaving directory `/usr/src/lustre-2.2.51'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/lustre-2.2.51'
make: *** [all] Error 2
4) I tried to copy an old version of smp_lock.h (kernel 2.6.32.36-0.5-default from SLES11.1) to /usr/src/linux-3.0.13-0.27/include/linux and the compilation advanced until the following error:
/usr/src/lustre-2.2.51/libcfs/libcfs/watchdog.c:96: error: 'SPIN_LOCK_UNLOCKED' undeclared here (not in a function)
make[8]: *** [/usr/src/lustre-2.2.51/libcfs/libcfs/watchdog.o] Error 1
make[7]: *** [/usr/src/lustre-2.2.51/libcfs/libcfs] Error 2
make[6]: *** [/usr/src/lustre-2.2.51/libcfs] Error 2
make[5]: *** [_module_/usr/src/lustre-2.2.51] Error 2
make[4]: *** [sub-make] Error 2
make[3]: *** [all] Error 2
make[3]: Leaving directory `/usr/src/linux-3.0.13-0.27-obj/x86_64/default'
make[2]: *** [modules] Error 2
make[2]: Leaving directory `/usr/src/lustre-2.2.51'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/lustre-2.2.51'
make: *** [all] Error 2
the line 96 in /usr/src/lustre-2.2.51/libcfs/libcfs/watchdog.c is not compatible with the new kernel and should be modify as follow:
-static cfs_spinlock_t lcw_pending_timers_lock = CFS_SPIN_LOCK_UNLOCKED;
+static DEFINE_SPINLOCK(lcw_pending_timers_lock);
5) make
/usr/src/lustre-2.2.51/lustre/include/linux/lustre_patchless_compat.h: In function 'd_rehash_cond':
/usr/src/lustre-2.2.51/lustre/include/linux/lustre_patchless_compat.h:116: error: 'dcache_lock' undeclared (first use in this function)
/usr/src/lustre-2.2.51/lustre/include/linux/lustre_patchless_compat.h:116: error: (Each undeclared identifier is reported only once
/usr/src/lustre-2.2.51/lustre/include/linux/lustre_patchless_compat.h:116: error: for each function it appears in.)
cc1: warnings being treated as errors
In file included from /usr/src/lustre-2.2.51/lustre/include/lvfs.h:48,
from /usr/src/lustre-2.2.51/lustre/include/obd_support.h:43,
from /usr/src/lustre-2.2.51/lustre/include/linux/obd.h:46,
from /usr/src/lustre-2.2.51/lustre/include/obd.h:43,
from /usr/src/lustre-2.2.51/lustre/fid/fid_handler.c:57:
/usr/src/lustre-2.2.51/lustre/include/linux/lvfs.h: In function 'l_dput':
/usr/src/lustre-2.2.51/lustre/include/linux/lvfs.h:116: error: passing argument 1 of 'atomic_read' from incompatible pointer type
make[8]: *** [/usr/src/lustre-2.2.51/lustre/fid/fid_handler.o] Error 1
make[7]: *** [/usr/src/lustre-2.2.51/lustre/fid] Error 2
make[6]: *** [/usr/src/lustre-2.2.51/lustre] Error 2
make[5]: *** [_module_/usr/src/lustre-2.2.51] Error 2
make[4]: *** [sub-make] Error 2
make[3]: *** [all] Error 2
make[3]: Leaving directory `/usr/src/linux-3.0.13-0.27-obj/x86_64/default'
make[2]: *** [modules] Error 2
make[2]: Leaving directory `/usr/src/lustre-2.2.51'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/lustre-2.2.51'
make: *** [all] Error 2
At this point is clear to me that I cannot use lustre-client-source-2.2.51-2.6.32.36_0.5_default_g8bd0642 on SUSE SLES 11.2 and I would like to ask you if you can add SLES11.2 distribution on you development tree.
Thank you in advance
Carmelo Ponti
----------------------------------------------------------------------
Carmelo Ponti System Engineer
CSCS Swiss Center for Scientific Computing
Via Trevano 131 Email: cponti@cscs.ch
CH-6900 Lugano http://www.cscs.ch
Phone: +41 91 610 82 15/Fax: +41 91 610 82 82
----------------------------------------------------------------------