diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c index 80a0907ad610..f472c829ec6b 100644 --- a/sys/kern/init_main.c +++ b/sys/kern/init_main.c @@ -462,7 +462,7 @@ proc0_init(void *dummy __unused) td->td_base_user_pri = PUSER; td->td_lend_user_pri = PRI_MAX; td->td_priority = PVM; - td->td_base_pri = PUSER; + td->td_base_pri = PVM; td->td_oncpu = 0; td->td_flags = TDF_INMEM|TDP_KTHREAD; td->td_cpuset = cpuset_thread0(); diff --git a/sys/kern/kern_kthread.c b/sys/kern/kern_kthread.c index 679420012aac..95f896fa5aa6 100644 --- a/sys/kern/kern_kthread.c +++ b/sys/kern/kern_kthread.c @@ -117,14 +117,15 @@ kproc_create(void (*func)(void *), void *arg, /* call the processes' main()... */ cpu_set_fork_handler(td, func, arg); + thread_lock(td); TD_SET_CAN_RUN(td); + sched_prio(td, PVM); + sched_user_prio(td, PUSER); /* Delay putting it on the run queue until now. */ - if (!(flags & RFSTOPPED)) { - thread_lock(td); + if (!(flags & RFSTOPPED)) sched_add(td, SRQ_BORING); - thread_unlock(td); - } + thread_unlock(td); return 0; }