** Description changed:

  [Impact]
  
  On arm64 with PREEMPTION and BLK_CGROUP enabled,
  preempt_schedule_notrace is being pulled in which is a GPL-only function
  so the DKMS build fails:
  
  DKMS make.log for zfs-0.8.3 for kernel 5.4.0-1015-raspi (aarch64)
  Tue Aug 18 06:30:17 UTC 2020
  ./scripts/make_gitrev.sh
  /bin/bash: ./scripts/make_gitrev.sh: No such file or directory
  make: [Makefile:1512: gitrev] Error 127 (ignored)
  make  all-recursive
  make[1]: Entering directory '/var/lib/dkms/zfs/0.8.3/build'
  Making all in module
  make[2]: Entering directory '/var/lib/dkms/zfs/0.8.3/build/module'
  list='icp lua'; for targetdir in $list; do \
          make -C $targetdir; \
  done
  make[3]: Entering directory '/var/lib/dkms/zfs/0.8.3/build/module/icp'
  mkdir -p api core spi io os algs algs/aes algs/edonr algs/modes algs/sha1 
algs/sha2 algs/skein asm-x86_64 asm-x86_64/aes asm-x86_64/modes asm-x86_64/sha1 
asm-x86_64/sha2 asm-i386 asm-generic
  make[3]: Leaving directory '/var/lib/dkms/zfs/0.8.3/build/module/icp'
  make[3]: Entering directory '/var/lib/dkms/zfs/0.8.3/build/module/lua'
  mkdir -p setjmp
  make[3]: Leaving directory '/var/lib/dkms/zfs/0.8.3/build/module/lua'
  make -C /lib/modules/5.4.0-1015-raspi/build M=`pwd`  CONFIG_ZFS=m modules
  make[3]: Entering directory '/usr/src/linux-headers-5.4.0-1015-raspi'
    CC [M]  /var/lib/dkms/zfs/0.8.3/build/module/avl/avl.o
    CC [M]  /var/lib/dkms/zfs/0.8.3/build/module/nvpair/nvpair.o
  
  <SNIP>
  
    CC [M]  /var/lib/dkms/zfs/0.8.3/build/module/zfs/qat_compress.o
    CC [M]  /var/lib/dkms/zfs/0.8.3/build/module/zfs/qat_crypt.o
    CC [M]  
/var/lib/dkms/zfs/0.8.3/build/module/zfs/vdev_raidz_math_aarch64_neon.o
    CC [M]  
/var/lib/dkms/zfs/0.8.3/build/module/zfs/vdev_raidz_math_aarch64_neonx2.o
    LD [M]  /var/lib/dkms/zfs/0.8.3/build/module/zfs/zfs.o
    Building modules, stage 2.
    MODPOST 8 modules
  FATAL: modpost: GPL-incompatible module zfs.ko uses GPL-only symbol 
'preempt_schedule_notrace'
  make[4]: *** [scripts/Makefile.modpost:94: __modpost] Error 1
  make[3]: *** [Makefile:1647: modules] Error 2
  make[3]: Leaving directory '/usr/src/linux-headers-5.4.0-1015-raspi'
  make[2]: *** [Makefile:30: modules] Error 2
  make[2]: Leaving directory '/var/lib/dkms/zfs/0.8.3/build/module'
  make[1]: *** [Makefile:807: all-recursive] Error 1
  make[1]: Leaving directory '/var/lib/dkms/zfs/0.8.3/build'
  make: *** [Makefile:676: all] Error 2
  
  Note that Ubuntu currently doesn't support/provide a preemptible arm64
  kernel so this hasn't been a problem so far.
  
  [Test Case]
  
  Install zfs-dkms on an arm64 system that has a PREEMPT kernel installed.
  
  [Fix]
  
  Redefine preempt_schedule_notrace() to preempt_schedule() in the ZFS
  module (only for arm64 and if PREEMPTION and BLK_CGROUP are both
  enabled). preempt_schedule() is not a GPL symbol.
  
  [Regression Potential]
  
  Per comment in the kernel source, preempt_schedule_notrace() is required
- when tracing is enabled. As long as tracing is disabled, this 'fix'
- should not cause any problems. Problems due to this change would
- manifest themselves as TBD.
+ when tracing is enabled. As long as tracing is not enabled, this 'fix'
+ should not cause any issues. Problems due to this change could show up
+ as kernel splats like:
+ 
+      ===============================
+      [ INFO: suspicious RCU usage. ]
+      3.10.0-rc2+ #1 Not tainted
+      -------------------------------
+      include/linux/rcupdate.h:771 rcu_read_lock() used illegally while idle!
+      other info that might help us debug this:
+      RCU used illegally from idle CPU! rcu_scheduler_active = 1, debug_locks 
= 0
+      RCU used illegally from extended quiescent state!
+      2 locks held by cc1/63645:
+       #0:  (&rq->lock){-.-.-.}, at: [<ffffffff816b39fd>] __schedule+0xed/0x9b0
+       #1:  (rcu_read_lock){.+.+..}, at: [<ffffffff8109d645>] 
cpuacct_charge+0x5/0x1f0
+     
+      CPU: 1 PID: 63645 Comm: cc1 Not tainted 3.10.0-rc2+ #1 [loadavg: 40.57 
27.55 13.39 25/277 64369]
+      Hardware name: Gigabyte Technology Co., Ltd. 
GA-MA78GM-S2H/GA-MA78GM-S2H, BIOS F12a 04/23/2010
+       0000000000000000 ffff88010f78fcf8 ffffffff816ae383 ffff88010f78fd28
+       ffffffff810b698d ffff88011c092548 000000000023d073 ffff88011c092500
+       0000000000000001 ffff88010f78fd60 ffffffff8109d7c5 ffffffff8109d645
+      Call Trace:
+       [<ffffffff816ae383>] dump_stack+0x19/0x1b
+       [<ffffffff810b698d>] lockdep_rcu_suspicious+0xfd/0x130
+       [<ffffffff8109d7c5>] cpuacct_charge+0x185/0x1f0
+       [<ffffffff8109d645>] ? cpuacct_charge+0x5/0x1f0
+       [<ffffffff8108dffc>] update_curr+0xec/0x240
+       [<ffffffff8108f528>] put_prev_task_fair+0x228/0x480
+       [<ffffffff816b3a71>] __schedule+0x161/0x9b0
+       [<ffffffff816b4721>] preempt_schedule+0x51/0x80
+       [<ffffffff816b4800>] ? __cond_resched_softirq+0x60/0x60
+       [<ffffffff816b6824>] ? retint_careful+0x12/0x2e
+       [<ffffffff810ff3cc>] ftrace_ops_control_func+0x1dc/0x210
+       [<ffffffff816be280>] ftrace_call+0x5/0x2f
+       [<ffffffff816b681d>] ? retint_careful+0xb/0x2e
+       [<ffffffff816b4805>] ? schedule_user+0x5/0x70
+       [<ffffffff816b4805>] ? schedule_user+0x5/0x70
+       [<ffffffff816b6824>] ? retint_careful+0x12/0x2e
+      ------------[ cut here ]------------

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1892001

Title:
  zfs-dkms fails to build on arm64 with PREEMPTION and BLK_CGROUP

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zfs-linux/+bug/1892001/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to