Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Jun 2016 01:55:11 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        otacilio.neto@bsd.com.br, freebsd-arm <freebsd-arm@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   (beagleboneblack/urtwn) Kernel page fault with the following non-sleepable locks held [ssh on rpi2 comparison]
Message-ID:  <99277FB6-77EB-4D8B-8A55-FBD622D29AC3@dsl-only.net>

next in thread | raw e-mail | index | archive | help
Otac=C3=ADlio otacilio.neto at bsd.com.br wrote on Tue Jun 21 00:06:39 =
UTC 2016 :

> > The kernel panic is totally reproducible. I need only do a ssh in =
the
> > beaglebone using ptty on windows or ssh on freebsd and the kernel=20
> > panic is raised.
. . .
> FreeBSD11-ALPHA4 shows the same behavior. The only thing that I need =
to=20
> raise the fault is ssh in the beaglebone.

(After this quotes are command input/output from my test activity.)

Under 11.0 -r310975 on a rpi2 I can ssh out of the rpi2 just fine. . .

> # uname -apKU
> FreeBSD rpi2 11.0-ALPHA4 FreeBSD 11.0-ALPHA4 #1 r301975M: Thu Jun 16 =
18:12:02 PDT 2016     =
markmi@FreeBSDx64:/usr/obj/clang/arm.armv6/usr/src/sys/RPI2-NODBG  arm =
armv6 1100117 1100117


This is a no-debug kernel build (but with symbols). Details are given =
later below.

> # ssh markmi@192.168.0.105
> Password:
> Last login: Tue Jun 21 01:04:46 2016
> markmi$=20

Similarly I can ssh into the rpi2 from outside, here using new remote =
connection in Mac OS X terminal: ssh 192.168.0.119 resulted in. . .

> Password for markmi@rpi2:
> Last login: Mon May  9 19:27:33 2016 from 192.168.2.1
> FreeBSD 11.0-ALPHA4 (RPI2-NODBG) #1 r301975M: Thu Jun 16 18:12:02 PDT =
2016
>=20
> Welcome to FreeBSD!
>=20
> Release Notes, Errata: https://www.FreeBSD.org/releases/
> Security Advisories:   https://www.FreeBSD.org/security/
> FreeBSD Handbook:      https://www.FreeBSD.org/handbook/
> FreeBSD FAQ:           https://www.FreeBSD.org/faq/
> Questions List: =
https://lists.FreeBSD.org/mailman/listinfo/freebsd-questions/
> FreeBSD Forums:        https://forums.FreeBSD.org/
>=20
> Documents installed with the system are in the =
/usr/local/share/doc/freebsd/
> directory, or can be installed later with:  pkg install en-freebsd-doc
> For other languages, replace "en" with a language code like de or fr.
>=20
> Show the version of FreeBSD installed:  freebsd-version ; uname -a
> Please include that output and any error messages when posting =
questions.
> Introduction to manual pages:  man man
> FreeBSD directory layout:      man hier
>=20
> Edit /etc/motd to change this login announcement.
> To determine whether a file is a text file, executable, or some other =
type
> of file, use
>=20
> 	file filename
> 		-- Dru <genesis@istar.ca>
> $=20

No panics or other odd notices.

The problem is apparently not general to all armv6 contexts.

Various context details follow. . .

> # more ~/src.configs/src.conf.rpi2-clang-bootstrap.rpi2-host=20
> TO_TYPE=3Darmv6
> #
> KERNCONF=3DRPI2-NODBG
> TARGET=3Darm
> .if ${.MAKE.LEVEL} =3D=3D 0
> TARGET_ARCH=3D${TO_TYPE}
> .export TARGET_ARCH
> .endif
> #
> #WITH_CROSS_COMPILER=3D
> WITH_SYSTEM_COMPILER=3D
> #
> #CPUTYPE=3Dsoft
> WITH_LIBSOFT=3D
> WITH_LIBCPLUSPLUS=3D
> WITH_BINUTILS_BOOTSTRAP=3D
> #WITHOUT_CLANG_BOOTSTRAP=3D
> WITH_CLANG=3D
> WITH_CLANG_IS_CC=3D
> WITH_CLANG_FULL=3D
> WITH_CLANG_EXTRAS=3D
> WITH_LLDB=3D
> #
> WITH_BOOT=3D
> WITHOUT_LIB32=3D
> #
> WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=3D
> WITHOUT_GCC_BOOTSTRAP=3D
> WITHOUT_GCC=3D
> WITHOUT_GCC_IS_CC=3D
> WITHOUT_GNUCXX=3D
> #
> NO_WERROR=3D
> #WERROR=3D
> MALLOC_PRODUCTION=3D
> #
> WITH_DEBUG_FILES=3D
> #
> XCFLAGS+=3D -march=3Darmv7-a -mcpu=3Dcortex-a7
> XCXXFLAGS+=3D -march=3Darmv7-a -mcpu=3Dcortex-a7
> # There is no XCPPFLAGS but XCPP ets XCFLAGS content.

~/src.configs/make.conf was empty.

