qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mac99 SMP


From: Andrew Randrianasulu
Subject: Re: mac99 SMP
Date: Mon, 31 Mar 2025 15:56:54 +0300

On Mon, Mar 31, 2025 at 3:50 PM Andrew Randrianasulu
<randrianasulu@gmail.com> wrote:
>
> Oh, I see some discussion at
>
> https://lists.nongnu.org/archive/html/qemu-ppc/2025-03/msg01179.html
>
> Huh, Discord ;)
>
> Anyway, I tried 9.2.2 and not sure if Final Cut Pro 2.x (yeah, prehistoric) 
> was able to do any smp with 4 cpu, yet it was going slightly above 100% 
> (host) on -smp 2.
>
>
> Leopard (10.5, not updated) was hanging with stop symbol on -smp 4 but worked 
> on -smp 2
>
> Void Linux (ppc32, 5.13 and 4. something kernels) was finding all four cpus, 
> same for modern Debian on vmlinux-6.12.16-powerpc-smp . Sound was unhappy on 
> this kernel, but worked at least  for terminal bell on Void installer. 
> Interestingly Debian kernel does spread device interrupts (as seen in 
> /proc/interrupts) over all cpu cores.
>
>
> BSDs (NetBSD 10.0 and FreeBSD 14.2) were still  only working with -smp 1.
>
> 64 bit Debian was only able to use
>  one cpu (970FX), others were stuck.  FreeBSD powerpc64 was no boot for me, 
> 10.4.11/10.5 OSX still no boot on qemu-emulated 970 (FX or just 970).
>
> I'll hang my patch  here and on forums (it was not final one, just something 
> working on top of earlier patches)
>
>
> (I sometimes answer both from my Android tablet and desktop, both logged to 
> same gmail, some lists more strict on non-accepting html emails I can't turn 
> off in mobile application, it seems)

Here it is. Note, it DOES NOT incorporate latest findings!

still based on top of 10.0-rc0 (I'll try to rebase on top of rc1 with
official NetBSD fix)

>
> пн, 31 мар. 2025 г., 00:16 Andrew Randrianasulu <randrianasulu@gmail.com>:
>>
>> On Sun, Mar 30, 2025 at 7:27 AM Andrew Randrianasulu
>> <randrianasulu@gmail.com> wrote:
>> >
>> >
>> >
>> > сб, 29 мар. 2025 г., 17:55 Andrew Randrianasulu <randrianasulu@gmail.com>:
>> >>
>> >>
>> >>
>> >> сб, 29 мар. 2025 г., 17:37 Jd Lyons <lyons_dj@yahoo.com>:
>> >>>
>> >>> Throwing 4 cores at Mac OS 9 seems to fix the freezing issues with SMP.
>> >>
>> >>
>> >> I guess only macos 9 compatible macs with 4 cpus were those PowerSurge 
>> >> boards with 604e cores?
>> >
>> >
>> > sorry, I mixed up PowerSurge machines (logic board name?) with Daystar 
>> > Millennium:
>> >
>> > https://68kmla.org/bb/index.php?threads/the-holy-grail-of-pci-macs-daystar-millennium-quad-604.31811/
>> >
>> >
>>
>> wow, it works in my megapile (screamer + spd patch + oldworld rom
>> loading patch)!
>>
>> https://ibb.co/BHn6SV8M
>> https://ibb.co/n84RL0rB
>> https://ibb.co/WW52nxyz
>> https://ibb.co/9H6w8TG8
>>
>> Newer thought I'll see 4 * G4 cpu in macos X !
>>
>>
>>
>>
>> >
>> >>
>> >> out of curiosity, did you just upped max smp from 2 to 4? I tried this 
>> >> and OSX 10.4.11 stopped booting, so I reverted it back to two .....
>> >>
>> >>
>> >>>
>> >>> On Mar 23, 2025, at 1:01 PM, BALATON Zoltan <balaton@eik.bme.hu> wrote:
>> >>>
>> >>> On Sun, 23 Mar 2025, Jd Lyons wrote:
>> >>>
>> >>> The Darwin source are vast and I have no idea what I am searching for:
>> >>>
>> >>>
>> >>> Then keep searching and reading until you understand it more. You can 
>> >>> try to search for the property names to see where they are queried. The 
>> >>> device tree is used to build the IO registry so it probably ends up 
>> >>> there then something might look it up from there. Then see how it's used.
>> >>>
>> >>> cpu_sync_timebase(
>> >>> void)
>> >>> {
>> >>> natural_t tbu, tbl;
>> >>> boolean_t intr;
>> >>> struct SIGtimebase syncClkSpot;
>> >>>
>> >>> intr = ml_set_interrupts_enabled(FALSE); /* No interruptions in here */
>> >>>
>> >>> syncClkSpot.avail = FALSE;
>> >>> syncClkSpot.ready = FALSE;
>> >>> syncClkSpot.done = FALSE;
>> >>>
>> >>> while (cpu_signal(master_cpu, SIGPcpureq, CPRQtimebase,
>> >>> (unsigned int)&syncClkSpot) != KERN_SUCCESS)
>> >>> continue;
>> >>>
>> >>> while (*(volatile int *)&(syncClkSpot.avail) == FALSE)
>> >>> continue;
>> >>>
>> >>> isync();
>> >>>
>> >>>
>> >>> This is the beginning of a function without context so I have no idea 
>> >>> what this is but maybe look for where it's called from and that's 
>> >>> probably the place you should look more or understand what this function 
>> >>> does. If there's something in it you don't know then search for that and 
>> >>> so on. If you don't even understand C then first learn that, there are 
>> >>> free tutorials online, it should not be too difficult.
>> >>>
>> >>> Regrads,
>> >>> BALATON Zoltan
>> >>>
>> >>>

Attachment: 0022-Great-4-cpu-hack-for-mac99.patch
Description: Text Data

Attachment: 0001-mac_newworld-mac99-experimental-smp-2-cpu-support.patch
Description: Text Data

Attachment: 0005-Add-0.5-sec-delay-for-mac_newworld-kick_cpu-fixes-Li.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]