summaryrefslogtreecommitdiff
path: root/kern
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2023-08-11 08:34:53 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-08-13 00:42:21 +0200
commit8ff5ff4001e2f6c2361f452db6f7f468ea3a84b9 (patch)
tree526583a78dc9672d131e598a0767688e710a6201 /kern
parent18c0d15c5b63fc2345c63a78f5586ff47eda706f (diff)
kern/sched_prim: Cause ast on cpu coming out of idle
Message-Id: <20230811083424.2154350-3-damien@zamaudio.com>
Diffstat (limited to 'kern')
-rw-r--r--kern/sched_prim.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/kern/sched_prim.c b/kern/sched_prim.c
index 0cd4ce59..be34e7dd 100644
--- a/kern/sched_prim.c
+++ b/kern/sched_prim.c
@@ -1281,6 +1281,8 @@ void thread_setrun(
processor->state = PROCESSOR_DISPATCHING;
simple_unlock(&pset->idle_lock);
processor_unlock(processor);
+ if (processor != current_processor())
+ cause_ast_check(processor);
return;
}
simple_unlock(&pset->idle_lock);
@@ -1298,6 +1300,8 @@ void thread_setrun(
processor->next_thread = th;
processor->state = PROCESSOR_DISPATCHING;
simple_unlock(&pset->idle_lock);
+ if (processor != current_processor())
+ cause_ast_check(processor);
return;
}
simple_unlock(&pset->idle_lock);
@@ -1336,6 +1340,8 @@ void thread_setrun(
processor->state = PROCESSOR_DISPATCHING;
simple_unlock(&pset->idle_lock);
processor_unlock(processor);
+ if (processor != current_processor())
+ cause_ast_check(processor);
return;
}
simple_unlock(&pset->idle_lock);