[sparc64] kernel OOPS with gcc 7.1 / 7.2
Anatoly Pugachev
matorola at gmail.com
Tue Aug 15 18:50:45 UTC 2017
Hello.
Together with Dmitry (ldv) , we've discovered that running test suite
from strace produces kernel OOPS, when kernel is compiled with gcc 7.1
or with gcc 7.2 , but not with gcc 6 :
$ git clone https://github.com/strace/strace.git
ttip:~/strace$ ./bootstrap
ttip:~/strace$ ./configure && make -j
ttip:~/strace$ cd tests-m32 && make mq
ttip:~/strace/tests-m32$ ./mq
Killed
kernel log:
[ 61.839563] Unable to handle kernel NULL pointer dereference
[ 61.839649] tsk->{mm,active_mm}->context = 000000000000040e
[ 61.839686] tsk->{mm,active_mm}->pgd = fff8004099e06000
[ 61.839721] \|/ ____ \|/
[ 61.839721] "@'/ .. \`@"
[ 61.839721] /_| \__/ |_\
[ 61.839721] \__U_/
[ 61.839879] mq(937): Oops [#1]
[ 61.839909] CPU: 10 PID: 937 Comm: mq Not tainted
4.13.0-rc5-00009-gfcd07350007b #412
[ 61.839958] task: fff80040968ed940 task.stack: fff800409c26c000
[ 61.839997] TSTATE: 0000004411001600 TPC: 000000000069fb2c TNPC:
000000000069fb30 Y: 000002f7 Not tainted
[ 61.840062] TPC: <current_umask+0xc/0x20>
[ 61.840091] g0: fff8004096588400 g1: 00000000000143c0 g2:
000000000000000a g3: 0000000000000000
[ 61.840143] g4: 0000000000000000 g5: 0000000000000000 g6:
fff800409c26c000 g7: 000000000000000a
[ 61.840196] o0: 0000000000000000 o1: 0000000000014000 o2:
0000000000000000 o3: 000000000000000a
[ 61.840247] o4: 0000000000000001 o5: 0000000000000000 sp:
fff800409c26f3e1 ret_pc: 00000000007072d0
[ 61.840308] RPC: <mq_attr_ok.isra.1+0x90/0x100>
[ 61.840341] l0: 00000000000000da l1: 00000000f7c87bf0 l2:
00000000f7c34000 l3: 0000000000000000
[ 61.840395] l4: 00000000f7c86100 l5: 0000000000000000 l6:
000000017c96f087 l7: 00000000f7c86000
[ 61.840450] i0: 0000000000000000 i1: 0000000000c4e924 i2:
fff800409c26fd58 i3: fff800409c26fd60
[ 61.840504] i4: 0000000000014000 i5: 0000000000000014 i6:
fff800409c26f491 i7: 00000000007074fc
[ 61.840560] I7: <do_mq_open+0x1bc/0x320>
[ 61.840590] Call Trace:
[ 61.840614] [00000000007074fc] do_mq_open+0x1bc/0x320
[ 61.840652] [000000000070839c] compat_SyS_mq_open+0x5c/0xa0
[ 61.840694] [00000000004061d4] linux_sparc_syscall32+0x34/0x60
[ 61.840734] Disabling lock debugging due to kernel taint
[ 61.840756] Caller[00000000007074fc]: do_mq_open+0x1bc/0x320
[ 61.840778] Caller[000000000070839c]: compat_SyS_mq_open+0x5c/0xa0
[ 61.840800] Caller[00000000004061d4]: linux_sparc_syscall32+0x34/0x60
[ 61.840824] Caller[00000000f7c3c7fc]: 0xf7c3c7fc
[ 61.840842] Instruction DUMP:
[ 61.840846] 9de3bf50
[ 61.840860] 01000000
[ 61.840872] 01000000
[ 61.840885] <c2592720>
[ 61.840897] 81cfe008
[ 61.840910] d0406068
[ 61.840922] 01000000
[ 61.840935] 01000000
[ 61.840947] 9de3bf30
[ 61.840960]
And if kernel is compiled with gcc 6 , test ends in other way:
ttip:~$ cd strace/tests-m32/ && ./mq
mq_open("strace-mq-910.sample", O_RDONLY|O_CREAT, 0700, NULL) = 0
mq_getsetattr(0, NULL, {mq_flags=0, mq_maxmsg=10, mq_msgsize=8192,
mq_curmsgs=0}) = 0
mq_getsetattr(0, {mq_flags=0, mq_maxmsg=10, mq_msgsize=8192,
mq_curmsgs=0}, NULL) = 0
mq_unlink("strace-mq-910.sample") = 0
+++ exited with 0 +++
and nothing is printed in kernel logs.
versions of used gcc and kernels:
gcc 6 compiled kernel is git 4.13.0-rc5
gcc 7.2 compiled kernel is git 4.13.0-rc5-00009-gfcd07350007b
$ gcc-6 -v
Using built-in specs.
COLLECT_GCC=gcc-6
COLLECT_LTO_WRAPPER=/usr/lib/gcc/sparc64-linux-gnu/6/lto-wrapper
Target: sparc64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian
6.4.0-3' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs
--enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++
--prefix=/usr --program-suffix=-6 --program-prefix=sparc64-linux-gnu-
--enable-shared --enable-linker-build-id --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --libdir=/usr/lib
--enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object
--disable-libquadmath --enable-plugin --enable-default-pie
--with-system-zlib --disable-browser-plugin --enable-java-awt=gtk
--enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-sparc64/jre
--enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-sparc64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-sparc64
--with-arch-directory=sparc64
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc=auto
--enable-multiarch --enable-targets=all --with-cpu-32=ultrasparc
--with-long-double-128 --enable-multilib --enable-checking=release
--build=sparc64-linux-gnu --host=sparc64-linux-gnu
--target=sparc64-linux-gnu
Thread model: posix
gcc version 6.4.0 20170805 (Debian 6.4.0-3)
$ gcc-7 -v
Using built-in specs.
COLLECT_GCC=gcc-7
COLLECT_LTO_WRAPPER=/usr/lib/gcc/sparc64-linux-gnu/7/lto-wrapper
Target: sparc64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian
7.1.0-13' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs
--enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr
--with-gcc-major-version-only --program-suffix=-7
--program-prefix=sparc64-linux-gnu- --enable-shared
--enable-linker-build-id --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --libdir=/usr/lib
--enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object
--disable-libquadmath --enable-plugin --enable-default-pie
--with-system-zlib --enable-objc-gc=auto --enable-multiarch
--disable-werror --with-cpu-32=ultrasparc --enable-targets=all
--with-long-double-128 --enable-multilib --enable-checking=release
--build=sparc64-linux-gnu --host=sparc64-linux-gnu
--target=sparc64-linux-gnu
Thread model: posix
gcc version 7.1.0 (Debian 7.1.0-13)
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/gcc72/libexec/gcc/sparc64-unknown-linux-gnu/7.2.0/lto-wrapper
Target: sparc64-unknown-linux-gnu
Configured with: ../gcc-7.2.0/configure --prefix=/opt/gcc72
Thread model: posix
gcc version 7.2.0 (GCC)
Machine is LDOM debian sid sparc64.
More information about the Strace-devel
mailing list