What is ionice `none: prio 0` equivalent to?
up vote
6
down vote
favorite
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):
What is the inheritance mapping for the scheduled class? Does TS SCHED_OTHER = Best Effort (io class 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 bebest-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.
linux ionice
add a comment |
up vote
6
down vote
favorite
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):
What is the inheritance mapping for the scheduled class? Does TS SCHED_OTHER = Best Effort (io class 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 bebest-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.
linux ionice
add a comment |
up vote
6
down vote
favorite
up vote
6
down vote
favorite
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):
What is the inheritance mapping for the scheduled class? Does TS SCHED_OTHER = Best Effort (io class 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 bebest-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.
linux ionice
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):
What is the inheritance mapping for the scheduled class? Does TS SCHED_OTHER = Best Effort (io class 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 bebest-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.
linux ionice
linux ionice
edited Aug 7 '13 at 17:51
asked Aug 7 '13 at 17:26
Kyle Brandt
392114
392114
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
1)
From the docs sched-design-CFS.txt:
CFS stands for "Completely Fair Scheduler," and is the new "desktop" process
scheduler implemented by Ingo Molnar and merged in Linux 2.6.23. It is the
replacement for the previous vanilla scheduler's SCHED_OTHER interactivity
code.
It seems you mixing up the O(1) scheduler with the CFQ io-scheduler.
So there are SCHED_{NORMAL, BATCH, IDLE} policies. IDLE does not have any priorities. And sched classes idle, best-effort and realtime.
2) Sadly you do not show what commands you typed. For example change init's io-scheduling to best-effort class
# ionice -p 1
none: prio 0
# ionice -c2 20 -p 1
# ionice -p 1
best-effort: prio 4
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
1)
From the docs sched-design-CFS.txt:
CFS stands for "Completely Fair Scheduler," and is the new "desktop" process
scheduler implemented by Ingo Molnar and merged in Linux 2.6.23. It is the
replacement for the previous vanilla scheduler's SCHED_OTHER interactivity
code.
It seems you mixing up the O(1) scheduler with the CFQ io-scheduler.
So there are SCHED_{NORMAL, BATCH, IDLE} policies. IDLE does not have any priorities. And sched classes idle, best-effort and realtime.
2) Sadly you do not show what commands you typed. For example change init's io-scheduling to best-effort class
# ionice -p 1
none: prio 0
# ionice -c2 20 -p 1
# ionice -p 1
best-effort: prio 4
add a comment |
up vote
0
down vote
1)
From the docs sched-design-CFS.txt:
CFS stands for "Completely Fair Scheduler," and is the new "desktop" process
scheduler implemented by Ingo Molnar and merged in Linux 2.6.23. It is the
replacement for the previous vanilla scheduler's SCHED_OTHER interactivity
code.
It seems you mixing up the O(1) scheduler with the CFQ io-scheduler.
So there are SCHED_{NORMAL, BATCH, IDLE} policies. IDLE does not have any priorities. And sched classes idle, best-effort and realtime.
2) Sadly you do not show what commands you typed. For example change init's io-scheduling to best-effort class
# ionice -p 1
none: prio 0
# ionice -c2 20 -p 1
# ionice -p 1
best-effort: prio 4
add a comment |
up vote
0
down vote
up vote
0
down vote
1)
From the docs sched-design-CFS.txt:
CFS stands for "Completely Fair Scheduler," and is the new "desktop" process
scheduler implemented by Ingo Molnar and merged in Linux 2.6.23. It is the
replacement for the previous vanilla scheduler's SCHED_OTHER interactivity
code.
It seems you mixing up the O(1) scheduler with the CFQ io-scheduler.
So there are SCHED_{NORMAL, BATCH, IDLE} policies. IDLE does not have any priorities. And sched classes idle, best-effort and realtime.
2) Sadly you do not show what commands you typed. For example change init's io-scheduling to best-effort class
# ionice -p 1
none: prio 0
# ionice -c2 20 -p 1
# ionice -p 1
best-effort: prio 4
1)
From the docs sched-design-CFS.txt:
CFS stands for "Completely Fair Scheduler," and is the new "desktop" process
scheduler implemented by Ingo Molnar and merged in Linux 2.6.23. It is the
replacement for the previous vanilla scheduler's SCHED_OTHER interactivity
code.
It seems you mixing up the O(1) scheduler with the CFQ io-scheduler.
So there are SCHED_{NORMAL, BATCH, IDLE} policies. IDLE does not have any priorities. And sched classes idle, best-effort and realtime.
2) Sadly you do not show what commands you typed. For example change init's io-scheduling to best-effort class
# ionice -p 1
none: prio 0
# ionice -c2 20 -p 1
# ionice -p 1
best-effort: prio 4
answered Dec 30 '13 at 22:40
user55518
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f85860%2fwhat-is-ionice-none-prio-0-equivalent-to%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown