FYI: artifact-based head bisect and OPi+2e (an armv7): -r359311 fails to boot but -r359309 boots (kernel substitutions)
Thomas Skibo
thomas-bsd at skibo.net
Sun Mar 29 16:44:54 UTC 2020
On Sun, Mar 29, 2020 at 12:29:00AM -0700, Mark Millard via freebsd-arm wrote:
> While trying to update the head version
> in use I ran into boot hangups on the
> OrangePi+ 2e and did an approximate
> bisect of artificact.freebsd.org kernels
> to find approximately which kernel
> version the issue started at.
>
> I found that head -r359309 boots and
> -r359311 fails (shown later below).
> The original update attempt was from
> -r359966 to -r359376 and -r359376
> stopped there as well. (I kept world
> there and varied the kernel version
> for the approximate bisect activity.)
>
> It seems that at least one of the
> "MI-namespace" atomics added do not work
> in all its usage-contexts on the cortexA7
> (armv7) involved.
It looks like my previous reply didn't go to the mailing lists. I'm new to
mutt.
Anyway, I looked at this problem yesterday and it seems r359311 enables
using some atomic operations that were not being used until now. In
particular, atomic_fcmpset_8() seems broken and hangs up
in vm_page_bits_swap(). I think I have a fix but I want to run it
by Ian.
--Thomas
Index: sys/arm/include/atomic-v6.h
===================================================================
--- sys/arm/include/atomic-v6.h (revision 359412)
+++ sys/arm/include/atomic-v6.h (working copy)
@@ -196,7 +196,7 @@
\
__asm __volatile( \
"1: ldrex" SUF " %[tmp], [%[ptr]] \n" \
- " ldr %[ret], [%[oldv]] \n" \
+ " ldr" SUF " %[ret], [%[oldv]] \n" \
" teq %[tmp], %[ret] \n" \
" ittee ne \n" \
" str" SUF "ne %[tmp], [%[oldv]] \n" \
--
=========
Thomas Skibo
thomas-bsd at skibo.net
More information about the freebsd-arm
mailing list