Are you already implemented startup IPI cicle? I was stucked raising it, because the AP keep freezed after load GDT in gdt_init()
El martes 25 de octubre de 2022, Damien Zammit escribió: > This patch series is based on Almu's work on SMP, > with additional work by me and refactored for upstream. > > My goal is to have --enable-ncpus=X and --{enable/disable}-apic > working with X >= 1. That means PIC should still work with SMP on i386. > > With --enable-ncpus=1 and --disable-apic > it still works as before. > > With --enable-ncpus=2 and --disable-apic > it hangs at boot with -smp 1 (timer routing issue?) > > With --enable-ncpus=2 and --enable-apic > it general protection faults with -smp 1 or 2 (nested interrupts?) > > The first 6 patches are independent from each other > and quite small: > [PATCH 01/12] kdb: Fix TODO for multiprocessor > [PATCH 02/12] kern/startup: Disable interrupts before starting APs > [PATCH 03/12] bios32: Use phystokv() on low bios addresses > [PATCH 04/12] acpi: Add lapic_addr > [PATCH 05/12] linux: Reduce worst case wait to 10 seconds for disks > [PATCH 06/12] linux drivers: Don't depend on curr_pic_mask for APIC > > The rest of the patches are to be reviewed in order of increasing > difficulty: > [PATCH 07/12] i386/pit: Tune delays > [PATCH 08/12] i386: Add AP variants of descriptor tables > [PATCH 09/12] i386: Fix lapic and ioapic for smp > [PATCH 10/12] Add cpu_number and cpuboot > [PATCH 11/12] i386: Fix race in multiprocessor ktss > > The last commit is difficult to split up and includes changes in locore.S: > [PATCH 12/12] i386: Refactor int stacks to be per cpu for SMP > > > -- Enviado desde mi dispositivo Sailfish