zfs-dkms fails to build on arm64 with PREEMPTION and BLK_CGROUP
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
zfs-linux (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Bionic |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
Unassigned | ||
Groovy |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
On arm64 with PREEMPTION and BLK_CGROUP enabled, preempt_
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/
/bin/bash: ./scripts/
make: [Makefile:1512: gitrev] Error 127 (ignored)
make all-recursive
make[1]: Entering directory '/var/lib/
Making all in module
make[2]: Entering directory '/var/lib/
list='icp lua'; for targetdir in $list; do \
make -C $targetdir; \
done
make[3]: Entering directory '/var/lib/
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/
make[3]: Entering directory '/var/lib/
mkdir -p setjmp
make[3]: Leaving directory '/var/lib/
make -C /lib/modules/
make[3]: Entering directory '/usr/src/
CC [M] /var/lib/
CC [M] /var/lib/
<SNIP>
CC [M] /var/lib/
CC [M] /var/lib/
CC [M] /var/lib/
CC [M] /var/lib/
LD [M] /var/lib/
Building modules, stage 2.
MODPOST 8 modules
FATAL: modpost: GPL-incompatible module zfs.ko uses GPL-only symbol 'preempt_
make[4]: *** [scripts/
make[3]: *** [Makefile:1647: modules] Error 2
make[3]: Leaving directory '/usr/src/
make[2]: *** [Makefile:30: modules] Error 2
make[2]: Leaving directory '/var/lib/
make[1]: *** [Makefile:807: all-recursive] Error 1
make[1]: Leaving directory '/var/lib/
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_
[Regression Potential]
Per comment in the kernel source, preempt_
==
[ INFO: suspicious RCU usage. ]
3.10.0-rc2+ #1 Not tainted
--
include/
other info that might help us debug this:
RCU used illegally from idle CPU! rcu_scheduler_
RCU used illegally from extended quiescent state!
2 locks held by cc1/63645:
#0: (&rq->lock)
#1: (rcu_read_
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-
000000000
ffffffff8
000000000
Call Trace:
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
------------[ cut here ]------------
summary: |
- zfs-dkms fails to build on arm64 with PREEMPT=y + zfs-dkms fails to build on arm64 with PREEMPTION and BLK_CGROUP |
description: | updated |
description: | updated |
tags: | added: patch |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Test packages: https:/ /launchpad. net/~juergh/ +archive/ ubuntu/ raspi