<br><br><br><div>From m2</div><br id="mzDivider"><br><br>-------- Original message --------<br>Sender: John Locke &lt;jlockefree@gmail.com&gt;<br>Time: Thu 1/21 17:53<br>To: kernelnewbies@kernelnewbies.org<br> Subject: CFS: Scheduler: How does each change in &#39;nice&#39; value result in 10% change in CPU time?<br><br>Can anyone explain how the weights that the 'nice' values are mapped<br>to actually result in an ~10% change in CPU time as you go from one<br>nice level to the next? I can't make out how the comment here actually<br>computes: (<a href="https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/kernel/sched/sched.h?id=refs/tags/v3.10.94#n918">https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/kernel/sched/sched.h?id=refs/tags/v3.10.94#n918</a>)<br><br>/*<br> * Nice levels are multiplicative, with a gentle 10% change for every<br> * nice level changed. I.e. when a CPU-bound task goes from nice 0 to<br> * nice 1, it will get ~10% less CPU time than another CPU-bound task<br> * that remained on nice 0.<br> *<br> * The "10% effect" is relative and cumulative: from _any_ nice level,<br> * if you go up 1 level, it's -10% CPU usage, if you go down 1 level<br> * it's +10% CPU usage. (to achieve that we use a multiplier of 1.25.<br> * If a task goes up by ~10% and another task goes down by ~10% then<br> * the relative distance between them is ~25%.)<br> */<br>static const int prio_to_weight[40] = {<br><br>If I take an example of 2 tasks both with weight=1024 (NICE_0) they<br>should each get 50% of the CPU time. If 1 of the tasks is reniced to<br>NICE_1 then the NICE_0 task will get 1024/(1024+820)=56% of the CPU<br>time and&nbsp; the NICE_1 task will get 44% of the CPU time. I'm obviously<br>not understanding something since I can't come at those 10% figures in<br>the comments.<br><br>Thanks.<br><br>_______________________________________________<br>Kernelnewbies mailing list<br>Kernelnewbies@kernelnewbies.org<br><a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>