[LU-10805] fixes for 4.15 kernel Created: 12/Mar/18  Updated: 13/Sep/18  Resolved: 12/May/18

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

Type: Bug Priority: Minor
Reporter: Bob Glossman (Inactive) Assignee: James A Simmons
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Related
is related to LU-10997 Ubuntu 18 support Resolved
is related to LU-10934 integrate statx() API with Lustre Resolved
is related to LU-10560 Fixes for 4.14 kernel Resolved
Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

This ticket is for collection of changes in lustre required for linux 4.15.

The first issue seen is the disappearance of the kernel API setup_timer().  It has been replaced by the new timer_setup() call in linux 4.15.   Leads to build fails in all our code using setup_timer().

 



 Comments   
Comment by Gerrit Updater [ 27/Mar/18 ]

Li Dongyang (dongyangli@ddn.com) uploaded a new patch: https://review.whamcloud.com/31788
Subject: LU-10805 lnet: switch to module_param
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: df5948679fd73791da91bcc9c54b0f2df9c3d622

Comment by Gerrit Updater [ 27/Mar/18 ]

Li Dongyang (dongyangli@ddn.com) uploaded a new patch: https://review.whamcloud.com/31789
Subject: LU-10805 ldlm: convert ACCESS_ONCE() to READ_ONCE()
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 972286900446509a4afcb8880ca61fdf25601279

Comment by Gerrit Updater [ 27/Mar/18 ]

Li Dongyang (dongyangli@ddn.com) uploaded a new patch: https://review.whamcloud.com/31790
Subject: LU-10805 libcfs: timer_setup() API changes
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: ca6c541a821ba8f362c9eff3bff226e0dac7adad

Comment by Gerrit Updater [ 19/Apr/18 ]

Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/31788/
Subject: LU-10805 lnet: switch to module_param
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 71cd88f5bf4ec7187753dfaf0bb86be9362c5ad5

Comment by James A Simmons [ 03/May/18 ]

So I have taken a look at the timer changes for 4.15+ kernels and the patch will need to be rebased after the patches land from master-next. Several patches landed and will land soon that collide with this patch. I have a local port and will start testing now that I have Ubuntu18 setup.

Comment by James A Simmons [ 03/May/18 ]

Wow. Setting up my Ubuntu 18 test system I discovered zfs is installed by default.

Comment by Gerrit Updater [ 06/May/18 ]

Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/31789/
Subject: LU-10805 ldlm: convert ACCESS_ONCE() to READ_ONCE()
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: da028f98ea11943ca15ea9ba7220cc24dbc775bd

Comment by Minh Diep [ 09/May/18 ]

first attempt to build ubuntu 18.04 on master hit this

 

