bin/ps: Make the rtprio option actually show realtime priorities

Fix the rtprio option that for some reason was progessively becoming an
option showing the priority class of threads. In particular:

- use the constants defined in sys/sys/rtprio.h instead of those defined in
  sys/sys/priority.h: this helps making clearer that the code actually is
  about realtime priorities and not standard scheduler priorities;
- remove the PRI_ITHD case that has nothing to do with realtime priorities;
- convert the priority levels to realtime priority levels using the same
  formulas used for pri_to_rtp function in sys/kern/kern_resource.c.
- remove outdated note "101 = not a realtime process" in the man page and
  replace it with a more useful reference to man 1 rtprio.

Approved by:	src (mckusick), manpages (bcr), gerald (mentor)
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D25266
This commit is contained in:
Lorenzo Salvadore 2020-06-19 09:27:58 +00:00
parent 204fa3b066
commit 50301bb0a1
2 changed files with 11 additions and 10 deletions

View File

@ -704,17 +704,17 @@ priorityr(KINFO *k, VARENT *ve __unused)
class = lpri->pri_class;
level = lpri->pri_level;
switch (class) {
case PRI_ITHD:
asprintf(&str, "intr:%u", level);
case RTP_PRIO_REALTIME:
/* alias for PRI_REALTIME */
asprintf(&str, "real:%u", level - PRI_MIN_REALTIME);
break;
case PRI_REALTIME:
asprintf(&str, "real:%u", level);
case RTP_PRIO_NORMAL:
/* alias for PRI_TIMESHARE */
asprintf(&str, "normal:%u", level - PRI_MIN_TIMESHARE);
break;
case PRI_TIMESHARE:
asprintf(&str, "normal");
break;
case PRI_IDLE:
asprintf(&str, "idle:%u", level);
case RTP_PRIO_IDLE:
/* alias for PRI_IDLE */
asprintf(&str, "idle:%u", level - PRI_MIN_IDLE);
break;
default:
asprintf(&str, "%u:%u", class, level);

View File

@ -648,7 +648,8 @@ group name (from rgid)
.It Cm rss
resident set size
.It Cm rtprio
realtime priority (101 = not a realtime process)
realtime priority (see
.Xr rtprio 1)
.It Cm ruid
real user ID
.It Cm ruser