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