2.11.51_64_g90ddbe1/debian/tmp/modules-deb/usr_src/modules/lustre/lnet/selftest/console.o
21:59:08 In file included from include/linux/timer.h:6:0,
21:59:08                  from include/linux/workqueue.h:9,
21:59:08                  from include/linux/rhashtable.h:26,
21:59:08                  from include/linux/ipc.h:7,
21:59:08                  from include/uapi/linux/sem.h:5,
21:59:08                  from include/linux/sem.h:9,
21:59:08                  from include/linux/sched.h:15,
21:59:08                  from include/linux/nsproxy.h:6,
21:59:08                  from /var/lib/jenkins/workspace/lustre-master-next/arch/x86_64/build_type/client/distro/ubuntu1804/ib_stack/inkernel/BUILD/lustre-2.11.51_64_g90ddbe1/debian/tmp/modules-deb/usr_src/modules/lustre/lnet/lnet/config.c:36:
21:59:08 include/linux/ktime.h:91:51: error: expected declaration specifiers or '...' before '(' token
21:59:08  #define ktime_to_timespec64(kt)  ns_to_timespec64((kt))
21:59:08                                                    ^
21:59:08 /var/lib/jenkins/workspace/lustre-master-next/arch/x86_64/build_type/client/distro/ubuntu1804/ib_stack/inkernel/BUILD/lustre-2.11.51_64_g90ddbe1/debian/tmp/modules-deb/usr_src/modules/lustre/libcfs/include/libcfs/linux/linux-time.h:168:33: note: in expansion of macro 'ktime_to_timespec64'
21:59:08  static inline struct timespec64 ktime_to_timespec64(ktime_t kt)
21:59:08                                  ^~~~~~~~~~~~~~~~~~~
21:59:08 scripts/Makefile.build:332: recipe for target '/var/lib/jenkins/workspace/lustre-master-next/arch/x86_64/build_type/client/distro/ubuntu1804/ib_stack/inkernel/BUILD/lustre-2.11.51_64_g90ddbe1/debian/tmp/modules-deb/usr_src/modules/lustre/lnet/lnet/config.o' failed
21:59:08 make[9]: *** [/var/lib/jenkins/workspace/lustre-master-next/arch/x86_64/build_type/client/distro/ubuntu1804/ib_stack/inkernel/BUILD/lustre-2.11.51_64_g90ddbe1/debian/tmp/modules-deb/usr_src/modules/lustre/lnet/lnet/config.o] Error 1
21:59:08 scripts/Makefile.build:606: recipe for target '/var/lib/jenkins/workspace/lustre-master-next/arch/x86_64/build_type/client/distro/ubuntu1804/ib_stack/inkernel/BUILD/lustre-2.11.51_64_g90ddbe1/debian/tmp/modules-deb/usr_src/modules/lustre/lnet/lnet' failed
21:59:08 make[8]: *** [/var/lib/jenkins/workspace/lustre-master-next/arch/x86_64/build_type/client/distro/ubuntu1804/ib_stack/inkernel/BUILD/lustre-2.11.51_64_g90ddbe1/debian/tmp/modules-deb/usr_src/modules/lustre/lnet/lnet] Error 2
21:59:08 make[8]: *** Waiting for unfinished jobs....
21:59:08   CC [M]  /var/lib/jenkins/workspace/lustre-master-next/arch/x86_64/build_type/client/distro/ubuntu1804/ib_stack/inkernel/BUILD/lustre-2.11.51_64_g90ddbe1/debian/tmp/modules-deb/usr_src/modules/lustre/lnet/klnds/socklnd/socklnd_lib.o
21:59:08 In file included from include/linux/timer.h:6:0,
21:59:08                  from include/linux/workqueue.h:9,
21:59:08                  from include/linux/srcu.h:34,
21:59:08                  from include/linux/notifier.h:16,
21:59:08                  from include/linux/memory_hotplug.h:7,
21:59:08                  from include/linux/mmzone.h:775,
21:59:08                  from include/linux/gfp.h:6,
21:59:08                  from include/linux/idr.h:16,
21:59:08                  from include/linux/kernfs.h:14,
21:59:08                  from include/linux/sysfs.h:16,
21:59:08                  from include/linux/kobject.h:21,
21:59:08                  from include/linux/pci.h:29,
21:59:08                  from /var/lib/jenkins/workspace/lustre-master-next/arch/x86_64/build_type/client/distro/ubuntu1804/ib_stack/inkernel/BUILD/lustre-2.11.51_64_g90ddbe1/debian/tmp/modules-deb/usr_src/modules/lustre/lnet/klnds/socklnd/socklnd.c:40:
21:59:08 include/linux/ktime.h:91:51: error: expected declaration specifiers or '...' before '(' token
21:59:08  #define ktime_to_timespec64(kt)  ns_to_timespec64((kt))
21:59:08                                                    ^
21:59:08 /var/lib/jenkins/workspace/lustre-master-next/arch/x86_64/build_type/client/distro/ubuntu1804/ib_stack/inkernel/BUILD/lustre-2.11.51_64_g90ddbe1/debian/tmp/modules-deb/usr_src/modules/lustre/libcfs/include/libcfs/linux/linux-time.h:168:33: note: in expansion of macro 'ktime_to_timespec64'
21:59:08  static inline struct timespec64 ktime_to_timespec64(ktime_t kt)
21:59:08                                  ^~~~~~~~~~~~~~~~~~~
21:59:08 In file included from include/linux/timer.h:6:0,

Comment by James A Simmons [ 10/May/18 ]

I fixed that in the latest patch : https://review.whamcloud.com/#/c/31790. Give it a try. Minh also a special ticket exist for Ubuntu 18 support.  I put my notes their for my experience so far.

Comment by Gerrit Updater [ 12/May/18 ]

Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/31790/
Subject: LU-10805 libcfs: timer_setup() API changes
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 782ff36d50c77652d0358dc2d0bbddf81fac8759

Comment by Peter Jones [ 12/May/18 ]

Landed for 2.12

Comment by Gerrit Updater [ 13/Sep/18 ]

Minh Diep (mdiep@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/33164
Subject: LU-10805 libcfs: timer_setup() API changes
Project: fs/lustre-release
Branch: b2_10
Current Patch Set: 1
Commit: 96e8f436dab0d23347cd1bb332d0979da859aecf

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