openzfs / zfs

OpenZFS on Linux and FreeBSD
https://openzfs.github.io/openzfs-docs
Other
10.55k stars 1.74k forks source link

0.8.4 dkms compilation error #10503

Closed kuon closed 2 years ago

kuon commented 4 years ago

I am trying to build the zfs dkms for the following kernel:

5.6.17-rt10-1-rt-bfq ( https://aur.archlinux.org/packages/linux-rt-bfq/ )

But it fails with this output:

DKMS make.log for zfs-0.8.4 for kernel 5.6.17-rt10-1-rt-bfq (x86_64)
ven 26 jun 2020 13:48:20 CEST
./scripts/make_gitrev.sh
make: [Makefile:1552: gitrev] Error 128 (ignored)
make  all-recursive
make[1]: Entering directory '/var/lib/dkms/zfs/0.8.4/build'
Making all in include
make[2]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include'
Making all in linux
make[3]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include/linux'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include/linux'
Making all in spl
make[3]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include/spl'
Making all in rpc
make[4]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include/spl/rpc'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include/spl/rpc'
Making all in sys
make[4]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include/spl/sys'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include/spl/sys'
make[4]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include/spl'
make[4]: Nothing to be done for 'all-am'.
make[4]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include/spl'
make[3]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include/spl'
Making all in sys
make[3]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include/sys'
Making all in fm
make[4]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include/sys/fm'
Making all in fs
make[5]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include/sys/fm/fs'
make[5]: Nothing to be done for 'all'.
make[5]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include/sys/fm/fs'
make[5]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include/sys/fm'
make[5]: Nothing to be done for 'all-am'.
make[5]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include/sys/fm'
make[4]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include/sys/fm'
Making all in fs
make[4]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include/sys/fs'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include/sys/fs'
Making all in crypto
make[4]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include/sys/crypto'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include/sys/crypto'
Making all in lua
make[4]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include/sys/lua'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include/sys/lua'
Making all in sysevent
make[4]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include/sys/sysevent'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include/sys/sysevent'
make[4]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include/sys'
make[4]: Nothing to be done for 'all-am'.
make[4]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include/sys'
make[3]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include/sys'
make[3]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/include'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include'
make[2]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/include'
Making all in rpm
make[2]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/rpm'
Making all in generic
make[3]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/rpm/generic'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/rpm/generic'
Making all in redhat
make[3]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/rpm/redhat'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/rpm/redhat'
make[3]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/rpm'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/rpm'
make[2]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/rpm'
Making all in module
make[2]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/module'
list='icp lua'; for targetdir in $list; do \
    make -C $targetdir; \
done
make[3]: Entering directory '/var/lib/dkms/zfs/0.8.4/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.4/build/module/icp'
make[3]: Entering directory '/var/lib/dkms/zfs/0.8.4/build/module/lua'
mkdir -p setjmp
make[3]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/module/lua'
make -C /usr/lib/modules/5.6.17-rt10-1-rt-bfq/build M=`pwd`  CONFIG_ZFS=m modules
make[3]: Entering directory '/usr/lib/modules/5.6.17-rt10-1-rt-bfq/build'
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/avl/avl.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/nvpair/nvpair.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zcommon/zfeature_common.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lapi.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/spl/spl-atomic.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/unicode/u8_textprep.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/illumos-crypto.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/abd.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/spl/spl-condvar.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zcommon/zfs_comutil.o
  LD [M]  /var/lib/dkms/zfs/0.8.4/build/module/avl/zavl.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/spl/spl-cred.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/api/kcf_cipher.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/spl/spl-err.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/spl/spl-generic.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/aggsum.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/spl/spl-kmem.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zcommon/zfs_deleg.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lauxlib.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/spl/spl-kmem-cache.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/unicode/uconv.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/api/kcf_digest.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/spl/spl-kobj.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/arc.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/nvpair/fnvpair.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zcommon/zfs_fletcher.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lbaselib.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/spl/spl-kstat.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/nvpair/nvpair_alloc_spl.o
  LD [M]  /var/lib/dkms/zfs/0.8.4/build/module/unicode/zunicode.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/nvpair/nvpair_alloc_fixed.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/api/kcf_mac.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/spl/spl-proc.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/spl/spl-procfs-list.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lcode.o
  LD [M]  /var/lib/dkms/zfs/0.8.4/build/module/nvpair/znvpair.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lcompat.o
In file included from /var/lib/dkms/zfs/0.8.4/build/module/spl/spl-procfs-list.c:26:
./include/linux/ww_mutex.h: In function ‘ww_mutex_destroy’:
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:113:2: error: implicit declaration of function ‘VERIFY3P’ [-Werror=implicit-function-declaration]
  113 |  VERIFY3P(mutex_owner(mp), ==, NULL);   \
      |  ^~~~~~~~
./include/linux/ww_mutex.h:358:2: note: in expansion of macro ‘mutex_destroy’
  358 |  mutex_destroy(&lock->base);
      |  ^~~~~~~~~~~~~
In file included from ./include/linux/export.h:43,
                 from ./include/linux/linkage.h:7,
                 from ./include/linux/kernel.h:8,
                 from ./include/linux/list.h:9,
                 from /var/lib/dkms/zfs/0.8.4/build/include/spl/sys/list.h:29,
                 from /var/lib/dkms/zfs/0.8.4/build/module/spl/spl-procfs-list.c:25:
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:63:43: error: ‘struct mutex’ has no member named ‘m_owner’; did you mean ‘owner’?
   63 | #define mutex_owner(mp)  (READ_ONCE((mp)->m_owner))
      |                                           ^~~~~~~
./include/linux/compiler.h:261:17: note: in definition of macro ‘__READ_ONCE’
  261 |  union { typeof(x) __val; char __c[1]; } __u;   \
      |                 ^
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:63:27: note: in expansion of macro ‘READ_ONCE’
   63 | #define mutex_owner(mp)  (READ_ONCE((mp)->m_owner))
      |                           ^~~~~~~~~
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:113:11: note: in expansion of macro ‘mutex_owner’
  113 |  VERIFY3P(mutex_owner(mp), ==, NULL);   \
      |           ^~~~~~~~~~~
./include/linux/ww_mutex.h:358:2: note: in expansion of macro ‘mutex_destroy’
  358 |  mutex_destroy(&lock->base);
      |  ^~~~~~~~~~~~~
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:63:43: error: ‘struct mutex’ has no member named ‘m_owner’; did you mean ‘owner’?
   63 | #define mutex_owner(mp)  (READ_ONCE((mp)->m_owner))
      |                                           ^~~~~~~
./include/linux/compiler.h:263:22: note: in definition of macro ‘__READ_ONCE’
  263 |   __read_once_size(&(x), __u.__c, sizeof(x));  \
      |                      ^
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:63:27: note: in expansion of macro ‘READ_ONCE’
   63 | #define mutex_owner(mp)  (READ_ONCE((mp)->m_owner))
      |                           ^~~~~~~~~
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:113:11: note: in expansion of macro ‘mutex_owner’
  113 |  VERIFY3P(mutex_owner(mp), ==, NULL);   \
      |           ^~~~~~~~~~~
./include/linux/ww_mutex.h:358:2: note: in expansion of macro ‘mutex_destroy’
  358 |  mutex_destroy(&lock->base);
      |  ^~~~~~~~~~~~~
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:63:43: error: ‘struct mutex’ has no member named ‘m_owner’; did you mean ‘owner’?
   63 | #define mutex_owner(mp)  (READ_ONCE((mp)->m_owner))
      |                                           ^~~~~~~
./include/linux/compiler.h:263:42: note: in definition of macro ‘__READ_ONCE’
  263 |   __read_once_size(&(x), __u.__c, sizeof(x));  \
      |                                          ^
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:63:27: note: in expansion of macro ‘READ_ONCE’
   63 | #define mutex_owner(mp)  (READ_ONCE((mp)->m_owner))
      |                           ^~~~~~~~~
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:113:11: note: in expansion of macro ‘mutex_owner’
  113 |  VERIFY3P(mutex_owner(mp), ==, NULL);   \
      |           ^~~~~~~~~~~
./include/linux/ww_mutex.h:358:2: note: in expansion of macro ‘mutex_destroy’
  358 |  mutex_destroy(&lock->base);
      |  ^~~~~~~~~~~~~
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:63:43: error: ‘struct mutex’ has no member named ‘m_owner’; did you mean ‘owner’?
   63 | #define mutex_owner(mp)  (READ_ONCE((mp)->m_owner))
      |                                           ^~~~~~~
./include/linux/compiler.h:265:30: note: in definition of macro ‘__READ_ONCE’
  265 |   __read_once_size_nocheck(&(x), __u.__c, sizeof(x)); \
      |                              ^
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:63:27: note: in expansion of macro ‘READ_ONCE’
   63 | #define mutex_owner(mp)  (READ_ONCE((mp)->m_owner))
      |                           ^~~~~~~~~
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:113:11: note: in expansion of macro ‘mutex_owner’
  113 |  VERIFY3P(mutex_owner(mp), ==, NULL);   \
      |           ^~~~~~~~~~~
./include/linux/ww_mutex.h:358:2: note: in expansion of macro ‘mutex_destroy’
  358 |  mutex_destroy(&lock->base);
      |  ^~~~~~~~~~~~~
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:63:43: error: ‘struct mutex’ has no member named ‘m_owner’; did you mean ‘owner’?
   63 | #define mutex_owner(mp)  (READ_ONCE((mp)->m_owner))
      |                                           ^~~~~~~
./include/linux/compiler.h:265:50: note: in definition of macro ‘__READ_ONCE’
  265 |   __read_once_size_nocheck(&(x), __u.__c, sizeof(x)); \
      |                                                  ^
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:63:27: note: in expansion of macro ‘READ_ONCE’
   63 | #define mutex_owner(mp)  (READ_ONCE((mp)->m_owner))
      |                           ^~~~~~~~~
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:113:11: note: in expansion of macro ‘mutex_owner’
  113 |  VERIFY3P(mutex_owner(mp), ==, NULL);   \
      |           ^~~~~~~~~~~
./include/linux/ww_mutex.h:358:2: note: in expansion of macro ‘mutex_destroy’
  358 |  mutex_destroy(&lock->base);
      |  ^~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.8.4/build/module/spl/spl-procfs-list.c:26:
/var/lib/dkms/zfs/0.8.4/build/include/spl/sys/mutex.h:113:28: error: expected expression before ‘==’ token
  113 |  VERIFY3P(mutex_owner(mp), ==, NULL);   \
      |                            ^~
./include/linux/ww_mutex.h:358:2: note: in expansion of macro ‘mutex_destroy’
  358 |  mutex_destroy(&lock->base);
      |  ^~~~~~~~~~~~~
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zcommon/zfs_fletcher_superscalar.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zcommon/zfs_fletcher_superscalar4.o
cc1: some warnings being treated as errors
make[5]: *** [scripts/Makefile.build:267: /var/lib/dkms/zfs/0.8.4/build/module/spl/spl-procfs-list.o] Error 1
make[5]: *** Waiting for unfinished jobs....
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zcommon/zfs_namecheck.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lcorolib.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zcommon/zfs_prop.o
make[4]: *** [scripts/Makefile.build:505: /var/lib/dkms/zfs/0.8.4/build/module/spl] Error 2
make[4]: *** Waiting for unfinished jobs....
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zcommon/zfs_uio.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/api/kcf_miscapi.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zcommon/zpool_prop.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lctype.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zcommon/zprop_common.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zcommon/zfs_fletcher_intel.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zcommon/zfs_fletcher_sse.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/api/kcf_ctxops.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zcommon/zfs_fletcher_avx512.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/core/kcf_callprov.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/ldebug.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/core/kcf_prov_tabs.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/core/kcf_sched.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/blkptr.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/bplist.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/core/kcf_mech_tabs.o
  LD [M]  /var/lib/dkms/zfs/0.8.4/build/module/zcommon/zcommon.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/core/kcf_prov_lib.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/ldo.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/bpobj.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/spi/kcf_spi.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/cityhash.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/io/aes.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lfunc.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dbuf.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/io/edonr_mod.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dbuf_stats.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lgc.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/llex.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lmem.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lobject.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lopcodes.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/io/sha1_mod.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/io/sha2_mod.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/io/skein_mod.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/os/modhash.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lparser.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lstate.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/os/modconf.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lstring.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/modes/cbc.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/modes/ccm.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/modes/ctr.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/modes/ecb.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/bptree.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lstrlib.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/modes/gcm.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/modes/gcm_generic.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/ltable.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/ltablib.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/modes/modes.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/aes/aes_impl_generic.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/bqueue.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/aes/aes_impl.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/aes/aes_modes.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/ltm.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/edonr/edonr.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lvm.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/sha1/sha1.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/sha2/sha2.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dataset_kstats.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/lzio.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/skein/skein.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/skein/skein_block.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/skein/skein_iv.o
  AS [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/setjmp/setjmp.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/asm-x86_64/aes/aeskey.o
  AS [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/asm-x86_64/aes/aes_amd64.o
  AS [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/asm-x86_64/aes/aes_aesni.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/ddt.o
  AS [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/asm-x86_64/modes/gcm_pclmulqdq.o
  AS [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/asm-x86_64/sha1/sha1-x86_64.o
  AS [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/asm-x86_64/sha2/sha256_impl.o
/var/lib/dkms/zfs/0.8.4/build/module/icp/asm-x86_64/sha1/sha1-x86_64.o: warning: objtool: sha1_block_data_order()+0x11: unsupported stack pointer realignment
  AS [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/asm-x86_64/sha2/sha512_impl.o
/var/lib/dkms/zfs/0.8.4/build/module/icp/asm-x86_64/sha2/sha256_impl.o: warning: objtool: SHA256TransformBlocks()+0x19: unsupported stack pointer realignment
  AS [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/asm-x86_64/modes/aesni-gcm-x86_64.o
/var/lib/dkms/zfs/0.8.4/build/module/icp/asm-x86_64/sha2/sha512_impl.o: warning: objtool: SHA512TransformBlocks()+0x1c: unsupported stack pointer realignment
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/ddt_zap.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dmu.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dmu_diff.o
  AS [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/asm-x86_64/modes/ghash-x86_64.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/modes/gcm_pclmulqdq.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/aes/aes_impl_aesni.o
  LD [M]  /var/lib/dkms/zfs/0.8.4/build/module/lua/zlua.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/algs/aes/aes_impl_x86-64.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dmu_object.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dmu_objset.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dmu_recv.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dmu_send.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dmu_traverse.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dmu_tx.o
  LD [M]  /var/lib/dkms/zfs/0.8.4/build/module/icp/icp.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dmu_zfetch.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dnode.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dnode_sync.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dsl_dataset.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dsl_deadlist.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dsl_deleg.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dsl_bookmark.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dsl_dir.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dsl_crypt.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dsl_pool.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dsl_prop.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dsl_scan.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dsl_synctask.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/edonr_zfs.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/fm.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/gzip.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/hkdf.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/lzjb.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/lz4.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/metaslab.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/mmp.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/multilist.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/pathname.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/policy.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/range_tree.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/refcount.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/rrwlock.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/sa.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/sha256.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/skein_zfs.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/spa.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/spa_boot.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/spa_checkpoint.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/spa_config.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/spa_errlog.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/spa_history.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/spa_misc.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/spa_stats.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/space_map.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/space_reftree.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/txg.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/trace.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/uberblock.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/unique.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_cache.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_disk.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_file.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_indirect.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_indirect_births.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_indirect_mapping.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_initialize.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_label.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_mirror.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_missing.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_queue.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_raidz.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_raidz_math.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_raidz_math_scalar.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_removal.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_root.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_trim.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zap.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zap_leaf.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zap_micro.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zcp.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zcp_get.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zcp_global.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zcp_iter.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zcp_synctask.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfeature.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_acl.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_byteswap.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_ctldir.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_debug.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_dir.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_fm.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_fuid.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_ioctl.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_log.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_onexit.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_ratelimit.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_replay.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_rlock.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_sa.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_sysfs.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_vfsops.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_vnops.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs_znode.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zil.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zio.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zio_checksum.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zio_compress.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zio_crypt.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zio_inject.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zle.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zpl_ctldir.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zpl_export.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zpl_file.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zpl_inode.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zpl_super.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zpl_xattr.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zrlock.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zthr.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zvol.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dsl_destroy.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/dsl_userhold.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/qat.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/qat_compress.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/qat_crypt.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_raidz_math_sse2.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_raidz_math_ssse3.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_raidz_math_avx2.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_raidz_math_avx512f.o
  CC [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/vdev_raidz_math_avx512bw.o
  LD [M]  /var/lib/dkms/zfs/0.8.4/build/module/zfs/zfs.o
make[3]: *** [Makefile:1695: /var/lib/dkms/zfs/0.8.4/build/module] Error 2
make[3]: Leaving directory '/usr/lib/modules/5.6.17-rt10-1-rt-bfq/build'
make[2]: *** [Makefile:30: modules] Error 2
make[2]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build/module'
make[1]: *** [Makefile:841: all-recursive] Error 1
make[1]: Leaving directory '/var/lib/dkms/zfs/0.8.4/build'
make: *** [Makefile:710: all] Error 2

I don't understand why, because VERIFY3P is defined in sys/debug.h ( /var/lib/dkms/zfs/0.8.4/build/include/spl/sys/debug.h)

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/10.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d --with-isl --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-install-libiberty --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-libunwind-exceptions --disable-werror gdc_include_dir=/usr/include/dlang/gdc
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.1.0 (GCC) 
joshuarubin commented 4 years ago

Having the same issue on arch with 5.6.19-rt11-1-rt using the linux-rt aur package

rugubara commented 4 years ago

I think the culprit is /var/tmp/portage/sys-fs/zfs-kmod-0.8.4-r1/work/zfs-0.8.4/include/spl/sys/mutex.h:63:41: error: ‘struct mutex’ has no member named ‘m_owner’ 63 | #define mutex_owner(mp) (READ_ONCE((mp)->m_owner)) | ^~ It seems that include/linux/mutex.h in the kernel has been modified and when CONFIG_PREEMT_RT is defined, the struct mutex is defined from include/linux/mutex_rt.h in a very reduced form.

mutex.h:

#ifdef CONFIG_PREEMPT_RT
# include <linux/mutex_rt.h>
#else

/*
 * Simple, straightforward mutexes with strict semantics:
 *
 * - only one task can hold the mutex at a time
 * - only the owner can unlock the mutex
 * - multiple unlocks are not permitted
 * - recursive locking is not permitted
 * - a mutex object must be initialized via the API
 * - a mutex object must not be initialized via memset or copying
 * - task may not exit with mutex held
 * - memory areas where held locks reside must not be freed
 * - held mutexes must not be reinitialized
 * - mutexes may not be used in hardware or software interrupt
 *   contexts such as tasklets and timers
 *
 * These semantics are fully enforced when DEBUG_MUTEXES is
 * enabled. Furthermore, besides enforcing the above rules, the mutex
 * debugging code also implements a number of additional features
 * that make lock debugging easier and faster:
 *
 * - uses symbolic names of mutexes, whenever they are printed in debug output
 * - point-of-acquire tracking, symbolic lookup of function names
 * - list of all locks held in the system, printout of them
 * - owner tracking
 * - detects self-recursing locks and prints out all relevant info
 * - detects multi-task circular deadlocks and prints out all affected
 *   locks and tasks (and only those tasks)
 */
struct mutex {
        atomic_long_t           owner;
        spinlock_t              wait_lock;
#ifdef CONFIG_MUTEX_SPIN_ON_OWNER
        struct optimistic_spin_queue osq; /* Spinner MCS lock */
#endif
        struct list_head        wait_list;
#ifdef CONFIG_DEBUG_MUTEXES
        void                    *magic;
#endif
#ifdef CONFIG_DEBUG_LOCK_ALLOC
        struct lockdep_map      dep_map;
#endif
};

mutex_rt.h:

struct mutex {
        struct rt_mutex         lock;
#ifdef CONFIG_DEBUG_LOCK_ALLOC
        struct lockdep_map      dep_map;
#endif
};

The linux-rt-devel git contains an unmodified mutex.h version:

struct mutex {
        atomic_long_t           owner;
        spinlock_t              wait_lock;
#ifdef CONFIG_MUTEX_SPIN_ON_OWNER
        struct optimistic_spin_queue osq; /* Spinner MCS lock */
#endif
        struct list_head        wait_list;
#ifdef CONFIG_DEBUG_MUTEXES
        void                    *magic;
#endif
#ifdef CONFIG_DEBUG_LOCK_ALLOC
        struct lockdep_map      dep_map;
#endif
};

/*
 * This is the control structure for tasks blocked on mutex,
 * which resides on the blocked task's kernel stack:
 */
struct mutex_waiter {
        struct list_head        list;
        struct task_struct      *task;
        struct ww_acquire_ctx   *ww_ctx;
#ifdef CONFIG_DEBUG_MUTEXES
        void                    *magic;
#endif
};

Although, I observe that all recent RT kernels I compiled also had this mutex_rt.h and I have the kernel 5.6.10-rt5 running with zfs-kmod-0.8.4-r0.

-r0 and -r1 packages have negligible differences related to Gentoo package management system. They are both pulling zfs-kmod-0.8.4 without any additional patches.

I confirm that I can build zfs-kmod against linux-5.6.10-rt5 and linux-5.6.14-rt7 but I fail with linux-5.6.17-rt10

rugubara commented 4 years ago

I attach the diff for .config. all changes are silent and compulsory by make oldconfig script

home64 /usr/src/linux # diff -u ../linux-5.6.14-rt7/.config .config
--- ../linux-5.6.14-rt7/.config2020-08-19 22:14:48.186694577 +0300
+++ .config 2020-08-19 22:18:27.806446945 +0300
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.6.14-rt Kernel Configuration
+# Linux/x86 5.6.17-rt Kernel Configuration
 #

 #
@@ -755,8 +755,12 @@
 CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
 # end of GCOV-based kernel profiling

-CONFIG_PLUGIN_HOSTCC=""
+CONFIG_PLUGIN_HOSTCC="g++"
 CONFIG_HAVE_GCC_PLUGINS=y
+CONFIG_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
+# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
+# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
 # end of General architecture-dependent options

 CONFIG_RT_MUTEXES=y
@@ -835,6 +839,7 @@
 CONFIG_QUEUED_SPINLOCKS=y
 CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
 CONFIG_QUEUED_RWLOCKS=y
+CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
 CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
 CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
 CONFIG_FREEZER=y
@@ -1992,6 +1997,7 @@
 # CONFIG_PATA_LEGACY is not set
 CONFIG_MD=y
 # CONFIG_BLK_DEV_MD is not set
+# CONFIG_BCACHE is not set
 CONFIG_BLK_DEV_DM_BUILTIN=y
 CONFIG_BLK_DEV_DM=y
 # CONFIG_DM_DEBUG is not set
@@ -4687,6 +4693,10 @@
 # Memory initialization
 #
 CONFIG_INIT_STACK_NONE=y
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL is not set
+# CONFIG_GCC_PLUGIN_STACKLEAK is not set
 # CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
 # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
 # end of Memory initialization
rugubara commented 4 years ago

Since I identified the good and bad tags, I did the bisect. It landed on:

9a193af85af7a9b3493fe2cbf5bcacd3b17deb23 is the first bad commit
commit 9a193af85af7a9b3493fe2cbf5bcacd3b17deb23
Author: Ahmed S. Darwish <a.darwish@linutronix.de>
Date:   Mon Jun 8 02:57:15 2020 +0200

    seqlock: Extend seqcount API with associated locks

    A sequence counter write side critical section must be protected by some
    form of locking to serialize writers. If the serialization primitive is
    not disabling preemption implicitly, preemption has to be explicitly
    disabled before entering the write side critical section.

    There is no built-in debugging mechanism to verify that the lock used
    for writer serialization is held and preemption is disabled. Some usage
    sites like dma-buf have explicit lockdep checks for the writer-side
    lock, but this covers only a small portion of the sequence counter usage
    in the kernel.

    Add new sequence counter types which allows to associate a lock to the
    sequence counter at initialization time. The seqcount API functions are
    extended to provide appropriate lockdep assertions depending on the
    seqcount/lock type.

    For sequence counters with associated locks that do not implicitly
    disable preemption, preemption protection is enforced in the sequence
    counter write side functions. This removes the need to explicitly add
    preempt_disable/enable() around the write side critical sections: the
    write_begin/end() functions for these new sequence counter types
    automatically do this.

    Introduce the following seqcount types with associated locks:

         seqcount_spinlock_t
         seqcount_raw_spinlock_t
         seqcount_rwlock_t
         seqcount_mutex_t
         seqcount_ww_mutex_t

    Extend the seqcount read and write functions to branch out to the
    specific seqcount_LOCKTYPE_t implementation at compile-time. This avoids
    kernel API explosion per each new seqcount_LOCKTYPE_t added. Add such
    compile-time type detection logic into a new, internal, seqlock header.

    Document the proper seqcount_LOCKTYPE_t usage, and rationale, at
    Documentation/locking/seqlock.rst.

    If lockdep is disabled, this lock association is compiled out and has
    neither storage size nor runtime overhead.

    Signed-off-by: Ahmed S. Darwish <a.darwish@linutronix.de>
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

 Documentation/locking/seqlock.rst      |  64 +++++-
 MAINTAINERS                            |   2 +-
 include/linux/seqlock.h                | 354 ++++++++++++++++++++++++++++-----
 include/linux/seqlock_types_internal.h | 187 +++++++++++++++++
 4 files changed, 555 insertions(+), 52 deletions(-)
 create mode 100644 include/linux/seqlock_types_internal.h

I cloned the linux-rt-devel

rugubara commented 4 years ago

I missed the fact that not every git commit in kernel is buildable. Some commits refuse to build the kernel so please disregard my previous git bisect result. Doing another bisect now with a corrected script.

rugubara commented 4 years ago
There are only 'skip'ped commits left to test.
The first bad commit could be any of:
7661b6a8d21f577fa7c0462bfc2bd52c1ded650b
a068dfcf5c8c7572a836dd63354d808b238cdda3
ca9dcef5342284cae6acf2d6a7a17b73c60e31aa
cb167d22bc247d72a10f4496f129624b81ab00dc
91008b6fb0311c7665d71671abfc32782c02f0b8
c0ec30a148906827091cb01d9cd5a692aee63ce7
43fb0dd9b9e0916d636b7e7c23556f7cdace1385
d84a737eaca84b592ca30cd0947d24a914dafdcf
9f087bac2d9b3be177dd0207b57659fa81403395
c07c01230d3f027e1f6f5b8025bfc77910149cf2
00b57404b507dc5fd4597ace03cd4133ba8a5fa1
f78bb7e0b5946a3e278fbbdd8a92222f490ed1ea
0cd32a8017b46a11b3f66abfb8655f2c4995d6ab
8b02cb9102914f663fc42c6484605c1f554101d6
4d7a7901686f077e9587d2d37d902c3149fa6b32
9a193af85af7a9b3493fe2cbf5bcacd3b17deb23
4a90fbefff00ade907bad97c44c448976943b665
We cannot bisect more!
bisect run cannot continue any more
PF16W6Y2 /usr/src/linux #
stale[bot] commented 3 years ago

This issue has been automatically marked as "stale" because it has not had any activity for a while. It will be closed in 90 days if no further activity occurs. Thank you for your contributions.