All of lore.kernel.org
 help / color / mirror / Atom feed
* cpufreq/ondemand: unpinning an unpinned lock.
@ 2015-07-15 22:04 Dave Jones
  2015-07-16  0:13 ` Rafael J. Wysocki
  0 siblings, 1 reply; 6+ messages in thread
From: Dave Jones @ 2015-07-15 22:04 UTC (permalink / raw)
  To: Linux Kernel; +Cc: rjw, linux-pm

WARNING: CPU: 1 PID: 29529 at kernel/locking/lockdep.c:3497 lock_unpin_lock+0x109/0x110()
unpinning an unpinned lock
CPU: 1 PID: 29529 Comm: kworker/1:1 Not tainted 4.2.0-rc2-think+ #3
Workqueue: events od_dbs_timer
 0000000000000009 ffff880094d5baa8 ffffffffae7f5e6f 0000000000000007
 ffff880094d5baf8 ffff880094d5bae8 ffffffffae07b91a 0000000000000118
 00000000000000e0 ffff880507bd5c58 0000000000000092 0000000000000004
Call Trace:
 [<ffffffffae7f5e6f>] dump_stack+0x4f/0x7b
 [<ffffffffae07b91a>] warn_slowpath_common+0x8a/0xc0
 [<ffffffffae07b996>] warn_slowpath_fmt+0x46/0x50
 [<ffffffffae0d0ec9>] lock_unpin_lock+0x109/0x110
 [<ffffffffae7f93cc>] __schedule+0x3ac/0xb60
 [<ffffffffae7f9c41>] schedule+0x41/0x90
 [<ffffffffae7f9ff8>] schedule_preempt_disabled+0x18/0x30
 [<ffffffffae7fbcef>] mutex_lock_nested+0x16f/0x3e0
 [<ffffffffae69207f>] ? gov_queue_work+0x2f/0xf0
 [<ffffffffae690ec7>] ? od_check_cpu+0x57/0xd0
 [<ffffffffae69207f>] ? gov_queue_work+0x2f/0xf0
 [<ffffffffae69207f>] gov_queue_work+0x2f/0xf0
 [<ffffffffae6918dd>] od_dbs_timer+0xbd/0x150
 [<ffffffffae099613>] process_one_work+0x1f3/0x7a0
 [<ffffffffae099582>] ? process_one_work+0x162/0x7a0
 [<ffffffffae099cb9>] ? worker_thread+0xf9/0x470
 [<ffffffffae099c29>] worker_thread+0x69/0x470
 [<ffffffffae0ad993>] ? preempt_count_sub+0xa3/0xf0
 [<ffffffffae099bc0>] ? process_one_work+0x7a0/0x7a0
 [<ffffffffae09fddf>] kthread+0x11f/0x140
 [<ffffffffae09fcc0>] ? kthread_create_on_node+0x250/0x250
 [<ffffffffae80090f>] ret_from_fork+0x3f/0x70
 [<ffffffffae09fcc0>] ? kthread_create_on_node+0x250/0x250
---[ end trace 86cca931caec9193 ]---

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: cpufreq/ondemand: unpinning an unpinned lock.
  2015-07-15 22:04 cpufreq/ondemand: unpinning an unpinned lock Dave Jones
@ 2015-07-16  0:13 ` Rafael J. Wysocki
  2015-07-16  5:11   ` Viresh Kumar
  0 siblings, 1 reply; 6+ messages in thread
From: Rafael J. Wysocki @ 2015-07-16  0:13 UTC (permalink / raw)
  To: Dave Jones; +Cc: Linux Kernel, linux-pm, Viresh Kumar

Cc: Viresh as he's been working on governors recently.

On Wednesday, July 15, 2015 06:04:22 PM Dave Jones wrote:
> WARNING: CPU: 1 PID: 29529 at kernel/locking/lockdep.c:3497 lock_unpin_lock+0x109/0x110()
> unpinning an unpinned lock
> CPU: 1 PID: 29529 Comm: kworker/1:1 Not tainted 4.2.0-rc2-think+ #3
> Workqueue: events od_dbs_timer
>  0000000000000009 ffff880094d5baa8 ffffffffae7f5e6f 0000000000000007
>  ffff880094d5baf8 ffff880094d5bae8 ffffffffae07b91a 0000000000000118
>  00000000000000e0 ffff880507bd5c58 0000000000000092 0000000000000004
> Call Trace:
>  [<ffffffffae7f5e6f>] dump_stack+0x4f/0x7b
>  [<ffffffffae07b91a>] warn_slowpath_common+0x8a/0xc0
>  [<ffffffffae07b996>] warn_slowpath_fmt+0x46/0x50
>  [<ffffffffae0d0ec9>] lock_unpin_lock+0x109/0x110
>  [<ffffffffae7f93cc>] __schedule+0x3ac/0xb60
>  [<ffffffffae7f9c41>] schedule+0x41/0x90
>  [<ffffffffae7f9ff8>] schedule_preempt_disabled+0x18/0x30
>  [<ffffffffae7fbcef>] mutex_lock_nested+0x16f/0x3e0
>  [<ffffffffae69207f>] ? gov_queue_work+0x2f/0xf0
>  [<ffffffffae690ec7>] ? od_check_cpu+0x57/0xd0
>  [<ffffffffae69207f>] ? gov_queue_work+0x2f/0xf0
>  [<ffffffffae69207f>] gov_queue_work+0x2f/0xf0
>  [<ffffffffae6918dd>] od_dbs_timer+0xbd/0x150
>  [<ffffffffae099613>] process_one_work+0x1f3/0x7a0
>  [<ffffffffae099582>] ? process_one_work+0x162/0x7a0
>  [<ffffffffae099cb9>] ? worker_thread+0xf9/0x470
>  [<ffffffffae099c29>] worker_thread+0x69/0x470
>  [<ffffffffae0ad993>] ? preempt_count_sub+0xa3/0xf0
>  [<ffffffffae099bc0>] ? process_one_work+0x7a0/0x7a0
>  [<ffffffffae09fddf>] kthread+0x11f/0x140
>  [<ffffffffae09fcc0>] ? kthread_create_on_node+0x250/0x250
>  [<ffffffffae80090f>] ret_from_fork+0x3f/0x70
>  [<ffffffffae09fcc0>] ? kthread_create_on_node+0x250/0x250
> ---[ end trace 86cca931caec9193 ]---

-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: cpufreq/ondemand: unpinning an unpinned lock.
  2015-07-16  0:13 ` Rafael J. Wysocki
