From ecd4a72677452f518b38a63ab5900f913faa67ef Mon Sep 17 00:00:00 2001 From: Matheus Date: Thu, 22 Aug 2024 20:17:32 -0300 Subject: [PATCH] itimer: allow interrupts to happen while waiting to schedule on a specific cpu --- kernel-src/sys/itimer.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel-src/sys/itimer.c b/kernel-src/sys/itimer.c index 812f5b26..d10ce027 100644 --- a/kernel-src/sys/itimer.c +++ b/kernel-src/sys/itimer.c @@ -34,6 +34,10 @@ void itimer_pause(itimer_t *itimer, uintmax_t *remainingus, uintmax_t *repeatus) // schedule on the itimer cpu sched_targetcpu(itimer->cpu); spinlock_release(&itimer->lock); + // allow interrupts to be handled (such as a tlb shootdown) + // as the other cpu could be busy waiting for this one + interrupt_set(true); + interrupt_set(false); sched_yield(); sched_targetcpu(NULL); spinlock_acquire(&itimer->lock);