From: Oleg Nesterov <oleg@redhat.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Wu Fei <at.wufei@gmail.com>, Ingo Molnar <mingo@elte.hu>,
"Eric W. Biederman" <ebiederm@xmission.com>,
arjan@infradead.org, jeremy@goop.org, mschmidt@redhat.com,
mingo@redhat.com, hpa@zytor.com, linux-kernel@vger.kernel.org,
tj@kernel.org, tglx@linutronix.de,
Andrew Morton <akpm@linux-foundation.org>,
linux-tip-commits@vger.kernel.org,
Rusty Russell <rusty@rustcorp.com.au>
Subject: Re: [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done
Date: Fri, 18 Sep 2009 23:12:18 +0200 [thread overview]
Message-ID: <20090918211218.GA19351@redhat.com> (raw)
In-Reply-To: <alpine.LFD.2.01.0909181217270.4950@localhost.localdomain>
On 09/18, Linus Torvalds wrote:
>
> On Fri, 18 Sep 2009, Oleg Nesterov wrote:
> > > rcu_scheduler_starting();
> > > - kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);
> > > - numa_default_policy();
> > > pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES);
> > > kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns);
> > > + kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);
> >
> > We can't do this. kernel_init() should run with ->pid == 1, we are
> > going to exec /sbin/init.
>
> Umm - why not just add CLONE_PID to the 'kthreadd' creation, then?
Not sure I understand... We don't have CLONE_PID, and kthreadd()
shouldn't have pid == 0 anyway.
But this is not needed. We can do alloc_pid() before 'kthreadd' creation,
then free_pid() before kernel_thread(kernel_init).
However, I am not sure we should do something like this. The patch
I sent is very simple, in essence it is one-liner which only does
- wake_up_process(kthreadd_task);
+ if (kthreadd_task)
+ wake_up_process(kthreadd_task);
this way we should not worry about the ordering, kthread_create()
can be called at any time, even before kthreadd creation (not that
I think this is really useful though).
But personally I still can't understand what happens. If we were
preempted somewhere before "kthreadd_task = find_task_by_pid_ns()"
initialization, then schedule_debug() should complain? rest_init()
runs under preempt_disable().
Oleg.
next prev parent reply other threads:[~2009-09-18 21:18 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-29 16:27 [PATCH] x86: detect stack protector for i386 builds on x86_64 Michal Schmidt
2009-08-30 13:39 ` Américo Wang
2009-08-30 18:43 ` [tip:x86/asm] x86: Detect " tip-bot for Michal Schmidt
2009-09-01 10:03 ` Ingo Molnar
2009-09-01 11:39 ` [PATCH] kthreads: Fix startup synchronization boot crash Ingo Molnar
2009-09-01 13:04 ` Oleg Nesterov
2009-09-01 13:14 ` Ingo Molnar
2009-09-01 13:37 ` Oleg Nesterov
2009-09-01 13:59 ` Ingo Molnar
2009-09-01 14:55 ` Oleg Nesterov
2009-09-01 15:54 ` Ingo Molnar
2009-09-01 16:00 ` Oleg Nesterov
2009-09-02 13:06 ` Ingo Molnar
2009-09-01 16:52 ` [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done Oleg Nesterov
2009-09-01 16:53 ` [PATCH 1/1] " Oleg Nesterov
2009-09-01 23:22 ` [PATCH 0/1] " Eric W. Biederman
2009-09-02 9:13 ` Oleg Nesterov
2009-09-04 7:37 ` Ingo Molnar
2009-09-18 16:32 ` Wu Fei
2009-09-18 18:54 ` Oleg Nesterov
2009-09-18 19:17 ` Linus Torvalds
2009-09-18 21:12 ` Oleg Nesterov [this message]
2009-09-18 21:15 ` Oleg Nesterov
2009-09-18 22:06 ` Linus Torvalds
2009-09-18 23:11 ` Eric W. Biederman
2009-09-18 23:22 ` Oleg Nesterov
2009-09-18 23:38 ` Linus Torvalds
2009-09-01 15:08 ` [PATCH] kthreads: Fix startup synchronization boot crash Américo Wang
2009-09-01 15:19 ` Oleg Nesterov
2009-08-31 6:21 ` [PATCH] x86: detect stack protector for i386 builds on x86_64 Tejun Heo
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=20090918211218.GA19351@redhat.com \
--to=oleg@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=arjan@infradead.org \
--cc=at.wufei@gmail.com \
--cc=ebiederm@xmission.com \
--cc=hpa@zytor.com \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mingo@redhat.com \
--cc=mschmidt@redhat.com \
--cc=rusty@rustcorp.com.au \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.