Nonlinear is a must IMO. I would suggest X = exp(ln(10)/10) ~= 1.2589
That value has the property that a nice=10 task gets 1/10th the cpu of a
nice=0 task, and a nice=20 task gets 1/100 of nice=0. I think that
would be fairly easy to explain to admins and users so that they can
know what to expect from nicing tasks.
I think this would be a lot harder to pin down, since it's a function of
all the other tasks running and their nice levels. Do you have any of
the RT-derived analysis models in mind?
It might be easier to specify the maximum deviation from the ideal
bandwidth over a certain period. I.e. something like "over a period of
one second, each task receives within 10% of the expected bandwidth".
- Jim Bruce
-