Re: CFS: Scheduler: How does each change in 'nice' value result in 10% change in CPU time?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





From m2

-------- Original message --------
Sender: John Locke <jlockefree@xxxxxxxxx>
Time: Thu 1/21 17:53
To: kernelnewbies@xxxxxxxxxxxxxxxxx
 Subject: CFS: Scheduler: How does each change in 'nice' value result in 10% change in CPU time?

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

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux