kern/129164: Wrong priority value for normal processes
Unga
unga888 at yahoo.com
Tue Nov 25 04:20:04 PST 2008
The following reply was made to PR kern/129164; it has been noted by GNATS.
From: Unga <unga888 at yahoo.com>
To: Garrett Cooper <yanefbsd at gmail.com>
Cc: freebsd-gnats-submit at FreeBSD.org
Subject: Re: kern/129164: Wrong priority value for normal processes
Date: Tue, 25 Nov 2008 04:12:24 -0800 (PST)
--- On Tue, 11/25/08, Garrett Cooper <yanefbsd at gmail.com> wrote:
> rtp.prio is an unsigned short, and there is some rollover
> because the number set for the priority is then subtracted
> by 128 (see the following grepped snippets). This appears to
> be a cosmetic issue which should be fixed by shifting the
> starting offset for the priorities. Unless it's really a
> dealbreaker (because it shouldn't be considering that
> all processes are in fact fudged by this value range, but it
> does touch the ULE / scheduler code a bit from the looks of
> it), I would mark this bug Sev 2, Priority High.
>
> [gcooper at optimus ~]$ grep -rn PRI_MIN_REALTIME
> /usr/src/sys/
> /usr/src/sys/kern/kern_resource.c:479: newpri =
> PRI_MIN_REALTIME + rtp->prio;
> /usr/src/sys/kern/kern_resource.c:511: rtp->prio =
> td->td_base_user_pri - PRI_MIN_REALTIME;
> /usr/src/sys/kern/kern_umtx.c:1934: if (UPRI(td) <
> PRI_MIN_REALTIME + ceiling) {
> /usr/src/sys/kern/kern_umtx.c:1939: if (su &&
> PRI_MIN_REALTIME + ceiling < uq->uq_inherited_pri) {
> /usr/src/sys/kern/kern_umtx.c:1940: uq->uq_inherited_pri
> = PRI_MIN_REALTIME + ceiling;
> /usr/src/sys/kern/kern_umtx.c:2069: new_inherited_pri =
> PRI_MIN_REALTIME + rceiling;
> /usr/src/sys/kern/sched_ule.c:1406: pri =
> PRI_MIN_REALTIME;
> /usr/src/sys/kern/sched_ule.c:1407: pri +=
> ((PRI_MAX_REALTIME - PRI_MIN_REALTIME) / sched_interact)
> /usr/src/sys/kern/sched_ule.c:1409: KASSERT(pri >=
> PRI_MIN_REALTIME && pri <= PRI_MAX_REALTIME,
> /usr/src/sys/sys/priority.h:98:#define PRI_MAX_KERN (PRI_MIN_REALTIME
> - 1)
> /usr/src/sys/sys/priority.h:112:#define PRI_MIN_REALTIME (128)
>
All above realtime priority calculations seems to be correct as per the /usr/src/sys/sys/priority.h.
Let me check the possibility whether there is any priority translation error in rtprio(2). Could I know where the rtprio(2) is implemented?
Regards
Unga
More information about the freebsd-bugs
mailing list