Date: Tue, 25 Nov 2008 12:20:04 GMT From: Unga <unga888@yahoo.com> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/129164: Wrong priority value for normal processes Message-ID: <200811251220.mAPCK4LC006155@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/129164; it has been noted by GNATS. From: Unga <unga888@yahoo.com> To: Garrett Cooper <yanefbsd@gmail.com> Cc: freebsd-gnats-submit@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@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@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200811251220.mAPCK4LC006155>