Kernel: All processors use LAPIC timer when running with APIC

This makes scheduler preemption much cleaner as bsb does not have to
send smp messages to notify other processes about timer interrupt.

Also PIT percision is now "full" 0.8 us instead of 1 ms that I was using
before.
This commit is contained in:
2024-07-23 02:28:52 +03:00
parent 3e0150f847
commit 539afb329a
17 changed files with 224 additions and 73 deletions

View File

@@ -113,6 +113,23 @@ asm_ipi_handler:
pop_userspace
iret
.global asm_timer_handler
asm_timer_handler:
push_userspace
load_kernel_segments
movl %esp, %ebp
subl $15, %esp
andl $0xFFFFFFF0, %esp
call cpp_timer_handler
movl %ebp, %esp
pop_userspace
iret
.macro isr n
.global isr\n
isr\n:

View File

@@ -77,6 +77,13 @@ asm_ipi_handler:
popaq
iretq
.global asm_timer_handler
asm_timer_handler:
pushaq
call cpp_timer_handler
popaq
iretq
.macro isr n
.global isr\n
isr\n: