Page MenuHomeFreeBSD

D45391.diff
No OneTemporary

D45391.diff

diff --git a/sys/sys/priority.h b/sys/sys/priority.h
--- a/sys/sys/priority.h
+++ b/sys/sys/priority.h
@@ -64,17 +64,23 @@
*/
/*
- * Priorities range from 0 to 255, but differences of less then 4 (RQ_PPQ)
- * are insignificant. Ranges are as follows:
+ * Priorities range from 0 to 255. Ranges are as follows:
*
- * Interrupt threads: 0 - 15
- * Realtime user threads: 16 - 47
- * Top half kernel threads: 48 - 87
- * Time sharing user threads: 88 - 223
+ * Interrupt threads: 0 - 7
+ * Realtime user threads: 8 - 39
+ * Top half kernel threads: 40 - 55
+ * Time sharing user threads: 56 - 223
* Idle user threads: 224 - 255
*
- * XXX If/When the specific interrupt thread and top half thread ranges
- * disappear, a larger range can be used for user processes.
+ * Priority levels of rtprio(2)'s RTP_PRIO_FIFO and RTP_PRIO_REALTIME and
+ * POSIX's SCHED_FIFO and SCHED_RR are directly mapped to the internal realtime
+ * range mentioned above by a simple translation. This range's length
+ * consequently cannot be changed without impacts on the scheduling priority
+ * code, and in any case must never be smaller than 32 for POSIX compliance and
+ * rtprio(2) backwards compatibility. Similarly, priority levels of rtprio(2)'s
+ * RTP_PRIO_IDLE are directly mapped to the internal idle range above (and,
+ * soon, those of the to-be-introduced SCHED_IDLE policy as well), so changing
+ * that range is subject to the same caveats and restrictions.
*/
#define PRI_MIN (0) /* Highest priority. */
@@ -88,34 +94,34 @@
* decay to lower priorities if they run for full time slices.
*/
#define PI_REALTIME (PRI_MIN_ITHD + 0)
-#define PI_INTR (PRI_MIN_ITHD + 4)
+#define PI_INTR (PRI_MIN_ITHD + 1)
#define PI_AV PI_INTR
#define PI_NET PI_INTR
#define PI_DISK PI_INTR
#define PI_TTY PI_INTR
#define PI_DULL PI_INTR
-#define PI_SOFT (PRI_MIN_ITHD + 8)
+#define PI_SOFT (PRI_MIN_ITHD + 2)
#define PI_SOFTCLOCK PI_SOFT
#define PI_SWI(x) PI_SOFT
-#define PRI_MIN_REALTIME (16)
+#define PRI_MIN_REALTIME (8)
#define PRI_MAX_REALTIME (PRI_MIN_KERN - 1)
-#define PRI_MIN_KERN (48)
+#define PRI_MIN_KERN (40)
#define PRI_MAX_KERN (PRI_MIN_TIMESHARE - 1)
#define PSWP (PRI_MIN_KERN + 0)
-#define PVM (PRI_MIN_KERN + 4)
-#define PINOD (PRI_MIN_KERN + 8)
-#define PRIBIO (PRI_MIN_KERN + 12)
-#define PVFS (PRI_MIN_KERN + 16)
-#define PZERO (PRI_MIN_KERN + 20)
-#define PSOCK (PRI_MIN_KERN + 24)
-#define PWAIT (PRI_MIN_KERN + 28)
-#define PLOCK (PRI_MIN_KERN + 32)
-#define PPAUSE (PRI_MIN_KERN + 36)
+#define PVM (PRI_MIN_KERN + 1)
+#define PINOD (PRI_MIN_KERN + 2)
+#define PRIBIO (PRI_MIN_KERN + 3)
+#define PVFS (PRI_MIN_KERN + 4)
+#define PZERO (PRI_MIN_KERN + 5)
+#define PSOCK (PRI_MIN_KERN + 6)
+#define PWAIT (PRI_MIN_KERN + 7)
+#define PLOCK (PRI_MIN_KERN + 8)
+#define PPAUSE (PRI_MIN_KERN + 9)
-#define PRI_MIN_TIMESHARE (88)
+#define PRI_MIN_TIMESHARE (56)
#define PRI_MAX_TIMESHARE (PRI_MIN_IDLE - 1)
#define PUSER (PRI_MIN_TIMESHARE)

File Metadata

Mime Type
text/plain
Expires
Sat, Sep 21, 7:01 PM (6 h, 16 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
11433278
Default Alt Text
D45391.diff (2 KB)

Event Timeline