Hi Almu, I removed the slave main function and instead called the cpu launch first thread directly, see mpdesc. Of course, I have been testing the scheduler with all cpus. Unfortunately it is currently stuck in machine idle occasionally with interrupts off on one or more cpu and the first task dies for some reason thus never boots, but the timers are working and the TLB coherency interrupt seems to work via calling IPI to irq 251. It could use some testing and more eyes on the code.
We are nearly there! Damien Sent from ProtonMail mobile -------- Original Message -------- On 1 Feb 2023, 9:52 pm, Almudena Garcia wrote: >> However, with ncpus>1 and apic enabled, there are warnings spewed >> at beginning of gnumach regarding cpu_number, but doesnt prevent > >> continuing to start of boot process. > > :-) > > Then, the next step (added to little refactors) will be add the APs to > scheduler, using `slave_main()` function. > After this, the AP will be available to the scheduler, which can assign > process (or threads) to these. > > El mié, 1 feb 2023 a las 11:27, Damien Zammit (<dam...@zamaudio.com>) > escribió: > >> This has been rebased onto master and reworked to address review. >> >> Same tests applied as last time, same results as last time. >> >> However, with ncpus>1 and apic enabled, there are warnings spewed >> at beginning of gnumach regarding cpu_number, but doesnt prevent >> continuing to start of boot process. >> >> Damien