If no arguments or just \fI-p\fR is given, \fIionice\fR will query the current
io scheduling class and priority for that process.
-As of this writing, Linux supports 3 scheduling classes:
+As of this writing, a process can be in one of four scheduling classes:
.IP "\fBIdle\fP"
A program running with idle io priority will only get disk time when no other
is permitted for an ordinary user (since kernel 2.6.25).
.IP "\fBBest effort\fP"
-This is the default scheduling class for any process that hasn't asked for
-a specific io priority. Programs inherit the CPU nice setting for io
-priorities. This class takes a priority argument from \fI0-7\fR, with lower
+This is the effective scheduling class for any process that hasn't asked for
+a specific io priority.
+This class takes a priority argument from \fI0-7\fR, with lower
number being higher priority. Programs running at the same best effort
priority are served in a round-robin fashion.
will receive on each scheduling window. This scheduling class is not
permitted for an ordinary (i.e., non-root) user.
+.IP "\fBNone\fP"
+A process that that hasn't asked for a specific io priority will formally be
+in this class. The io scheduler will treat a process that is in this class as
+if it were in the best effort class. The priority within the best effort
+class will be dynamically derived from the cpu nice level of the process:
+io_priority = (cpu_nice + 20) / 5
+
+
.SH OPTIONS
.IP "\fB-c \fIclass\fP"
The scheduling class. \fI1\fR for real time, \fI2\fR for best-effort, \fI3\fR for idle.