From: Li Zhong <zhong@linux.vnet.ibm.com>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: linux-next list <linux-next@vger.kernel.org>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
Fengguang Wu <fengguang.wu@intel.com>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
"cpufreq@vger.kernel.org" <cpufreq@vger.kernel.org>
Subject: Re: [RFC PATCH next]cpufreq: fix bad unlock balance on !CONFIG_SMP
Date: Wed, 21 Aug 2013 13:53:31 +0800 [thread overview]
Message-ID: <1377064411.2709.2.camel@ThinkPad-T5421> (raw)
In-Reply-To: <CAKohpo=DXmw4Mvd=xvQqDh4VQXWt0Xrg0TA_D1qHXVAf4ikNmw@mail.gmail.com>
On Wed, 2013-08-21 at 10:56 +0530, Viresh Kumar wrote:
> On 20 August 2013 10:41, Li Zhong <zhong@linux.vnet.ibm.com> wrote:
> > This patch tries to fix lockdep complaint attached below.
> >
> > It seems that we should always read acquire the cpufreq_rwsem, whether
> > CONFIG_SMP is enabled or not. And CONFIG_HOTPLUG_CPU depends on
> > CONFIG_SMP, so it seems we don't need CONFIG_SMP for the code enabled by
> > CONFIG_HOTPLUG_CPU.
>
> I just figured out you haven't sent this mail to correct lists, added
> them now..
Ah, sorry about that, and thank you for adding them.
Thanks, Zhong
>
> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
>
> --
> viresh
>
> > [ 0.504191] =====================================
> > [ 0.504627] [ BUG: bad unlock balance detected! ]
> > [ 0.504627] 3.11.0-rc6-next-20130819 #1 Not tainted
> > [ 0.504627] -------------------------------------
> > [ 0.504627] swapper/1 is trying to release lock (cpufreq_rwsem) at:
> > [ 0.504627] [<ffffffff813d927a>] cpufreq_add_dev+0x13a/0x3e0
> > [ 0.504627] but there are no more locks to release!
> > [ 0.504627]
> > [ 0.504627] other info that might help us debug this:
> > [ 0.504627] 1 lock held by swapper/1:
> > [ 0.504627] #0: (subsys mutex#4){+.+.+.}, at: [<ffffffff8134a7bf>] subsys_interface_register+0x4f/0xe0
> > [ 0.504627]
> > [ 0.504627] stack backtrace:
> > [ 0.504627] CPU: 0 PID: 1 Comm: swapper Not tainted 3.11.0-rc6-next-20130819 #1
> > [ 0.504627] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
> > [ 0.504627] ffffffff813d927a ffff88007f847c98 ffffffff814c062b ffff88007f847cc8
> > [ 0.504627] ffffffff81098bce ffff88007f847cf8 ffffffff81aadc30 ffffffff813d927a
> > [ 0.504627] 00000000ffffffff ffff88007f847d68 ffffffff8109d0be 0000000000000006
> > [ 0.504627] Call Trace:
> > [ 0.504627] [<ffffffff813d927a>] ? cpufreq_add_dev+0x13a/0x3e0
> > [ 0.504627] [<ffffffff814c062b>] dump_stack+0x19/0x1b
> > [ 0.504627] [<ffffffff81098bce>] print_unlock_imbalance_bug+0xfe/0x110
> > [ 0.504627] [<ffffffff813d927a>] ? cpufreq_add_dev+0x13a/0x3e0
> > [ 0.504627] [<ffffffff8109d0be>] lock_release_non_nested+0x1ee/0x310
> > [ 0.504627] [<ffffffff81099d0e>] ? mark_held_locks+0xae/0x120
> > [ 0.504627] [<ffffffff811510cb>] ? kfree+0xcb/0x1d0
> > [ 0.504627] [<ffffffff813d77ea>] ? cpufreq_policy_free+0x4a/0x60
> > [ 0.504627] [<ffffffff813d927a>] ? cpufreq_add_dev+0x13a/0x3e0
> > [ 0.504627] [<ffffffff8109d2a4>] lock_release+0xc4/0x250
> > [ 0.504627] [<ffffffff8106c9f3>] up_read+0x23/0x40
> > [ 0.504627] [<ffffffff813d927a>] cpufreq_add_dev+0x13a/0x3e0
> > [ 0.504627] [<ffffffff8134a809>] subsys_interface_register+0x99/0xe0
> > [ 0.504627] [<ffffffff81b19f3b>] ? cpufreq_gov_dbs_init+0x12/0x12
> > [ 0.504627] [<ffffffff813d7f0d>] cpufreq_register_driver+0x9d/0x1d0
> > [ 0.504627] [<ffffffff81b19f3b>] ? cpufreq_gov_dbs_init+0x12/0x12
> > [ 0.504627] [<ffffffff81b1a039>] acpi_cpufreq_init+0xfe/0x1f8
> > [ 0.504627] [<ffffffff810002ba>] do_one_initcall+0xda/0x180
> > [ 0.504627] [<ffffffff81ae301e>] kernel_init_freeable+0x12c/0x1bb
> > [ 0.504627] [<ffffffff81ae2841>] ? do_early_param+0x8c/0x8c
> > [ 0.504627] [<ffffffff814b4dd0>] ? rest_init+0x140/0x140
> > [ 0.504627] [<ffffffff814b4dde>] kernel_init+0xe/0xf0
> > [ 0.504627] [<ffffffff814d029a>] ret_from_fork+0x7a/0xb0
> > [ 0.504627] [<ffffffff814b4dd0>] ? rest_init+0x140/0x140
> >
> > Signed-off-by: Li Zhong <zhong@linux.vnet.ibm.com>
> > ---
> > drivers/cpufreq/cpufreq.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
> > index c0ef84d..8408957 100644
> > --- a/drivers/cpufreq/cpufreq.c
> > +++ b/drivers/cpufreq/cpufreq.c
> > @@ -986,6 +986,7 @@ static int __cpufreq_add_dev(struct device *dev, struct subsys_interface *sif,
> > cpufreq_cpu_put(policy);
> > return 0;
> > }
> > +#endif
> >
> > if (!down_read_trylock(&cpufreq_rwsem))
> > return 0;
> > @@ -1004,7 +1005,6 @@ static int __cpufreq_add_dev(struct device *dev, struct subsys_interface *sif,
> > }
> > read_unlock_irqrestore(&cpufreq_driver_lock, flags);
> > #endif
> > -#endif
> >
> > if (frozen)
> > /* Restore the saved policy when doing light-weight init */
> >
> >
>
prev parent reply other threads:[~2013-08-21 5:53 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-20 5:11 [RFC PATCH next]cpufreq: fix bad unlock balance on !CONFIG_SMP Li Zhong
2013-08-20 6:31 ` Viresh Kumar
2013-08-21 5:26 ` Viresh Kumar
2013-08-21 5:53 ` Li Zhong [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=1377064411.2709.2.camel@ThinkPad-T5421 \
--to=zhong@linux.vnet.ibm.com \
--cc=cpufreq@vger.kernel.org \
--cc=fengguang.wu@intel.com \
--cc=linux-next@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=rafael.j.wysocki@intel.com \
--cc=viresh.kumar@linaro.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.