The ionice manual states that:
> Note that before kernel 2.6.26 a process that has not asked for an io
> priority formally uses "none" as scheduling class, but the io
> scheduler will treat such processes 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.
>
> For kernels after 2.6.26 with CFQ io scheduler a process that has not asked for an io priority inherits CPU scheduling class. The io
> priority is derived from the cpu nice level of the process (same as
> before kernel 2.6.26).
I am post 2.6.26, but that still leaves some open questions (I'm assuming CFQ):
1. What is the inheritance mapping for the scheduled class? Does TS SCHED_OTHER = Best Effort (io class 2)?
2. When using the ionice -p command to get the value, it returns
none: prio 0
. However, the formula mentioned in the ionice man would suggest that the same process (cpu nice of zero) would be best-effort: prio 4
since (0 + 20) / 5 = 4.
So my assumption at this point is that none: prio 0
= best-effort: prio 4
, but I'm hoping someone can cite some kernel source in order to prove that this is authoritatively true.
Asked by Kyle Brandt
(872 rep)
Aug 7, 2013, 05:26 PM
Last activity: Aug 9, 2025, 06:01 PM
Last activity: Aug 9, 2025, 06:01 PM