From: Nobin Mathew <nobin.mathew@gmail.com>
To: "Leonidas ." <leonidas137@gmail.com>
Cc: Shivdas Gujare <shivdas.tech@gmail.com>, linux-kernel@vger.kernel.org
Subject: Re: init_task belongs to "process 0" or "process 1"?
Date: Mon, 11 Jan 2010 17:53:57 +0530 [thread overview]
Message-ID: <8d6898731001110423l458a03dbif6d5a56d719b4602@mail.gmail.com> (raw)
In-Reply-To: <f22d86811001101258x3ed5d50bxdfab4abd16610156@mail.gmail.com>
On Mon, Jan 11, 2010 at 2:28 AM, Leonidas . <leonidas137@gmail.com> wrote:
>> init_task is the head of doubly linked list which holds all
>> task_structs in the system. init_task is again the task_struct for
>> process 0/swapper/idle task. This process is created manually (I meant
>> to say not by copy_process() calls). Manually means they are static
>> structures defined in the code (see INIT_TASK, init_mm, init_fs etc).
>> There will be multiple idle task if there is more than 1 cpu core.
>> Idle task is the one which is scheduled if there is no other task
>> ready for scheduling.
>
> An idle task per core? So these tasks must be having different pids
> right? As per my understanding there is only 1 idle task, in that case
> on multiple cores when there is no activties on more than one cores,
> how things would work? Same task cant be stored on different cores at
> the same time right?
>
> How is this handled?
Yes there is one idle task per core and all idle task have the same pid 0.
once they are created they are directly put into per cpu runque,
runqueue has a member called idle
which is of type struct task_struct.
See
do_boot_cpu()
|
do_fork_idle()
|
fork_idle()
only the idle task in the first cpu core is created manually, all the
idle tasks in other cpu core is created using copy_process i.e.
copying the original idle task.
Correct if I am wrong.
Nobin.
>
> -Leo.
>
prev parent reply other threads:[~2010-01-11 12:24 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-04 8:07 Shivdas Gujare
2010-01-05 7:32 ` Nobin Mathew
2010-01-05 15:52 ` Chris Friesen
2010-01-10 20:58 ` Leonidas .
2010-01-11 12:23 ` Nobin Mathew [this message]
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=8d6898731001110423l458a03dbif6d5a56d719b4602@mail.gmail.com \
--to=nobin.mathew@gmail.com \
--cc=leonidas137@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=shivdas.tech@gmail.com \
/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
all inboxes | Powered by JetHome®