Re: head -r365932 on PowerMac G5 (2 dual-core sockets): Crashes before login prompt if powerd is enabled in /etc/rc.conf

Mark Millard via freebsd-ppc <[email protected]>
Newsgroups gmane.os.freebsd.devel.ppc
Message-ID <[email protected]>

On 2020-Sep-23, at 15:31, Brandon Bergren <bdragon at FreeBSD.org> wrote:

> On Wed, Sep 23, 2020, at 5:10 PM, Mark Millard wrote:
>> In my enviroment, doing:
>> 
>> gpart bootcode -p /boot/boot1.hfs -i1 ada1
>> 
>> from a modern, booting context got the failing
>> SSD to boot single-socket, single-core PowerMacs.
>> 
>> Thanks!
>> 
>> It changed the behavior of 2-socket G4 as well but
>> that context now reports starting only one of the 2
>> CPUs and things do not go well from there. For
>> example, USB2 fails and it basically hangs up before
>> the login prompt (but it does check the root file
>> system). It even reported something about NUMA
>> domain 0 in the messages that I saw go by.
> 
> Yes, for me on my 2-socket G4, it gets as far as mounting the root filesystem and starting filesystem checks before it hangs. I still need to set up dcons there and poke around a bit.

Sounds like I've probably caught up with your status,
intead of being behind.

>> Before, 2-socket died much earlier. But it is not
>> getting to a status where I have any control/access.
>> 
>> Of course, so far as I know, nothing has fixed the
>> "kernel sometimes zeros user space pages that it
>> should not" problem (even when sitting idle). So,
>> ultimately, 32-bit powerpc FreeBSD is not sufficiently
>> useful on any of the machines, other than via chroot
>> on a powerpc64 FreeBSD machine.
> 
> I do know there is a bug somewhere in bridge mode that corrupts things when running 32 bit on a G5 processor, but G3 and G4 should still be working fine...

This is the old issue where Justin H. had written:

QUOTE
. . . I took a quick look at the 3 pmap
implementations we have (haven't check the new radix pmap yet), and it
looks like only mmu_oea.c (32-bit AIM pmap, for G3 and G4) is missing
vm_page_dirty() calls in its pmap_protect() implementation,. . .
Given this, I think it's safe to
say that this missing piece is necessary.  . . .
END QUOTE

The attempted patches did not work back then (June).

You later wrote:

QUOTE
looking at the history of the 64 bit code:
r233017 -- "Implement pmap_remove_pages(). This will be added later to the 32-bit MMU module."

Oops!
END QUOTE

My last note on teh subject (my reply to the above) looks to be:

QUOTE
Looks like -r233949 is the first version of mmu_oea64.c
to involve clearing PGA_EXECUTABLE from the a.flags .
Later versions changed various aspects over the years
but clearing PGA_EXECUTABLE and PGA_WRITEABLE has been
a sustained property for PVO_MANANGED contexts from
what I see. (Not that I have any general understanding
of the code involved or what can be common for 32-bit
vs. what can not.)
END QUOTE

There was a KASSERT associated with the PGA_EXECUTABLE
handling. (I had a message about the 64-bit code vs.
32-bit code for the issue that I'll not quote here.)


Overall the issue was observed on both single-socket G4s/G3 and
dual-socket G4. Builds without MALLOC_PRODUCTION catch the problem
earlier/quicker. stress could be run in a way that it would end up
dying from jemalloc asserts, allowing fairly quick tests.

> Is this with an up-to-date userland? I do know there were some atomic issues in userland at one point, but they should all be sorted out now.

I've not retested with head -r365932 yet. But I'm unaware of
any vm_page_aflag_clear(????,PGA_WRITEABLE | PGA_EXECUTABLE)
like code having been put in place for 32-bit powerpc. Until
that has happened, things are not likely to be fixed in the
subject area. (PGA_WRITEABLE has such code in some places,
but there is no such PGA_EXECUTABLE code in mmu_oea.c .
mmu_moea64.c has such PGA_EXECUTABLE code in
moea64_pvo_remove_from_page_locked .)

>> Anyway, I've a bunch of SSDs to update so the basic
>> problem does not reappear if I grab another one.
>> 
> 

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

_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ppc
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.