** 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