From ab37adbacf0f33845804c788b39680cd754752a8 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Sat, 22 Nov 2025 09:31:21 -0500 Subject: fix: kernel: Important kernel fixes for SMP. Adding 'NeKernel' process as well. Signed-off-by: Amlal El Mahrouss --- dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc') diff --git a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc index 8957ca8f..5a530457 100644 --- a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc +++ b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc @@ -116,14 +116,13 @@ EXTERN_C HAL::StackFramePtr mp_get_current_task(ThreadID thrdid) { EXTERN_C BOOL mp_register_task(HAL::StackFramePtr stack_frame, ThreadID thrdid) { if (!stack_frame) return NO; - if (thrdid > kSMPCount) return NO; - if (!kSMPAware) { sched_jump_to_task(kHWThread[thrdid].mFramePtr); - return YES; } + if (thrdid > kSMPCount) return NO; + HardwareThreadScheduler::The()[thrdid].Leak()->Busy(NO); kHWThread[thrdid].mFramePtr = stack_frame; @@ -146,12 +145,6 @@ Bool mp_is_smp(Void) noexcept { Void mp_init_cores(VoidPtr vendor_ptr) noexcept { if (!vendor_ptr) return; - if (!kHandoverHeader) return; - - if (!kHandoverHeader->f_HardwareTables.f_MultiProcessingEnabled) { - kSMPAware = NO; - return; - } PowerFactoryInterface hw_and_pow_int{vendor_ptr}; @@ -210,9 +203,6 @@ Void mp_init_cores(VoidPtr vendor_ptr) noexcept { ++kSMPCount; kout << "AP: kind: LAPIC: ON.\r"; - - // 0x7c00, as recommended by the Intel SDM. - hal_send_ipi_msg(kApicBaseAddress, entry_struct->ProcessorID, 0x7c); } else { kout << "AP: kind: LAPIC: OFF.\r"; } -- cgit v1.2.3