public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Till Smejkal <till.smejkal@googlemail.com>
To: "Ferenc Wágner" <wferi@niif.hu>
Cc: linux-kernel@vger.kernel.org
Subject: Re: What's the priority of the idle task?
Date: Wed, 4 Apr 2018 16:37:35 +0200	[thread overview]
Message-ID: <20180404143735.GA23925@aton> (raw)
In-Reply-To: <87muykk2p2.fsf@lant.ki.iif.hu>

On Tue, 03 Apr 2018, Ferenc Wágner wrote:
> 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.

The idle task has its own scheduling class that only handles the idle threads per CPU
core. This scheduling class has the lowest priority of the scheduling classes
available in the kernel. This means that it is the last one in the list of scheduling
classes that are asked at a task switch whether they have a task to schedule on the
CPU. Hence, the idle task is not managed by CFS and accordingly doesn't have any nice
value or priority (or at least it is not important nowadays). Interesting files in
the kernel source that might contain more information are kernel/sched/idle_task.c,
kernel/sched/sched.h and kernel/sched/core.c.

Regards
Till

  reply	other threads:[~2018-04-04 14:37 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-03 10:24 What's the priority of the idle task? Ferenc Wágner
2018-04-04 14:37 ` Till Smejkal [this message]
2018-04-09 17:45   ` Ferenc Wágner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180404143735.GA23925@aton \
    --to=till.smejkal@googlemail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=wferi@niif.hu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox