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