diff options
author | John Baldwin <jhb@FreeBSD.org> | 2022-07-14 20:13:35 +0000 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2022-07-14 20:13:35 +0000 |
commit | ed998d1c24dba600cf5fdf669370f1e2dfad3e47 (patch) | |
tree | a95231596b07de14cff0f9ab68fcf980e5dc80d4 /sys/kern/kern_intr.c | |
parent | fea89a2804ad89f5342268a8546a3f9b515b5e6c (diff) | |
download | src-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.c | 4 |
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++; |