On Sat, Dec 12, 2020 at 11:06:33AM +0100, Marco van Hulten wrote:
> Hello Peter,
> 
> Je 11 Dec 17:24 skribis Peter:
> > Now that POWER9 systems are pretty well supported, I'm setting away some 
> > time
> > next year to backport powerpc64 to the Mac G5.  Is there anyone already 
> > doing
> > that?  I already tried this once (based on the macppc sources) but failed.
> 
> I'm not doing that.  I am simply running OpenBSD/macppc on the iMac G5.
> Graphics (X11 rendering) is a bit slow but acceptable to me after a bit
> of tweaking [1].
> 
> What would be specific advantages if OpenBSD/powerpc64 (over macppc)
> were backported to PowerPC 970?

For me it's using my G5 (970FX cpu) without 2 GB limitation.  My machine has
4 GB of RAM but OpenBSD/macppc only supports max. 2 GB.  

Another thing is it interests me very much, as a personal achievement, to know
how to port an OS to another platform.  I've sat in the background with the
riscv64 team and learned quite a bit on how they do that.  I also attempted
this before (alone) purchased some powerpc books, invested a lot of time, 
trying to do this port, which failed.  I miss the exploring part.

A lot of things are already done, in the powerpc64 port, I read a little
for a bit how OpenBSD did the SLB implementation in pmap.c.  I compared it a
little with mine that I constructed from FreeBSD's in 2018 and there is a bit
of difference but the functions are very similar.  Compare:

pmap_va2vsid() in pmap.c
https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/arch/powerpc64/powerpc64/pmap.c?rev=1.54&content-type=text/plain

with FreeBSD's or my port:
va_to_vsid() in slb.c
https://gotweb.centroid.eu/cgi-bin/gotweb/gotweb?path=powerpc64.git&action=blob&commit=ec46d233f79ed298dde271748a49523aea1522ca&file=slb.c&folder=%2Fpowerpc64

The similarities take me back to a time when I organised putting these functions
into my slb.c back when.  I forgot right now what SLB stands for exactly but 
it replaced the BAT functions from 32-bit PowerPC which had to do with memory 
management and caching.  I'll look it up on monday when I am back home.  Side
Lookup Buffer popped into my head afterwards writing this mail.

I noticed there may be room to speed these up on the powerpc64 arch as the 
virtual to physical mappings (PTE) are a LIST.  I took my implementation from 
FreeBSD original implementation which used a TREE, which could make lookups 
faster if you pass it a virtual address to get a physical address.  But I 
understand that it's easy to get this wrong so a LIST is likely better than 
a TREE for robustness.  Also FreeBSD I believe put its SPLAY tree 
implementation into a radix tree or something if I remember correctly (I 
could be wrong here).

In no way do I want to start arguing about this.  I'm very much a student to
Mark Kettenis's teachings (and BSD's teachings too).  Granted having said 
this I invite corrections above.

So having said a lot of "how" and not a lot of "why", another point is I want
to make use of my hardware to the fullest, a POWER9 machine is expensive and
I won't likely have one for another 2 or 3 years, by which time a POWER10
machine will likely exist, and I have time for one more hobby project outside
of my job (within reason), starting in 2021. :-)

Best Regards,
-peter

> Marco
> 
> [1]: http://daemonforums.org/showthread.php?t=9971

Reply via email to