Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Jan 2021 16:19:56 -0800
From:      Mark Millard <marklmi@yahoo.com>
To:        Gordon Bergling <gbe@freebsd.org>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: PR 252541: Early kernel panic on RPi4B (Too many early devmatch mappings)
Message-ID:  <F0031010-EBB0-4DDE-B9D1-20A0F161E4EA@yahoo.com>
In-Reply-To: <7C6DC946-B7B6-42C8-A8B9-0471ED7B77AA@yahoo.com>
References:  <X/y5YbRUMOyn4Hwl@lion.0xfce3.net> <7C6DC946-B7B6-42C8-A8B9-0471ED7B77AA@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help


On 2021-Jan-11, at 14:23, Mark Millard <marklmi at yahoo.com> wrote:


> On 2021-Jan-11, at 12:47, Gordon Bergling <gbe at freebsd.org> wrote:
>=20
> Hi,
>=20
> I am currently investigating PR 252541 (Too many early devmatch =
mappings) [1].
>=20
> The kernel panic happends on the RPi4B. Has anyone successfully booted =
a rivision
> on the RPi4B after:
>=20
> =
--------------------------------------------------------------------------=
-------
> commit e83fdf8bb391579fa422d34663cd8c1f82a00dc0
> Author:     Chuck Tuffli <chuck@FreeBSD.org>
> AuthorDate: 2021-01-08 22:36:37 +0000
> Commit:     Chuck Tuffli <chuck@FreeBSD.org>
> CommitDate: 2021-01-08 22:41:45 +0000
>=20
>  fix big-endian platforms after 6733401935f8
>=20
>  The NVMe byte-swap routines for big-endian platforms used memcpy() to
>  move the unaligned 64-bit value into a temp register to byte swap it.
>  Instead of introducing a dependency, manually byte-swap the values in
>  place.
> =
--------------------------------------------------------------------------=
-------
>=20
> --Gordon
>=20
> [1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D252541
>=20
> I do my own builds but I'm running based on 19cca0b9613d
> with CommitDate 2021-01-09 16:21:33 -0800 :
>=20
> # ~/fbsd-based-on-what-freebsd-main.sh mm-src
> 19cca0b9613d7c3058e41baf0204245119732235
> CommitDate: 2021-01-09 16:21:33 -0800
> 5d333ee67ac3 19cca0b9613d (HEAD -> mm-src) mm-src snapshot for mm's =
patched build in git context.
> FreeBSD RPi4B 13.0-CURRENT FreeBSD 13.0-CURRENT =
mm-src-c255807-g5d333ee67ac3 GENERIC-NODBG  arm64 aarch64 1300134 =
1300134
>=20
> In other words, the history spanned for e83fdf8bb391 and
> after is:
>=20
> * 	aio: fix the tests when ZFS is not available	Alan Somers	=
46 hours	2	-0/+5
> * 	linuxkpi: Fix the "error: unknown type name 'u32'" compilation =
issue when	Neel Chauhan	47 hours	1	-0/+1
> * 	netmap: vtnet: stop krings during interface reset	Vincenzo =
Maffione	48 hours	1	-1/+7
> * 	netmap: refactor netmap_reset	Vincenzo Maffione	2 days	=
1	-45/+20
> * 	netmap: iflib: fix asserts in netmap_fl_refill()	Vincenzo =
Maffione	2 days	1	-1/+2
> * 	netmap: iflib: stop krings during interface reset	Vincenzo =
Maffione	2 days	2	-1/+10
> * 	fileargs: add tests	Mariusz Zaborski	2 days	3	=
-0/+625
> * 	tcp: don't use KTLS socket option on listening sockets	Michael =
Tuexen	4 days	1	-0/+10
> * 	arm: revert MAXDSIZ change from 202aea9c82ea	Kyle Evans	=
2 days	1	-1/+1
> * 	kevent(2): Bugfix for wrong EVFILT_TIMER timeouts	Jan =
Kokem=C3=BCller	2 days	1	-1/+1
> * 	ldd: renumber executable type constants	Ed Maste	2 days	=
1	-2/+2
> * 	diff: honour flags with -q	Ed Maste	2 days	2	=
-1/+13
> * 	sysctl: improve debug.kdb.panic_str description	Warner Losh	=
2 days	1	-1/+1
> * 	last(1): Add EXAMPLES section	Fernando Apestegu=C3=ADa	=
2 days	1	-4/+22
> * 	man(1): Bump .Dd	Fernando Apestegu=C3=ADa	2 days	=
1	-1/+1
> * 	man(1): Add EXAMPLES section	Fernando Apestegu=C3=ADa	=
2 days	1	-0/+35
> * 	mvneta: Acquire the softc lock before clearing the MIB	Mark =
Johnston	2 days	1	-0/+2
> * 	Add fib lookup testing module.	Alexander V. Chernikov	2 days	=
2	-0/+548
> * 	Bring DPDK route lookups to FreeBSD.	Alexander V. Chernikov	=
2 days	17	-0/+6030
> * 	Fix LINT kernel build after =
01f2e864f79584c0cd250a8e7cfb501a9985768a.	Hans Petter Selasky	=
3 days	1	-1/+4
> * 	certctl: factor out certname resolution	Kyle Evans	3 days	=
1	-2/+17
> * 	certctl: replace hardcoded uses of /usr/local	Kyle Evans	=
3 days	1	-2/+3
> * 	fix big-endian platforms after 6733401935f8	Chuck Tuffli	=
3 days	1	-5/+9
>=20
> The RPi4B is a 8 GiByte one, booted directly from a USB3 SSD,
> no microsd card involved. I can boot either u-boot style or
> UEFI/ACPI style from the same media, just switching config.txt
> content.
>=20
> I do not have MMCCAM or the like:
>=20
> # more /usr/fbsd/mm-src/sys/arm64/conf/GENERIC-NODBG=20
> #
> # GENERIC -- Custom configuration for the arm64/aarch64
> #
>=20
> include "GENERIC"
>=20
> ident   GENERIC-NODBG
>=20
> makeoptions     DEBUG=3D-g                # Build kernel with gdb(1) =
debug symbols
>=20
> options         ALT_BREAK_TO_DEBUGGER
>=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
> # Extra stuff:
> #options        VERBOSE_SYSINIT=3D0       # Enable verbose sysinit =
messages
> #options        BOOTVERBOSE=3D1
> #options        BOOTHOWTO=3DRB_VERBOSE
> #options        KTR
> #options        KTR_MASK=3DKTR_TRAP
> ##options       KTR_CPUMASK=3D0xF
> #options        KTR_VERBOSE
>=20
> # 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
> nooptions       MALLOC_DEBUG_MAXZONES   # Separate malloc(9) zones
> nooptions       BUF_TRACKING
> nooptions       FULL_BUF_TRACKING
>=20

Looks like the message is from a KASSERT that does nothing
unless INVARIANTS/INVARIANT_SUPPORT is enabled.

Unfortunately, arftifacts.ci.freebsd.org has not started
getting git-based main builds yet. Normally I'd support
an official debug kernel from there and see if I could
repeat the problem.

So I've made my own debug kernel build for things as they
are in my context and it reproduced the problem:

Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [/boot/kernel/kernel]...              =20
Using DTB provided by EFI at 0x7ef0000.
EFI framebuffer information:
addr, size     0x3e2fe000, 0x7e9000
dimensions     1920 x 1080
stride         1920
masks          0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000
---<<BOOT>>---
panic: Too many early devmap mappings
cpuid =3D 0
time =3D 1
KDB: stack backtrace:
(null)() at 0xffff000000116980
         pc =3D 0xffff000000772af4  lr =3D 0xffff000000116980
         sp =3D 0xffff0000011f1320  fp =3D 0xffff0000011f1520

(null)() at 0xffff000000464710
         pc =3D 0xffff000000116980  lr =3D 0xffff000000464710
         sp =3D 0xffff0000011f1530  fp =3D 0xffff0000011f1590

(null)() at 0xffff0000004644b4
         pc =3D 0xffff000000464710  lr =3D 0xffff0000004644b4
         sp =3D 0xffff0000011f15a0  fp =3D 0xffff0000011f1650

(null)() at 0xffff0000007e9838
         pc =3D 0xffff0000004644b4  lr =3D 0xffff0000007e9838
         sp =3D 0xffff0000011f1660  fp =3D 0xffff0000011f1660

(null)() at 0xffff00000076f744
         pc =3D 0xffff0000007e9838  lr =3D 0xffff00000076f744
         sp =3D 0xffff0000011f1670  fp =3D 0xffff0000011f1690

(null)() at 0xffff000000782904
         pc =3D 0xffff00000076f744  lr =3D 0xffff000000782904
         sp =3D 0xffff0000011f16a0  fp =3D 0xffff0000011f16c0

(null)() at 0xffff0000002896b0
         pc =3D 0xffff000000782904  lr =3D 0xffff0000002896b0
         sp =3D 0xffff0000011f16d0  fp =3D 0xffff0000011f1790

(null)() at 0xffff0000007d9bb0
         pc =3D 0xffff0000002896b0  lr =3D 0xffff0000007d9bb0
         sp =3D 0xffff0000011f17a0  fp =3D 0xffff0000011f1820

(null)() at 0xffff00000028b814
         pc =3D 0xffff0000007d9bb0  lr =3D 0xffff00000028b814
         sp =3D 0xffff0000011f1830  fp =3D 0xffff0000011f1840

(null)() at 0xffff00000039e448
         pc =3D 0xffff00000028b814  lr =3D 0xffff00000039e448
         sp =3D 0xffff0000011f1850  fp =3D 0xffff0000011f1870

(null)() at 0xffff0000004af2ac
         pc =3D 0xffff00000039e448  lr =3D 0xffff0000004af2ac
         sp =3D 0xffff0000011f1880  fp =3D 0xffff0000011f18b0

(null)() at 0xffff00000077ef90
         pc =3D 0xffff0000004af2ac  lr =3D 0xffff00000077ef90
         sp =3D 0xffff0000011f18c0  fp =3D 0xffff0000011f1a00

(null)() at 0xffff00000000089c
         pc =3D 0xffff00000077ef90  lr =3D 0xffff00000000089c
         sp =3D 0xffff0000011f1a10  fp =3D 0x0000000000000000

KDB: enter: panic
[ thread pid 0 tid 0 ]
Stopped at      0xffff0000004aeeb4
db> dump
Cannot dump: no dump device specified.
db>=20


=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?F0031010-EBB0-4DDE-B9D1-20A0F161E4EA>