From: Ashok Raj <ashok.raj@intel.com>
To: Andrew Morton <akpm@osdl.org>
Cc: Ashok Raj <ashok.raj@intel.com>,
rjw@sisk.pl, linux-kernel@vger.kernel.org,
davej@codemonkey.org.uk, mingo@elte.hu, linux@brodo.de,
venkatesh.pallipadi@intel.com
Subject: Re: 2.6.14-git3: scheduling while atomic from cpufreq on Athlon64
Date: Sat, 5 Nov 2005 15:54:07 -0800 [thread overview]
Message-ID: <20051105155407.A31099@unix-os.sc.intel.com> (raw)
In-Reply-To: <20051105153304.09a1a4dc.akpm@osdl.org>; from akpm@osdl.org on Sat, Nov 05, 2005 at 03:33:04PM -0800
On Sat, Nov 05, 2005 at 03:33:04PM -0800, Andrew Morton wrote:
> Ashok Raj <ashok.raj@intel.com> wrote:
> >
> > Now we leave a trace in current->flags indicating current thread already
> > is under cpucontrol lock held, so we dont attempt to do this another time.
> >
> > ..
> > +#define PF_HOTPLUG_CPU 0x01000000 /* Currently performing CPU hotplug */
> >
>
> It's still hacky - I mean, we could use this trick to avoid recursion onto
> any lock in the kernel whenever we get ourselves into a mess. We'd gain an
> awful lot of PF_* flags.
>
> So we should still view this as a temporary fix.
>
> I don't think I've seen an analysis of the actual deadlock yet. Are you
> able to provide a stack trace of the offending callpath?
Hi Andrew,
we call the exact same functions in cpufreq during startup and in
response to cpu hotplug events, to create or destroy
sysfs entries /sys/devices/system/cpu/cpuX/cpufreq/*. cpufreq_add_dev().
problem is cpufreq_set_policy() eventually ends up calling
__cpufreq_driver_target() during the CPU_ONLINE, and CPU_DOWN_PREPARE
that takes cpucontrol lock.
Since when we already in the cpu notifier callbacks, cpucontrol is already
held by the cpu_up() or the cpu_down() that caused the double lock.
i dont see a panic, but just when we try to do cpu_down, or cpu_up that
thread would just lock out waiting to acquire the cpucontrol the second
time.
Hope this helps.
--
Cheers,
Ashok Raj
- Open Source Technology Center
next prev parent reply other threads:[~2005-11-05 23:55 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-31 15:06 2.6.14-git3: scheduling while atomic from cpufreq on Athlon64 Rafael J. Wysocki
2005-10-31 19:34 ` Andrew Morton
2005-10-31 19:45 ` Rafael J. Wysocki
2005-10-31 20:42 ` Ashok Raj
2005-11-01 19:07 ` Rafael J. Wysocki
2005-11-01 19:14 ` Ashok Raj
2005-11-01 19:44 ` Rafael J. Wysocki
2005-11-01 20:00 ` Ashok Raj
2005-11-01 19:49 ` Lee Revell
2005-11-04 22:30 ` Andrew Morton
2005-11-05 0:00 ` Ashok Raj
2005-11-05 23:19 ` Ashok Raj
2005-11-05 23:33 ` Andrew Morton
2005-11-05 23:54 ` Ashok Raj [this message]
2005-11-06 0:06 ` Andrew Morton
2005-11-06 4:32 ` Keith Owens
2005-10-31 21:42 ` [patch] preempt-trace.patch Ingo Molnar
2005-11-01 19:08 ` Rafael J. Wysocki
2005-11-02 6:27 ` 2.6.14-git3: scheduling while atomic from cpufreq on Athlon64 Dave Jones
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=20051105155407.A31099@unix-os.sc.intel.com \
--to=ashok.raj@intel.com \
--cc=akpm@osdl.org \
--cc=davej@codemonkey.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@brodo.de \
--cc=mingo@elte.hu \
--cc=rjw@sisk.pl \
--cc=venkatesh.pallipadi@intel.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