diff options
author | Ian Moffett <ian@osmora.org> | 2025-08-20 00:35:47 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-08-20 00:35:47 -0400 |
commit | 188297a70053a59fddcca7dc598ae4adfaef4199 (patch) | |
tree | 863967ccbe3f22054fc50400aa301d14240edea2 /sys/arch/amd64/amd64 | |
parent | 32562fd6e829ca9262b8c78696930edfa15971de (diff) |
kernel/amd64: Add preemptable flag to cpu_info
Add a new 'preempt' field to cpu_info' to indicate if that specific processor is preemptable.
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/arch/amd64/amd64')
-rw-r--r-- | sys/arch/amd64/amd64/machdep.c | 1 | ||||
-rw-r--r-- | sys/arch/amd64/amd64/proc_machdep.c | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/sys/arch/amd64/amd64/machdep.c b/sys/arch/amd64/amd64/machdep.c index 94b2d18..72de150 100644 --- a/sys/arch/amd64/amd64/machdep.c +++ b/sys/arch/amd64/amd64/machdep.c @@ -609,6 +609,7 @@ cpu_startup(struct cpu_info *ci) try_mitigate_spectre(); ci->online = 1; + ci->preempt = 1; cpu_get_info(ci); cpu_enable_smep(); diff --git a/sys/arch/amd64/amd64/proc_machdep.c b/sys/arch/amd64/amd64/proc_machdep.c index a1d6563..56348be 100644 --- a/sys/arch/amd64/amd64/proc_machdep.c +++ b/sys/arch/amd64/amd64/proc_machdep.c @@ -273,6 +273,11 @@ md_sched_switch(struct trapframe *tf) struct cpu_info *ci; ci = this_cpu(); + if (!ci->preempt) { + sched_oneshot(false); + return; + } + td = ci->curtd; mi_sched_switch(td); |