@ 2015-07-16  5:11   ` Viresh Kumar
  2015-07-16 12:42     ` Dave Jones
  0 siblings, 1 reply; 6+ messages in thread
From: Viresh Kumar @ 2015-07-16  5:11 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Dave Jones, Linux Kernel, linux-pm

On 16-07-15, 02:13, Rafael J. Wysocki wrote:
> Cc: Viresh as he's been working on governors recently.
> 
> On Wednesday, July 15, 2015 06:04:22 PM Dave Jones wrote:
> > WARNING: CPU: 1 PID: 29529 at kernel/locking/lockdep.c:3497 lock_unpin_lock+0x109/0x110()
> > unpinning an unpinned lock
> > CPU: 1 PID: 29529 Comm: kworker/1:1 Not tainted 4.2.0-rc2-think+ #3
> > Workqueue: events od_dbs_timer
> >  0000000000000009 ffff880094d5baa8 ffffffffae7f5e6f 0000000000000007
> >  ffff880094d5baf8 ffff880094d5bae8 ffffffffae07b91a 0000000000000118
> >  00000000000000e0 ffff880507bd5c58 0000000000000092 0000000000000004
> > Call Trace:
> >  [<ffffffffae7f5e6f>] dump_stack+0x4f/0x7b
> >  [<ffffffffae07b91a>] warn_slowpath_common+0x8a/0xc0
> >  [<ffffffffae07b996>] warn_slowpath_fmt+0x46/0x50
> >  [<ffffffffae0d0ec9>] lock_unpin_lock+0x109/0x110
> >  [<ffffffffae7f93cc>] __schedule+0x3ac/0xb60
> >  [<ffffffffae7f9c41>] schedule+0x41/0x90
> >  [<ffffffffae7f9ff8>] schedule_preempt_disabled+0x18/0x30
> >  [<ffffffffae7fbcef>] mutex_lock_nested+0x16f/0x3e0
> >  [<ffffffffae69207f>] ? gov_queue_work+0x2f/0xf0
> >  [<ffffffffae690ec7>] ? od_check_cpu+0x57/0xd0
> >  [<ffffffffae69207f>] ? gov_queue_work+0x2f/0xf0
> >  [<ffffffffae69207f>] gov_queue_work+0x2f/0xf0
> >  [<ffffffffae6918dd>] od_dbs_timer+0xbd/0x150
> >  [<ffffffffae099613>] process_one_work+0x1f3/0x7a0
> >  [<ffffffffae099582>] ? process_one_work+0x162/0x7a0
> >  [<ffffffffae099cb9>] ? worker_thread+0xf9/0x470
> >  [<ffffffffae099c29>] worker_thread+0x69/0x470
> >  [<ffffffffae0ad993>] ? preempt_count_sub+0xa3/0xf0
> >  [<ffffffffae099bc0>] ? process_one_work+0x7a0/0x7a0
> >  [<ffffffffae09fddf>] kthread+0x11f/0x140
> >  [<ffffffffae09fcc0>] ? kthread_create_on_node+0x250/0x250
> >  [<ffffffffae80090f>] ret_from_fork+0x3f/0x70
> >  [<ffffffffae09fcc0>] ? kthread_create_on_node+0x250/0x250
> > ---[ end trace 86cca931caec9193 ]---

