aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/kern_intr.c
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2022-07-14 20:13:35 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2022-07-14 20:13:35 +0000
commited998d1c24dba600cf5fdf669370f1e2dfad3e47 (patch)
treea95231596b07de14cff0f9ab68fcf980e5dc80d4 /sys/kern/kern_intr.c
parentfea89a2804ad89f5342268a8546a3f9b515b5e6c (diff)
downloadsrc-ed998d1c24dba600cf5fdf669370f1e2dfad3e47.tar.gz
src-ed998d1c24dba600cf5fdf669370f1e2dfad3e47.zip
ithreads: Support priority adjustment by schedulers.
Use sched_wakeup instead of sched_add when marking an ithread runnable. This allows schedulers to reset their internal time slice tracking state and restore the base ithread priority when an ithread resumes from idle. Reviewed by: markj Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D35643
Diffstat (limited to 'sys/kern/kern_intr.c')
-rw-r--r--sys/kern/kern_intr.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/kern_intr.c b/sys/kern/kern_intr.c
index 693c5595ba31..3cd80f63704f 100644
--- a/sys/kern/kern_intr.c
+++ b/sys/kern/kern_intr.c
@@ -589,7 +589,7 @@ ithread_destroy(struct intr_thread *ithread)
ithread->it_flags |= IT_DEAD;
if (TD_AWAITING_INTR(td)) {
TD_CLR_IWAIT(td);
- sched_add(td, SRQ_INTR);
+ sched_wakeup(td, SRQ_INTR);
} else
thread_unlock(td);
}
@@ -1020,7 +1020,7 @@ intr_event_schedule_thread(struct intr_event *ie, struct trapframe *frame)
CTR3(KTR_INTR, "%s: schedule pid %d (%s)", __func__, td->td_proc->p_pid,
td->td_name);
TD_CLR_IWAIT(td);
- sched_add(td, SRQ_INTR);
+ sched_wakeup(td, SRQ_INTR);
} else {
#ifdef HWPMC_HOOKS
it->it_waiting++;