Messages in this thread | | | From | (Ferenc Wágner) | Subject | What's the priority of the idle task? | Date | Tue, 03 Apr 2018 12:24:25 +0200 |
| |
Hi,
(Please let me ask my Stackexchange question [1] here as well in the hope of getting an answer from this board of dedicated experts.)
As explained by several (if somewhat old) articles [2,3,4], the Linux idle task (PID=0, one per CPU) is run when there are no other tasks to run. To get the scheduler do this, the idle task must have the lowest priority reserved for it. That old Documentation/ftrace.txt in the linked LWN article explicitly says that
> The prio "140" is reserved for the idle task which is the lowest > priority thread (pid 0).
This makes sense, but under Linux 4.9
# perf record -e sched:sched_switch sleep 1 # perf script sleep 6526 [000] 362661.310842: sched:sched_switch: sleep:6526 [120] S ==> swapper/0:0 [120]
reports a priority of 120 for swapper/0 (in the closing bracket), contradicting the above.
How does the Linux scheduler handle the idle task nowadays? The commits removing the quoted text from ftrace.txt (87d80de28, 294ae4011) didn't help.
Please Cc me on answers/comments.
Thanks, Feri.
[1] https://unix.stackexchange.com/questions/435089/whats-the-priority-of-the-idle-task [2] https://superuser.com/a/972581/462180 [3] https://lwn.net/Articles/290277/ [4] https://unix.stackexchange.com/questions/361245/what-does-an-idle-cpu-process-do
| |