bug-hurd
[Top][All Lists]
Advanced

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

Fwd: Comments about SMP


From: Almudena Garcia
Subject: Fwd: Comments about SMP
Date: Tue, 2 Apr 2019 14:42:32 +0200

I forgot to resend all

---------- Forwarded message ---------
De: Almudena Garcia <address@hidden>
Date: mar., 2 abr. 2019 a las 14:31
Subject: Re: Comments about SMP
To: <address@hidden>


Hi all:

I've got to implements the cpu enumeration reading ACPI tables, and to boot the system with mach_ncpus=2 and a only cpu.


I've tested It in two usecase: cpus enumeration without enable processors, and without cpu enumeration.

The first usecase is this:

And the second is this:

In both usecase, the system boots correctly (although a bit slow in the first usecase). So, in a future implementation, could be possible to start this sequence from a Hurd server.

Now I'm working in raise startup IPI to enable the processors, and add this to machine_slot array.
Currently, the IPI feels to raise correctly, but the assembly routine (to skip cpus to protected mode) is not executed.
I'm working to solve this problem.

The files in what I'm working are these:

Thanks by your interest in this project.

El lun., 11 mar. 2019 a las 1:53, Almudena Garcia (<address@hidden>) escribió:
>>  It appears mach_ncpus is hardcoded at compile time, maybe you just need
> to detect this value via ACPI (?)

Yes, this is the idea. I set mach_ncpus to maximum value to avoid broken the cpu structure arrays.

But It's not the only that I need to enable cpus. I also need to find their APIC structures (Local APIC and IOAPIC), to send IPI and communicate the cpus. 

El Lunes 11 de marzo de 2019, Damien Zammit escribió:
> Hi Almudena,
>
> > El dom., 10 mar. 2019 a las 18:35, Samuel Thibault
> > (<address@hidden <mailto:address@hidden>>) escribió:
> >     Adam Van Ymeren, le dim. 10 mars 2019 13:08:23 -0400, a ecrit:
> >     > I don't think that's necessary.  The process doesn't have to
> >     initiated from gnumach.  Hurd could have an SMP server that is
> >     started at boot, parses acpi tables and calls in to Mach to
> >     initialize the additional cores and start scheduling on them.
> >
> >     That's the idea.
>
> I'm not sure if it is required to send IPI etc, doesn't the BIOS set up
> the extra cores?  I've seen code in coreboot that sets up the extra
> cores.  I thought you only need the ACPI tables to know how many cores
> to use and pass this value somehow to Mach (?)
>
> See
> https://github.com/AlmuHS/GNUMach_SMP/blob/5bceb7fc20176b75ed3284ca3fc9856dfe2cd158/configfrag.ac#L33
>
> It appears mach_ncpus is hardcoded at compile time, maybe you just need
> to detect this value via ACPI (?) Maybe someone else can comment on how
> "broken" is multiprocessor support as specified in that inline comment.
>
> Damien
>

--
Enviado desde mi Sailfish OS

reply via email to

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