Failed attempt to boot a (non-debug) head -r339076 on an old PowerMac G5 "Quad Core" (built via devel/powerpc64-gcc): Waking up CPU 1

Mark Millard marklmi at yahoo.com
Tue Oct 9 21:38:56 UTC 2018


On 2018-Oct-9, at 1:40 PM, Michael Tuexen <tuexen at fh-muenster.de> wrote:

>> On 9. Oct 2018, at 22:35, Mark Millard <marklmi at yahoo.com> wrote:
>> 
>> [Reverting head -r334498 in my head -r339076 context was enough to get
>> the G5 so-called "Quad Core" to boot just fine as a variant of
>> -r339076 .]
>> 
>> On 2018-Oct-9, at 12:54 PM, Mark Millard <marklmi at yahoo.com> wrote:
>> 
>>> On 2018-Oct-9, at 8:20 AM, Mark Millard <marklmi at yahoo.com> wrote:
>>> 
>>>> [The stable/head mix seems to be a wrong idea: 11.2 gets past
>>>> the SMP: messages just fine on the so-called G5 "Quad Core".]
>>>> 
>>>> On 2018-Oct-8, at 5:14 PM, Mark Millard <marklmi at yahoo.com> wrote:
>>>> 
>>>>> On 2018-Oct-8, at 1:27 PM, Justin Hibbits <chmeeedalf at gmail.com> wrote:
>>>>> 
>>>>>>> . . .
>>>>>> 
>>>>>> It would be helpful to know the last known-good SVN revision, both for
>>>>>> Head and 11.x, as well as the oldest failing one.  Since my G5 bit the
>>>>>> dust, I can't check locally.
>>>>> 
>>>> . . .
>>> 
>>> There are examples of head's kernels that sometimes
>>> fail to get to the "SMP:" messages and sometimes work
>>> for getting there (and beyond). So:
>>> 
>>> My reporting any example failure is a solid indicator
>>> of the "does not reach "SMP:" problem in that build.
>>> (All tries reached the waking message on at least cpu
>>> 1.)
>>> 
>>> My reporting "worked" for a revision might be a
>>> misclassification. (This makes for a messier
>>> "binary-like search".)
>>> 
>>> That said, the summary of the later detail is:
>>> 
>>> head -r334494 kernel worked
>>> head -r334528 kernel failed
>>> 
>>> (There is nothing between those for:
>>> 
>>> https://artifact.ci.freebsd.org/snapshot/head/r*/powerpc/powerpc64/kernel.txz
>>> 
>>> so getting a smaller range requires builds.
>>> I've not attempted that.)
>>> 
>>> The only machine-dependent powerpc64 change between
>>> those 2 that I see is:
>>> 
>>> Author: jhibbits
>>> Date: Fri Jun  1 21:37:20 2018
>>> New Revision: 334498
>>> URL: 
>>> https://svnweb.freebsd.org/changeset/base/334498
>>> 
>>> 
>>> Log:
>>> Increase powerpc64 KVA from ~7.25GB to 32GB
>>> . . .
>>> 
>>> . . .
>> 
>> In my -r339076 build context I reverted -r334498, did a
>> buildkernel, installed it, and rebooted into -r339076.
>> 
>> The result booted just fine.
>> 
>> It does appear that, for head, -r334498 makes the difference
>> for some reason.
> Are you saying that head with reverting r334498 runs stable with SMP?
> 

So far no problems. I'll later be doing more extensive activity, such
as buildworld buildkernel and poudriere-based port builds. So the
quality of evidence will improve and I'll report on how it went.

BUT: I'm running a build based on devel/powerpc64-gcc having done
the buildworld buildkernel (WITHOUT_LIB32= specified). It was an
amd64->powerpc64 cross-build as well. No gcc 4.2.1 in use or
present. The powerpc64 build has clang as cc (even though clang
messes up buildworld buildkernel if used). So, it is not a match
to an official build.

For reference, my experimental status has some
other /usr/src differences from head -r339076 as
well:

# svnlite status /usr/src/ | sort
?       /usr/src/sys/amd64/conf/GENERIC-DBG
?       /usr/src/sys/amd64/conf/GENERIC-NODBG
?       /usr/src/sys/arm/conf/GENERIC-DBG
?       /usr/src/sys/arm/conf/GENERIC-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/PPCFrameLowering.cpp
M       /usr/src/contrib/llvm/tools/lld/ELF/Arch/PPC64.cpp
M       /usr/src/crypto/openssl/crypto/armcap.c
M       /usr/src/lib/libkvm/kvm_powerpc.c
M       /usr/src/lib/libkvm/kvm_private.c
M       /usr/src/release/Makefile.vm
M       /usr/src/release/scripts/mk-vmimage.sh
M       /usr/src/release/tools/vmimage.subr
M       /usr/src/secure/lib/libcrypto/Makefile
M       /usr/src/stand/defs.mk
M       /usr/src/stand/powerpc/boot1.chrp/Makefile
M       /usr/src/stand/powerpc/kboot/Makefile
M       /usr/src/sys/arm/allwinner/aw_mmc.c
M       /usr/src/sys/arm64/arm64/identcpu.c
M       /usr/src/sys/conf/kmod.mk
M       /usr/src/sys/conf/ldscript.powerpc
M       /usr/src/sys/ddb/db_main.c
M       /usr/src/sys/ddb/db_script.c
M       /usr/src/sys/dev/mmc/mmc.c
M       /usr/src/sys/dev/mmc/mmcreg.h
M       /usr/src/sys/dev/mmc/mmcsd.c
M       /usr/src/sys/kern/subr_pcpu.c
M       /usr/src/sys/powerpc/aim/mmu_oea64.c
M       /usr/src/sys/powerpc/include/vmparam.h
M       /usr/src/sys/powerpc/ofw/ofw_machdep.c
M       /usr/src/sys/powerpc/powerpc/interrupt.c
M       /usr/src/sys/powerpc/powerpc/mp_machdep.c
M       /usr/src/sys/powerpc/powerpc/trap.c
M       /usr/src/sys/sys/buf.h
M       /usr/src/sys/vm/swap_pager.c
M       /usr/src/sys/vm/vm_page.c
M       /usr/src/sys/vm/vm_pageout.c
M       /usr/src/usr.bin/top/machine.c

Some of this is for 32-bit powerpc, some for powerpc64,
some for aarch64, some for armv7. A few files just have
extra validation/diagnostic code from when a problem
was being investigated.

The GENERIC*-DBG and GENERIC*-NODBG files include the
matching GENERIC* and then modify some debug-status
definitions. For powerpc and powerpc64 they also build
in:

device          filemon
device          geom_label

(This is tied to doing experiments with problematical
clang based buildworld buildkernel results where kld_load
crashes the system.)

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



More information about the freebsd-ppc mailing list