* Re: Why does ionice(1) ban the user to set back to 'none' class? [not found] ` <4FDF2D10.9050008@kernel.dk> @ 2012-06-19 2:11 ` gnehzuil.lzheng 2012-06-19 6:40 ` Bernhard Voelker 0 siblings, 1 reply; 3+ messages in thread From: gnehzuil.lzheng @ 2012-06-19 2:11 UTC (permalink / raw) To: Jens Axboe; +Cc: Rob Landley, linux-doc, linux-kernel, util-linux [CC'd to util-linux mailing list] On 06/18/2012 09:28 PM, Jens Axboe wrote: > On 06/18/2012 01:48 PM, Zheng Liu wrote: >> Hi Jens, >> >> I meet a problem when I use ionice(1) to adjust a process's io priority. >> I do the following operations: >> >> $ ionice -p${pid} >> none: prio 0 >> $ ionice -p${pid} -c2 -n4 >> $ ionice -p${pid} >> best-effort: prio 4 >> $ ionice -p${pid} -c0 -n0 >> $ ionice -p${pid} >> best-effort: prio 0 >> >> So I cannot set scheduling class back to 'none'. If I call ioprio_set(2) >> directly, it will be fine. But if I use ionice(1), I cannot change it. I >> read the docs about ionice in [1]. I notice this code: >> >> switch (ioprio_class) { >> case IOPRIO_CLASS_NONE: >> ioprio_class = IOPRIO_CLASS_BE; >> ^^^^^^^^^^^^^^^^ >> *It means that we cannot set back to none.* >> break; >> case IOPRIO_CLASS_RT: >> case IOPRIO_CLASS_BE: >> break; >> case IOPRIO_CLASS_IDLE: >> ioprio = 7; >> break; >> default: >> printf("bad prio class %d\n", ioprio_class); >> return 1; >> } >> >> My question is why we need to ban the user to set back to 'none'. Is there >> some reasons? Thank you. > > The kernel code does allow it, so it's only in the tool that this > restriction exists. I don't think we have a particularly good reason to > have it there. This is a tools question, though, not a kernel issue. I > suggest you take it up with the util-linux crew. I'm fine with removing > this restriction from ionice, especially since you could just roll your > own that did it. > Thanks for your reply. Hopefully we can get some feedbacks from util-linux crew. Regards, Zheng ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Why does ionice(1) ban the user to set back to 'none' class? 2012-06-19 2:11 ` Why does ionice(1) ban the user to set back to 'none' class? gnehzuil.lzheng @ 2012-06-19 6:40 ` Bernhard Voelker 2012-06-19 8:15 ` gnehzuil.lzheng 0 siblings, 1 reply; 3+ messages in thread From: Bernhard Voelker @ 2012-06-19 6:40 UTC (permalink / raw) To: gnehzuil.lzheng@gmail.com Cc: Jens Axboe, Rob Landley, linux-doc, linux-kernel, util-linux On 06/19/2012 04:11 AM, gnehzuil.lzheng@gmail.com wrote: > [CC'd to util-linux mailing list] > > On 06/18/2012 09:28 PM, Jens Axboe wrote: > >> On 06/18/2012 01:48 PM, Zheng Liu wrote: >>> Hi Jens, >>> >>> I meet a problem when I use ionice(1) to adjust a process's io priority. >>> I do the following operations: >>> >>> $ ionice -p${pid} >>> none: prio 0 >>> $ ionice -p${pid} -c2 -n4 >>> $ ionice -p${pid} >>> best-effort: prio 4 >>> $ ionice -p${pid} -c0 -n0 >>> $ ionice -p${pid} >>> best-effort: prio 0 >>> >>> So I cannot set scheduling class back to 'none'. If I call ioprio_set(2) >>> directly, it will be fine. But if I use ionice(1), I cannot change it. I >>> read the docs about ionice in [1]. I notice this code: >>> >>> switch (ioprio_class) { >>> case IOPRIO_CLASS_NONE: >>> ioprio_class = IOPRIO_CLASS_BE; >>> ^^^^^^^^^^^^^^^^ >>> *It means that we cannot set back to none.* >>> break; >>> case IOPRIO_CLASS_RT: >>> case IOPRIO_CLASS_BE: >>> break; >>> case IOPRIO_CLASS_IDLE: >>> ioprio = 7; >>> break; >>> default: >>> printf("bad prio class %d\n", ioprio_class); >>> return 1; >>> } >>> >>> My question is why we need to ban the user to set back to 'none'. Is there >>> some reasons? Thank you. >> >> The kernel code does allow it, so it's only in the tool that this >> restriction exists. I don't think we have a particularly good reason to >> have it there. This is a tools question, though, not a kernel issue. I >> suggest you take it up with the util-linux crew. I'm fine with removing >> this restriction from ionice, especially since you could just roll your >> own that did it. >> > > > Thanks for your reply. Hopefully we can get some feedbacks from > util-linux crew. That has already been fixed by commit v2.15-45-g5dc9371 more than 2 years ago: Author: Jakob Unterwurzacher <jakobunt@gmail.com> 2009-01-17 02:38:32 Committer: Karel Zak <kzak@redhat.com> 2009-05-27 23:43:18 and the change made it into 2.16. The current piece of code looks like this: switch (ioclass) { case IOPRIO_CLASS_NONE: if ((set & 1) && !tolerant) warnx(_("ignoring given class data for none class")); data = 0; break; case IOPRIO_CLASS_RT: case IOPRIO_CLASS_BE: break; We'are currently at version 2.21.2. Have a nice day, Berny ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Why does ionice(1) ban the user to set back to 'none' class? 2012-06-19 6:40 ` Bernhard Voelker @ 2012-06-19 8:15 ` gnehzuil.lzheng 0 siblings, 0 replies; 3+ messages in thread From: gnehzuil.lzheng @ 2012-06-19 8:15 UTC (permalink / raw) To: Bernhard Voelker Cc: Jens Axboe, Rob Landley, linux-doc, linux-kernel, util-linux On 06/19/2012 02:40 PM, Bernhard Voelker wrote: > That has already been fixed by commit v2.15-45-g5dc9371 more than 2 years ago: > > Author: Jakob Unterwurzacher <jakobunt@gmail.com> 2009-01-17 02:38:32 > Committer: Karel Zak <kzak@redhat.com> 2009-05-27 23:43:18 > > and the change made it into 2.16. > > The current piece of code looks like this: > > switch (ioclass) { > case IOPRIO_CLASS_NONE: > if ((set & 1) && !tolerant) > warnx(_("ignoring given class data for none class")); > data = 0; > break; > case IOPRIO_CLASS_RT: > case IOPRIO_CLASS_BE: > break; > > We'are currently at version 2.21.2. Thanks for pointing out it. I use ionice(1) in rhel5 and its version is 2.13. :-p Obviously, Documentation/block/ioprio.txt is out of date. Later I will send a patch to fix it. Regards, Zheng ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-06-19 8:15 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20120618114841.GA4855@gmail.com>
[not found] ` <4FDF2D10.9050008@kernel.dk>
2012-06-19 2:11 ` Why does ionice(1) ban the user to set back to 'none' class? gnehzuil.lzheng
2012-06-19 6:40 ` Bernhard Voelker
2012-06-19 8:15 ` gnehzuil.lzheng
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).