diff options
author | jake <jake@FreeBSD.org> | 2001-02-28 02:53:44 +0000 |
---|---|---|
committer | jake <jake@FreeBSD.org> | 2001-02-28 02:53:44 +0000 |
commit | 623f06756a2fee7aa42dcd2328139007fd86bdb8 (patch) | |
tree | 2c59521942b2c5e581e4929f8e039ce2f6c63ccd /sys | |
parent | b31794bc17abbe5f5aec97c5172725ab3fbb9443 (diff) | |
download | FreeBSD-src-623f06756a2fee7aa42dcd2328139007fd86bdb8.zip FreeBSD-src-623f06756a2fee7aa42dcd2328139007fd86bdb8.tar.gz |
Sigh. Try to get priorities sorted out. Don't bother trying to
update native priority, it is diffcult to get right and likely
to end up horribly wrong. Use an honestly wrong fixed value
that seems to work; PUSER for user threads, and the interrupt
priority for ithreads. Set it once when the process is created
and forget about it.
Suggested by: bde
Pointy hat: me
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/init_main.c | 2 | ||||
-rw-r--r-- | sys/kern/kern_fork.c | 1 | ||||
-rw-r--r-- | sys/kern/kern_intr.c | 1 | ||||
-rw-r--r-- | sys/kern/kern_mutex.c | 2 | ||||
-rw-r--r-- | sys/kern/subr_turnstile.c | 2 | ||||
-rw-r--r-- | sys/kern/subr_witness.c | 2 |
6 files changed, 2 insertions, 8 deletions
diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c index 4231390..1bc112d 100644 --- a/sys/kern/init_main.c +++ b/sys/kern/init_main.c @@ -306,7 +306,7 @@ proc0_init(void *dummy __unused) p->p_nice = NZERO; p->p_pri.pri_class = PRI_TIMESHARE; p->p_pri.pri_level = PVM; - p->p_pri.pri_native = PRI_MAX; + p->p_pri.pri_native = PUSER; p->p_pri.pri_user = PUSER; p->p_peers = 0; diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c index e99ef22..9f19669 100644 --- a/sys/kern/kern_fork.c +++ b/sys/kern/kern_fork.c @@ -357,7 +357,6 @@ again: p2 = newproc; p2->p_intr_nesting_level = 0; - p2->p_pri.pri_native = PRI_MAX; p2->p_stat = SIDL; /* protect against others */ p2->p_pid = trypid; LIST_INSERT_HEAD(&allproc, p2, p_list); diff --git a/sys/kern/kern_intr.c b/sys/kern/kern_intr.c index 1c37284..f64e89d 100644 --- a/sys/kern/kern_intr.c +++ b/sys/kern/kern_intr.c @@ -134,6 +134,7 @@ ithread_update(struct ithd *ithd) entropy = 0; p->p_pri.pri_level = ih->ih_pri; + p->p_pri.pri_native = ih->ih_pri; TAILQ_FOREACH(ih, &ithd->it_handlers, ih_next) { if (strlen(p->p_comm) + strlen(ih->ih_name) + 1 < sizeof(p->p_comm)) { diff --git a/sys/kern/kern_mutex.c b/sys/kern/kern_mutex.c index fbee435..0b0ba86 100644 --- a/sys/kern/kern_mutex.c +++ b/sys/kern/kern_mutex.c @@ -426,8 +426,6 @@ _mtx_lock_sleep(struct mtx *m, int opts, const char *file, int line) p->p_blocked = m; p->p_mtxname = m->mtx_description; p->p_stat = SMTX; - if (p->p_pri.pri_native == PRI_MAX) - p->p_pri.pri_native = p->p_pri.pri_level; propagate_priority(p); if ((opts & MTX_QUIET) == 0) diff --git a/sys/kern/subr_turnstile.c b/sys/kern/subr_turnstile.c index fbee435..0b0ba86 100644 --- a/sys/kern/subr_turnstile.c +++ b/sys/kern/subr_turnstile.c @@ -426,8 +426,6 @@ _mtx_lock_sleep(struct mtx *m, int opts, const char *file, int line) p->p_blocked = m; p->p_mtxname = m->mtx_description; p->p_stat = SMTX; - if (p->p_pri.pri_native == PRI_MAX) - p->p_pri.pri_native = p->p_pri.pri_level; propagate_priority(p); if ((opts & MTX_QUIET) == 0) diff --git a/sys/kern/subr_witness.c b/sys/kern/subr_witness.c index fbee435..0b0ba86 100644 --- a/sys/kern/subr_witness.c +++ b/sys/kern/subr_witness.c @@ -426,8 +426,6 @@ _mtx_lock_sleep(struct mtx *m, int opts, const char *file, int line) p->p_blocked = m; p->p_mtxname = m->mtx_description; p->p_stat = SMTX; - if (p->p_pri.pri_native == PRI_MAX) - p->p_pri.pri_native = p->p_pri.pri_level; propagate_priority(p); if ((opts & MTX_QUIET) == 0) |