I don't know why this will happen. Just to confirm, you are getting
this over 4.2-rc(1 or 2)? And you weren't getting these on 4.1 at all?
And its always reproducible? How ?

There have been races in cpufreq core since sometime and what got
pushed in 4.2-rc1 is just half of the fix. The other half is present
here:

http://marc.info/?i=cover.1434713657.git.viresh.kumar%40linaro.org

Please try this and let us know if things work well or not.

-- 
viresh

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: cpufreq/ondemand: unpinning an unpinned lock.
  2015-07-16  5:11   ` Viresh Kumar
@ 2015-07-16 12:42     ` Dave Jones
  2015-07-22  0:46       ` Stephen Boyd
  0 siblings, 1 reply; 6+ messages in thread
From: Dave Jones @ 2015-07-16 12:42 UTC (permalink / raw)
  To: Viresh Kumar; +Cc: Rafael J. Wysocki, Linux Kernel, linux-pm

On Thu, Jul 16, 2015 at 10:41:50AM +0530, Viresh Kumar wrote:

 > > > WARNING: CPU: 1 PID: 29529 at kernel/locking/lockdep.c:3497 lock_unpin_lock+0x109/0x110()
 > > > unpinning an unpinned lock
 > > > CPU: 1 PID: 29529 Comm: kworker/1:1 Not tainted 4.2.0-rc2-think+ #3
 > > > Workqueue: events od_dbs_timer
 > > >  0000000000000009 ffff880094d5baa8 ffffffffae7f5e6f 0000000000000007
 > > >  ffff880094d5baf8 ffff880094d5bae8 ffffffffae07b91a 0000000000000118
 > > >  00000000000000e0 ffff880507bd5c58 0000000000000092 0000000000000004
 > > > Call Trace:
 > > >  [<ffffffffae7f5e6f>] dump_stack+0x4f/0x7b
 > > >  [<ffffffffae07b91a>] warn_slowpath_common+0x8a/0xc0
 > > >  [<ffffffffae07b996>] warn_slowpath_fmt+0x46/0x50
 > > >  [<ffffffffae0d0ec9>] lock_unpin_lock+0x109/0x110
 > > >  [<ffffffffae7f93cc>] __schedule+0x3ac/0xb60
 > > >  [<ffffffffae7f9c41>] schedule+0x41/0x90
 > > >  [<ffffffffae7f9ff8>] schedule_preempt_disabled+0x18/0x30
 > > >  [<ffffffffae7fbcef>] mutex_lock_nested+0x16f/0x3e0
 > > >  [<ffffffffae69207f>] ? gov_queue_work+0x2f/0xf0
 > > >  [<ffffffffae690ec7>] ? od_check_cpu+0x57/0xd0
 > > >  [<ffffffffae69207f>] ? gov_queue_work+0x2f/0xf0
 > > >  [<ffffffffae69207f>] gov_queue_work+0x2f/0xf0
 > > >  [<ffffffffae6918dd>] od_dbs_timer+0xbd/0x150
 > 
 > I don't know why this will happen. Just to confirm, you are getting
 > this over 4.2-rc(1 or 2)? And you weren't getting these on 4.1 at all?
 > And its always reproducible? How ?

I've hit it once, on rc2.  I didn't have a lot of time for testing rc1.

 > There have been races in cpufreq core since sometime and what got
 > pushed in 4.2-rc1 is just half of the fix. The other half is present
 > here:
 > 
 > http://marc.info/?i=cover.1434713657.git.viresh.kumar%40linaro.org
 > 
 > Please try this and let us know if things work well or not.

Sure. Though proving the absense of a bug like this is always fun.

	Dave

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: cpufreq/ondemand: unpinning an unpinned lock.
  2015-07-16 12:42     ` Dave Jones
@ 2015-07-22  0:46       ` Stephen Boyd
  2015-07-22  9:02         ` Peter Zijlstra
  0 siblings, 1 reply; 6+ messages in thread
From: Stephen Boyd @ 2015-07-22  0:46 UTC (permalink / raw)
  To: Dave Jones, Viresh Kumar, Peter Zijlstra
  Cc: Rafael J. Wysocki, Linux Kernel, linux-pm

