From: Cyrill Gorcunov <gorcunov@gmail.com>
To: Gautham R Shenoy <ego@in.ibm.com>
Cc: Oleg Nesterov <oleg@redhat.com>,
Rusty Russell <rusty@rustcorp.com.au>,
linux-kernel@vger.kernel.org, travis@sgi.com,
Ingo Molnar <mingo@elte.hu>
Subject: Re: do_boot_cpu can deadlock?
Date: Thu, 23 Oct 2008 22:49:06 +0400 [thread overview]
Message-ID: <20081023184906.GA2612@localhost> (raw)
In-Reply-To: <20081023182119.GA1480@in.ibm.com>
[Gautham R Shenoy - Thu, Oct 23, 2008 at 11:51:19PM +0530]
| On Thu, Oct 23, 2008 at 07:02:12PM +0200, Oleg Nesterov wrote:
| > Hmm. arch/x86/kernel/smpboot.c:do_boot_cpu() can deadlock ?
| >
| > It is called from _cpu_up() under cpu_hotplug_begin(), and it
| > waits for c_idle.work. Again, if we have the pending work which
| > needs get_online_cpus() we seem to have problems.
|
| Good point. Though this code gets triggered mostly during boot time when
| the CPUs are being brought online for the first time. If we have some
| work-item pending at that time, which needs get_online_cpus(), we could
| possibly see this deadlock.
|
| >
| > Oleg.
|
| --
| Thanks and Regards
| gautham
|
May I ask? If I understand right we do use this part of do_boot_cpu
if (!keventd_up() || current_is_keventd())
c_idle.work.func(&c_idle.work);
else {
schedule_work(&c_idle.work);
wait_for_completion(&c_idle.done);
}
if only we've been called the first time after power on. And all
subsequent call of this do_boot_cpu would lead to
if (c_idle.idle) {
c_idle.idle->thread.sp = (unsigned long) (((struct pt_regs *)
(THREAD_SIZE + task_stack_page(c_idle.idle))) - 1);
init_idle(c_idle.idle, cpu);
goto do_rest;
}
ie go to do_rest and no wait_for_completion/schedule_work at all.
Did I miss something? *Sorry* in advance if the question is quite
not related. This work-pending situation is in 'possible' scenario
only (ie we don't have such a callers for now... yet)?
- Cyrill -
next prev parent reply other threads:[~2008-10-23 18:49 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-23 16:55 [PATCH 1/7] work_on_cpu: helper for doing task on a CPU Rusty Russell
2008-10-23 7:22 ` Gautham R Shenoy
2008-10-23 9:40 ` Oleg Nesterov
2008-10-23 14:36 ` Gautham R Shenoy
2008-10-23 16:35 ` Oleg Nesterov
2008-10-23 17:02 ` do_boot_cpu can deadlock? Oleg Nesterov
2008-10-23 18:21 ` Gautham R Shenoy
2008-10-23 18:49 ` Cyrill Gorcunov [this message]
2008-10-24 9:33 ` Oleg Nesterov
2008-10-24 9:53 ` Gautham R Shenoy
2008-10-24 10:51 ` Oleg Nesterov
2008-10-24 3:04 ` [PATCH 1/7] work_on_cpu: helper for doing task on a CPU Rusty Russell
2008-10-24 7:21 ` Gautham R Shenoy
2008-10-24 10:29 ` Oleg Nesterov
2008-10-24 11:18 ` Rusty Russell
2008-10-24 11:40 ` Gautham R Shenoy
2008-10-24 13:25 ` Oleg Nesterov
2008-10-24 13:41 ` Gautham R Shenoy
2008-10-24 14:23 ` Oleg Nesterov
2008-10-23 15:10 ` Rusty Russell
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=20081023184906.GA2612@localhost \
--to=gorcunov@gmail.com \
--cc=ego@in.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=oleg@redhat.com \
--cc=rusty@rustcorp.com.au \
--cc=travis@sgi.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 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.