Why does ionice(1) ban the user to set back to 'none' class?

From: Zheng Liu
Date: Mon Jun 18 2012 - 07:40:40 EST


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.

[Sorry, I don't subscribe linux-doc and linux-kernel mailing list.
Please CC to me.]

1. ${linux_src}/Documentation/block/ioprio.txt.

Regards,
Zheng
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/