On 07/16/2015 05:42 AM, Dave Jones wrote:
> On Thu, Jul 16, 2015 at 10:41:50AM +0530, Viresh Kumar wrote:
>
>   > > > WARNING: CPU: 1 PID: 29529 at kernel/locking/lockdep.c:3497 lock_unpin_lock+0x109/0x110()
>   > > > unpinning an unpinned lock
>   > > > CPU: 1 PID: 29529 Comm: kworker/1:1 Not tainted 4.2.0-rc2-think+ #3
>   > > > Workqueue: events od_dbs_timer
>   > > >  0000000000000009 ffff880094d5baa8 ffffffffae7f5e6f 0000000000000007
>   > > >  ffff880094d5baf8 ffff880094d5bae8 ffffffffae07b91a 0000000000000118
>   > > >  00000000000000e0 ffff880507bd5c58 0000000000000092 0000000000000004
>   > > > Call Trace:
>   > > >  [<ffffffffae7f5e6f>] dump_stack+0x4f/0x7b
>   > > >  [<ffffffffae07b91a>] warn_slowpath_common+0x8a/0xc0
>   > > >  [<ffffffffae07b996>] warn_slowpath_fmt+0x46/0x50
>   > > >  [<ffffffffae0d0ec9>] lock_unpin_lock+0x109/0x110
>   > > >  [<ffffffffae7f93cc>] __schedule+0x3ac/0xb60
>   > > >  [<ffffffffae7f9c41>] schedule+0x41/0x90
>   > > >  [<ffffffffae7f9ff8>] schedule_preempt_disabled+0x18/0x30
>   > > >  [<ffffffffae7fbcef>] mutex_lock_nested+0x16f/0x3e0
>   > > >  [<ffffffffae69207f>] ? gov_queue_work+0x2f/0xf0
>   > > >  [<ffffffffae690ec7>] ? od_check_cpu+0x57/0xd0
>   > > >  [<ffffffffae69207f>] ? gov_queue_work+0x2f/0xf0
>   > > >  [<ffffffffae69207f>] gov_queue_work+0x2f/0xf0
>   > > >  [<ffffffffae6918dd>] od_dbs_timer+0xbd/0x150
>   >
>   > I don't know why this will happen. Just to confirm, you are getting
>   > this over 4.2-rc(1 or 2)? And you weren't getting these on 4.1 at all?
>   > And its always reproducible? How ?
>
> I've hit it once, on rc2.  I didn't have a lot of time for testing rc1.

Lock pinning is new in v4.2-rc1. Adding Peter just in case there's some 
insight.

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: cpufreq/ondemand: unpinning an unpinned lock.
  2015-07-22  0:46       ` Stephen Boyd
@ 2015-07-22  9:02         ` Peter Zijlstra
  0 siblings, 0 replies; 6+ messages in thread
From: Peter Zijlstra @ 2015-07-22  9:02 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: Dave Jones, Viresh Kumar, Rafael J. Wysocki, Linux Kernel, linux-pm

On Tue, Jul 21, 2015 at 05:46:16PM -0700, Stephen Boyd wrote:
> On 07/16/2015 05:42 AM, Dave Jones wrote:
> >On Thu, Jul 16, 2015 at 10:41:50AM +0530, Viresh Kumar wrote:
> >
> >  > > > WARNING: CPU: 1 PID: 29529 at kernel/locking/lockdep.c:3497 lock_unpin_lock+0x109/0x110()
> >  > > > unpinning an unpinned lock
> >  > > > Call Trace:

> >  > > >  [<ffffffffae0d0ec9>] lock_unpin_lock+0x109/0x110
> >  > > >  [<ffffffffae7f93cc>] __schedule+0x3ac/0xb60
> >  > > >  [<ffffffffae7f9c41>] schedule+0x41/0x90
> >  > > >  [<ffffffffae7f9ff8>] schedule_preempt_disabled+0x18/0x30

> Lock pinning is new in v4.2-rc1. Adding Peter just in case there's some
> insight.

Hmm, weird. I've not seen it happen before.

There's potentially 3 unpin's in __schedule():

  - the obvious one in the prev == next case,
  - the on in context_switch(),
  - the on in try_to_wake_up_local().

All 3 appear to be balanced; the first and second against the pin_lock()
at the start of __schedule() and the third against that and it repins
the lock against the first two.

Most curious.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-07-22  9:03 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-15 22:04 cpufreq/ondemand: unpinning an unpinned lock Dave Jones
2015-07-16  0:13 ` Rafael J. Wysocki
2015-07-16  5:11   ` Viresh Kumar
2015-07-16 12:42     ` Dave Jones
2015-07-22  0:46       ` Stephen Boyd
2015-07-22  9:02         ` Peter Zijlstra

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.