Multicore

Here you can discuss ReactOS related topics.

Moderator: Moderator Team

Post Reply
LdB
Posts: 6
Joined: Tue Sep 19, 2017 5:17 pm

Multicore

Post by LdB » Sat Feb 02, 2019 1:30 pm

Getting back to my port of the Raspberry Pi and reading up what has been done with multicores on reactOS.

There is discussion in forum about doing multicore but I can't find anything conclusive.
Looking at the repo code I see things in
https://github.com/reactos/reactos/blob ... thrdschd.c

Code: Select all

PKTHREAD
FASTCALL
KiIdleSchedule(IN PKPRCB Prcb)
{
    /* FIXME: TODO */
    ASSERTMSG("SMP: Not yet implemented\n", FALSE);
    return NULL;
}
So is there a plan or anything working or do I just do my own thing?

oldman
Posts: 1072
Joined: Sun Dec 20, 2009 1:23 pm

Re: Multicore

Post by oldman » Sat Feb 02, 2019 1:47 pm

I suggest that you go to matermost and talk to the devs.
Please keep the Windows classic (9x/2000) look and feel.
The layman's guides to - debugging - bug reporting - compiling - with some complementary scripts.
They may help you with a problem, so do have a look at them.

ThFabba
Developer
Posts: 263
Joined: Sun Jul 11, 2010 11:39 am

Re: Multicore

Post by ThFabba » Sat Feb 02, 2019 1:50 pm

Feel free to improve the cross-platform things like IPI management, scheduling and whatever. Nobody's working on this, because it comes after all the platform-specific HAL stuff, and that's largely missing on x86 (which is what most devs would be working on when diving into SMP).

PurpleGurl
Posts: 1777
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: Multicore

Post by PurpleGurl » Sat Feb 02, 2019 6:58 pm

But I can't even find tech data like what ports to probe, how to set modes, or other things about how to enter multicore, how to swap between cores, how to communicate between cores, etc.

ThFabba
Developer
Posts: 263
Joined: Sun Jul 11, 2010 11:39 am

Re: Multicore

Post by ThFabba » Sat Feb 02, 2019 9:58 pm

That sounds x86-specific... https://wiki.osdev.org/Symmetric_Multiprocessing -- you get information about the processors and their local APICs using ACPI (Windows also has an MPS HAL but I see no reason for us to support that), then configure the APICs and send an init IPI to each CPU.
Which means in ROS the first step is to get the APIC HAL into a working state.

But that of course has nothing to do with what the OP was asking about, since an RPi has none of those things. :)

PurpleGurl
Posts: 1777
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: Multicore

Post by PurpleGurl » Sun Feb 03, 2019 12:48 am

Yes Thomas, I somehow missed the ARM part... And I can see MPS as useful if the APIC HAL cannot initialize, but the ACPI HAL should obviously be the priority. Thanks, and my apologies for posting in this thread.

cb88
Posts: 62
Joined: Fri Oct 06, 2017 3:26 pm

Re: Multicore

Post by cb88 » Mon Feb 04, 2019 11:24 pm

I'd say you may as well skip MPS most of the machines that supported this are quite vintage, and often enough fail to even boot or require repairs (I have one or two like this). Nevertheless if it does get supported it would be nice. ACPI HAL and APIC support is where SMP work is needed.

APIC is a chip Advanced Programmable Interrupt Controller... either part of the chipset or internal to the processor not really related to ACPI. Except that you need an ACPI driver to use it typically.

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot] and 5 guests