Arm64 stack issues (was Re: FreeBSD status for/on ODroid-C2?)

Tom Vijlbrief tvijlbrief at gmail.com
Sat Jan 28 22:18:09 UTC 2017


Note that on the pine64 the network interface hangs from time to time and I
get a core dump with very low frequency from long running processes, eg the
shell that invokes "make world". Note that I had similar issues on the
ODroid-C2.

Currently rebuilding world without MALLOC_PRODUCTION.

The arm64 port is getting close to working 100%, just a last few glitches.

Op 22:03 ZA 28 Jan 2017 schreef Mark Millard <markmi at dsl-only.net>:

> [About: "gic0: Spurious interrupt detected" on armv6 as well.]
>
> On 2017-Jan-28, at 6:43 AM, Tom Vijlbrief <tvijlbrief at gmail.com> wrote:
>
> > Did a build/install world/kernel with r312916 and MALLOC_PRODUCTION=YES
> on
> > a pine64, removed /etc/malloc.conf, rebooted
> >
> > and I am now rebuilding the python2 port without problems so far (except
> > the "gic0: Spurious interrupt detected" messages which reappeared shortly
> > after my previous post)
>
> While very rare, I have seen the gic0 notices on armv6 (e.g., a bpim3)
> during large builds (with -j 4). Recently I got a:
>
> gic0: Spurious interrupt detected: last irq: 29 on CPU1
>
> on:
>
> # uname -apKU
> FreeBSD bpim3 12.0-CURRENT FreeBSD 12.0-CURRENT #0 r312726M: Tue Jan 24
> 20:57:48 PST 2017     markmi at FreeBSDx64:/usr/obj/bpim3_clang/arm.armv6/usr/src/sys/BPIM3-NODBG
> arm armv6 1200020 1200020
>
> while building devel/gcc6 (via a full bootstrap) via -j 4 .
>
> This is from a non-debug buildworld buildkernel context and has
> MALLOC_PRODUCTION=
> in /etc/make.conf . No /etc/malloc.conf present. I do use -mcpu=cortex-a7 .
>
>
>
> Details if you care:
>
> # more /usr/src/sys/arm/conf/BPIM3-NODBG
> #
> # BPIM3 -- Custom configuration for the Banana Pi M3
> #
>
> include "GENERIC"
>
> ident   BPIM3-NODBG
>
> makeoptions     DEBUG=-g                # Build kernel with gdb(1) debug
> symbols
>
> options         ALT_BREAK_TO_DEBUGGER
>
> options         KDB                     # Enable kernel debugger support
>
> # For minimum debugger support (stable branch) use:
> options         KDB_TRACE               # Print a stack trace for a panic
> options         DDB                     # Enable the kernel debugger
>
> # Extra stuff:
> #options        VERBOSE_SYSINIT         # Enable verbose sysinit messages
> #options        BOOTVERBOSE=1
> #options        BOOTHOWTO=RB_VERBOSE
> #options        KTR
> #options        KTR_MASK=KTR_TRAP
> ##options       KTR_CPUMASK=0xF
> #options        KTR_VERBOSE
>
> # Disable any extra checking for. . .
> nooptions       DEADLKRES               # Enable the deadlock resolver
> nooptions       INVARIANTS              # Enable calls of extra sanity
> checking
> nooptions       INVARIANT_SUPPORT       # Extra sanity checks of internal
> structures, required by INVARIANTS
> nooptions       WITNESS                 # Enable checks to detect
> deadlocks and cycles
> nooptions       WITNESS_SKIPSPIN        # Don't run witness on spinlocks
> for speed
> nooptions       DIAGNOSTIC
>
>
> It was a from cross build for buildworld buildkernel :
> (I've not checked on lldb builds linking recently.)
>
> # more ~/src.configs/src.conf.bpim3-clang-bootstrap.amd64-host
> TO_TYPE=armv6
> #
> KERNCONF=BPIM3-NODBG
> TARGET=arm
> .if ${.MAKE.LEVEL} == 0
> TARGET_ARCH=${TO_TYPE}
> .export TARGET_ARCH
> .endif
> #
> WITH_CROSS_COMPILER=
> WITHOUT_SYSTEM_COMPILER=
> #
> #CPUTYPE=soft
> WITH_LIBCPLUSPLUS=
> WITH_BINUTILS_BOOTSTRAP=
> WITH_CLANG_BOOTSTRAP=
> WITH_CLANG=
> WITH_CLANG_IS_CC=
> WITH_CLANG_FULL=
> WITH_CLANG_EXTRAS=
> WITH_LLD=
> #
> # Linking lldb fails for armv6(/v7)
> WITHOUT_LLDB=
> #
> WITH_BOOT=
> WITHOUT_LIB32=
> WITHOUT_LIBSOFT=
> #
> WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=
> WITHOUT_GCC_BOOTSTRAP=
> WITHOUT_GCC=
> WITHOUT_GCC_IS_CC=
> WITHOUT_GNUCXX=
> #
> NO_WERROR=
> #WERROR=
> MALLOC_PRODUCTION=
> #
> WITH_REPRODUCIBLE_BUILD=
> WITH_DEBUG_FILES=
> #
> XCFLAGS+= -mcpu=cortex-a7
> XCXXFLAGS+= -mcpu=cortex-a7
> # There is no XCPPFLAGS but XCPP gets XCFLAGS content.
>
>
> Used for buildworld buildkernel :
>
> # more ~/src.configs/make.conf
> #MALLOC_PRODUCTION=
> #NO_WERROR=
> #WERROR=
> CFLAGS.gcc+= -v
>
>
> Used for port builds:
>
> # more /etc/make.conf
> WANT_QT_VERBOSE_CONFIGURE=1
> #
> DEFAULT_VERSIONS+=perl5=5.24
> WRKDIRPREFIX=/usr/obj/portswork
> WITH_DEBUG=
> WITH_DEBUG_FILES=
> MALLOC_PRODUCTION=
>
>
> # svnlite status /usr/src/ | sort
> ?       /usr/src/sys/amd64/conf/GENERIC-DBG
> ?       /usr/src/sys/amd64/conf/GENERIC-NODBG
> ?       /usr/src/sys/arm/conf/BPIM3-DBG
> ?       /usr/src/sys/arm/conf/BPIM3-NODBG
> ?       /usr/src/sys/arm/conf/RPI2-DBG
> ?       /usr/src/sys/arm/conf/RPI2-NODBG
> ?       /usr/src/sys/arm64/conf/GENERIC-DBG
> ?       /usr/src/sys/arm64/conf/GENERIC-NODBG
> ?       /usr/src/sys/powerpc/conf/GENERIC64vtsc-DBG
> ?       /usr/src/sys/powerpc/conf/GENERIC64vtsc-NODBG
> ?       /usr/src/sys/powerpc/conf/GENERICvtsc-DBG
> ?       /usr/src/sys/powerpc/conf/GENERICvtsc-NODBG
> M       /usr/src/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td
> M       /usr/src/contrib/llvm/tools/lld/ELF/Target.cpp
> M       /usr/src/lib/csu/powerpc64/Makefile
> M       /usr/src/libexec/rtld-elf/Makefile
> M       /usr/src/sys/boot/ofw/Makefile.inc
> M       /usr/src/sys/boot/powerpc/Makefile.inc
> M       /usr/src/sys/boot/powerpc/kboot/Makefile
> M       /usr/src/sys/boot/uboot/Makefile.inc
> M       /usr/src/sys/conf/kern.mk
> M       /usr/src/sys/conf/kmod.mk
> M       /usr/src/sys/ddb/db_main.c
> M       /usr/src/sys/ddb/db_script.c
> M       /usr/src/sys/modules/zfs/Makefile
> M       /usr/src/sys/powerpc/ofw/ofw_machdep.c
>
> The M's are generally tied to powerpc64 and powerpc
> explorations. I tend to use the same source for all
> the TARGET_ARCH's that I build.
>
>
> ===
> Mark Millard
> markmi at dsl-only.net
>
>
>


More information about the freebsd-arm mailing list