[lustre-discuss] Lustre and Linux 5.x

Tauferner, Andrew T andrew.t.tauferner at intel.com
Fri Dec 20 07:53:08 PST 2019


My apologies.  There were a couple of problems with my build environment.  First, there was an old config cache messing up the configuration step.  Also, the gcc being used was v7, not v8.  Both versions are present but v7 is the default.  After fixing those problems and disabling gss I’m left with a single failure which Shaun referenced below (commit 7674f2c976744c38fd761518db92e01b22de2fbb) :

/usr/src/lustre-2.13.0/lnet/klnds/o2iblnd/o2iblnd.c: In function ‘kiblnd_destroy_conn’:
/usr/src/lustre-2.13.0/lnet/klnds/o2iblnd/o2iblnd.c:1046:6: error: void value not ignored as it ought to be
   rc = ib_destroy_cq(conn->ibc_cq);
      ^
make[6]: *** [scripts/Makefile.build:281: /usr/src/lustre-2.13.0/lnet/klnds/o2iblnd/o2iblnd.o] Error 1
make[6]: *** Waiting for unfinished jobs....
make[5]: *** [scripts/Makefile.build:497: /usr/src/lustre-2.13.0/lnet/klnds/o2iblnd] Error 2
make[4]: *** [scripts/Makefile.build:497: /usr/src/lustre-2.13.0/lnet/klnds] Error 2
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:497: /usr/src/lustre-2.13.0/lnet] Error 2
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [Makefile:1634: _module_/usr/src/lustre-2.13.0] Error 2
make[1]: *** [autoMakefile:1024: modules] Error 2
make: *** [autoMakefile:574: install-recursive] Error 1

I’ll pursue the update to kiblnd_destroy_conn().  Thanks.

Andrew Tauferner

From: Shaun Tancheff <stancheff at cray.com>
Sent: Thursday, December 19, 2019 11:31 PM
To: Tauferner, Andrew T <andrew.t.tauferner at intel.com>; lustre-discuss at lists.lustre.org
Subject: Re: [lustre-discuss] Lustre and Linux 5.x

Hi Andrew,

It looks like 2.13.0 is missing a few patches for 5.3.
7674f2c976744c38fd761518db92e01b22de2fbb (HEAD -> test) LU-12904 o2ib: ib_destroy_cq() returns void
c22267e5a38c46a24ef3763131ee85cb57a16e5d LU-12904 build: account_page_dirtied is not exported
e2735d07403c0cd533fe6ceac133a900871b3883 LU-12634 llite: Use __xa_set_mark if it is available
ee3ecf5b6290081dff7c197b63b5087dcb299a9c LU-12634 libcfs: force_sig() removed task parameter
a298f8c1376485512f83472a22dc755f47947e75 (tag: v2_13_0, tag: 2.13.0, origin/b2_13) New release 2.13.0

Will build on CentOS against 5.3.0 mainline kernel:

$ git clean -dfx
$ sh ./autogen.sh
$ ./configure --disable-server --enable-client --with-linux=/usr/src/kernels/5.3.0-1.el7.x86_64 --disable-gss
$ ./LUSTRE-VERSION-GEN
2.12.58_197_g7674f2c
$ gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)

If you are using gss then there are still 2 more patches pending to land on master that you will need to cherry-pick from gerrit:
   https://review.whamcloud.com/35743
   https://review.whamcloud.com/36580

1735f8697a08d5edbf4a12dcfd402358dd4bfadb (in-review-gerrit) LU-12904 ldiskfs: Add ldiskfs support for linux 5.4
df0788accd0cb9260b3036b6f8a2b61a8122a56e LU-12904 gss: struct cache_detail readers changed to writers
f206a46c127dfde490ce61080645b3ee2b1d3127 LU-12634 gss: uid_keyring and session_keyring moved
9fb6818fe3d1e0130e147c5cf740e5e9a2631166 (origin/master, origin/HEAD, lunar/master, master) LU-12787 tests: skip project quota if it is disabled

On top of 2.13.0 tag:
305cadaa77de8833a5eb501389742bfb5584410f (HEAD -> test) LU-12904 gss: struct cache_detail readers changed to writers
6bf763bf35559a5008077ee37ba74d0075c1604a LU-12634 gss: uid_keyring and session_keyring moved
7674f2c976744c38fd761518db92e01b22de2fbb LU-12904 o2ib: ib_destroy_cq() returns void
c22267e5a38c46a24ef3763131ee85cb57a16e5d LU-12904 build: account_page_dirtied is not exported
e2735d07403c0cd533fe6ceac133a900871b3883 LU-12634 llite: Use __xa_set_mark if it is available
ee3ecf5b6290081dff7c197b63b5087dcb299a9c LU-12634 libcfs: force_sig() removed task parameter
a298f8c1376485512f83472a22dc755f47947e75 (tag: v2_13_0, tag: 2.13.0, origin/b2_13) New release 2.13.0
a4af7575718a06169866cc11e7b6cdfa266d44e1 LU-13030 pcc: Init saved dataset flags properly

