Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Mar 2020 09:44:22 -0700
From:      Thomas Skibo <thomas-bsd@skibo.net>
To:        Mark Millard <marklmi@yahoo.com>
Cc:        Conrad Meyer <cem@freebsd.org>, freebsd-arm <freebsd-arm@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: FYI: artifact-based head bisect and OPi+2e (an armv7): -r359311 fails to boot but -r359309 boots (kernel substitutions)
Message-ID:  <20200329164422.GA68768@bentley>
In-Reply-To: <221A0E27-6A0F-4136-AB76-2D6664279363@yahoo.com>
References:  <221A0E27-6A0F-4136-AB76-2D6664279363.ref@yahoo.com> <221A0E27-6A0F-4136-AB76-2D6664279363@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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@skibo.net




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20200329164422.GA68768>