> # more /usr/src/sys/arm/conf/RPI2-NODBG
> #
> # RPI2 -- Custom configuration for the Raspberry Pi 2
> #
> # For more information on this file, please read the config(5) manual =
page,
> # and/or the handbook section on Kernel Configuration Files:
> #
> #    =
http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-con=
fig.html
> #
> # The handbook is also available locally in /usr/share/doc/handbook
> # if you've installed the doc distribution, otherwise always see the
> # FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
> # latest information.
> #
> # An exhaustive list of options and more detailed explanations of the
> # device lines is also present in the ../../conf/NOTES and NOTES =
files.
> # If you are in doubt as to the purpose or necessity of a line, check =
first
> # in NOTES.
> #
> =20
> ident           RPI2-NODBG
> =20
> include         "RPI2"
> =20
> makeoptions     DEBUG=3D-g                # Build kernel with gdb(1) =
debug symbols
> options         ALT_BREAK_TO_DEBUGGER
> #options        VERBOSE_SYSINIT         # Enable verbose sysinit =
messages
> =20
> options         KDB                     # Enable kernel debugger =
support
> =20
> # For minimum debugger support (stable branch) use:
> #options        KDB_TRACE               # Print a stack trace for a =
panic
> options         DDB                     # Enable the kernel debugger
> =20
> 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


My /usr/src tree has some changes/additions --but mostly for powerpc64 =
and powerpc issues:

> # svnlite status /usr/src/
> M       =
/usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
> M       /usr/src/lib/csu/powerpc64/Makefile
> ?       /usr/src/sys/amd64/include/include
> ?       /usr/src/sys/arm/conf/RPI2-NODBG
> ?       /usr/src/sys/arm/include/include
> M       /usr/src/sys/boot/ofw/Makefile.inc
> M       /usr/src/sys/boot/powerpc/Makefile
> M       /usr/src/sys/boot/powerpc/Makefile.inc
> M       /usr/src/sys/boot/uboot/Makefile.inc
> M       /usr/src/sys/conf/Makefile.powerpc
> M       /usr/src/sys/conf/kern.mk
> M       /usr/src/sys/conf/kmod.mk
> M       /usr/src/sys/dev/cxgb/ulp/tom/cxgb_listen.c
> M       /usr/src/sys/dev/cxgbe/tom/t4_listen.c
> ?       /usr/src/sys/powerpc/conf/GENERIC64-NODBG
> ?       /usr/src/sys/powerpc/conf/GENERIC64vtsc
> ?       /usr/src/sys/powerpc/conf/GENERIC64vtsc-NODEBUG
> ?       /usr/src/sys/powerpc/conf/GENERICvtsc
> ?       /usr/src/sys/powerpc/conf/GENERICvtsc-NODEBUG
> ?       /usr/src/sys/powerpc/include/include
> M       /usr/src/sys/powerpc/ofw/ofw_machdep.c
> M       /usr/src/sys/powerpc/powerpc/exec_machdep.c
> ?       /usr/src/sys/x86/include/include

(The include/include ones are from something making links pointing back =
up to the parent include/ . I did not explicitly create these.)

(The cxbg and cxbge ones were from trying to have amd64 target amd64 via =
xtoolchain (devel/amd64-gcc). But other places also stopped it and I =
quit trying that for now.)

> # more /etc/rc.conf
> hostname=3D"rpi2"
> ifconfig_ue0=3D"DHCP"
> sshd_enable=3D"YES"
> =20
> powerd_enable=3D"YES"
> =20
> # Nice if you have a network, else annoying.
> ntpd_enable=3D"YES"
> ntpd_sync_on_start=3D"YES"
> =20
> # Uncomment to disable common services (more memory)
> #cron_enable=3D"NO"
> #syslogd_enable=3D"NO"
> sendmail_enable=3D"NONE"
> sendmail_submit_enable=3D"NO"
> sendmail_outbound_enable=3D"NO"
> sendmail_msp_queue_enable=3D"NO"
> #
> # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
> dumpdev=3D"AUTO"
> #
> dbus_enable=3D"YES"
> hald_enable=3D"YES"
> #
> rpcbind_enable=3D"YES"
> nfs_server_enable=3D"YES"
> mountd_flags=3D"-r"
> #
> nfs_client_enable=3D"YES"

> # more /etc/sysctl.conf=20
> # $FreeBSD: head/etc/sysctl.conf 112200 2003-03-13 18:43:50Z mux $
> #
> #  This file is read when going to multi-user and its contents piped =
thru
> #  ``sysctl'' to adjust kernel values.  ``man 5 sysctl.conf'' for =
details.
> #
> =20
> # Uncomment this to prevent users from seeing information about =
processes that
> # are being run under another UID.
> #security.bsd.see_other_uids=3D0
> =20
> kern.nodump_coredump=3D1
> kern.capmode_coredump=3D1
> kern.sugid_coredump=3D1
> kern.corefile=3D/var/crash/%N.%P.core


/etc/fstab , /etc/exports , /etc/resolv.conf are very simple but =
non-default. Other than password files and the like the rest of /etc/. . =
. is just defaults.

> # more /boot/loader.conf=20
> kern.cam.boot_delay=3D"10000"




=3D=3D=3D
Mark Millard
markmi at dsl-only.net




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?99277FB6-77EB-4D8B-8A55-FBD622D29AC3>