$ git clean -dfx
$; sh ./autogen.sh
$ ./configure --disable-server --enable-client --with-linux=/usr/src/kernels/5.3.0-1.el7.x86_64
$ make -j16
$ ./LUSTRE-VERSION-GEN
2.12.58_199_g305cada

Depending on the version of gcc you are using you may need to grab some of the gcc8 fixes as well.
I’m thinking of this one:
    LU-12904 build: Support for gcc -Wimplicit-fallthrough
And possibly this one:
   LU-12904 build: External _module_ decorator removed
If should also get you up to mainline 5.4 (depending on what patches have been pulled into you 5.3 kernel).

This ‘error: "___wait_var_event" redefined [-Werror]’ I have not seen .. if you are still seeing this it would help if you include the exact kernel version and configure that you are working with.

Hope this helps,
--Shaun

From: lustre-discuss <lustre-discuss-bounces at lists.lustre.org<mailto:lustre-discuss-bounces at lists.lustre.org>> on behalf of "Tauferner, Andrew T" <andrew.t.tauferner at intel.com<mailto:andrew.t.tauferner at intel.com>>
Date: Friday, December 20, 2019 at 4:33 AM
To: "lustre-discuss at lists.lustre.org<mailto:lustre-discuss at lists.lustre.org>" <lustre-discuss at lists.lustre.org<mailto:lustre-discuss at lists.lustre.org>>
Subject: [lustre-discuss] Lustre and Linux 5.x

I’m trying to build the Lustre client for a 5.3 kernel but I’m getting lots of errors.  I thought that 2.13 was going to support Linux 5.x kernels.  Here’s one example :

In file included from /usr/src/lustre-2.13.0/libcfs/libcfs/linux/linux-wait.c:9:0:
/usr/src/lustre-2.13.0/libcfs/include/libcfs/linux/linux-wait.h:74:0: error: "___wait_var_event" redefined [-Werror]
#define ___wait_var_event(var, condition, state, exclusive, ret, cmd) \

In file included from /usr/src/lustre-2.13.0/libcfs/include/libcfs/linux/linux-wait.h:11:0,
                 from /usr/src/lustre-2.13.0/libcfs/libcfs/linux/linux-wait.c:9:
include/linux/wait_bit.h:242:0: note: this is the location of the previous definition
#define ___wait_var_event(var, condition, state, exclusive, ret, cmd) \

In file included from /usr/src/lustre-2.13.0/libcfs/libcfs/linux/linux-wait.c:9:0:
/usr/src/lustre-2.13.0/libcfs/include/libcfs/linux/linux-wait.h:126:0: error: "__wait_var_event_timeout" redefined [-Werror]
#define __wait_var_event_timeout(var, condition, timeout)  \

In file included from /usr/src/lustre-2.13.0/libcfs/include/libcfs/linux/linux-wait.h:11:0,
                 from /usr/src/lustre-2.13.0/libcfs/libcfs/linux/linux-wait.c:9:
include/linux/wait_bit.h:294:0: note: this is the location of the previous definition
#define __wait_var_event_timeout(var, condition, timeout)  \

In file included from /usr/src/lustre-2.13.0/libcfs/libcfs/linux/linux-wait.c:9:0:
/usr/src/lustre-2.13.0/libcfs/include/libcfs/linux/linux-wait.h:131:0: error: "wait_var_event_timeout" redefined [-Werror]
#define wait_var_event_timeout(var, condition, timeout)   \

In file included from /usr/src/lustre-2.13.0/libcfs/include/libcfs/linux/linux-wait.h:11:0,
                 from /usr/src/lustre-2.13.0/libcfs/libcfs/linux/linux-wait.c:9:
include/linux/wait_bit.h:299:0: note: this is the location of the previous definition
#define wait_var_event_timeout(var, condition, timeout)   \

cc1: error: unrecognized command line option ‘-Wno-stringop-truncation’ [-Werror]
cc1: all warnings being treated as errors
make[5]: *** [scripts/Makefile.build:281: /usr/src/lustre-2.13.0/libcfs/libcfs/linux/linux-wait.o] Error 1
make[5]: *** Waiting for unfinished jobs....

Here’s another example:

/usr/src/lustre-2.13.0/lustre/llite/xattr.c:38:10: fatal error: linux/selinux.h: No such file or directory
#include <linux/selinux.h>
          ^~~~~~~~~~~~~~~~~

Andrew Tauferner

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lustre.org/pipermail/lustre-discuss-lustre.org/attachments/20191220/cb25a9cd/attachment-0001.html>


More information about the lustre-discuss mailing list