linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sudeep Holla <sudeep.holla@arm.com>
To: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Sudeep Holla <sudeep.holla@arm.com>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Linux PM list <linux-pm@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	ACPI Devel Maling List <linux-acpi@vger.kernel.org>
Subject: Re: [PATCH 16/20] sched/idle: Use explicit broadcast oneshot control function
Date: Tue, 28 Apr 2015 14:04:56 +0100	[thread overview]
Message-ID: <553F8578.5050109@arm.com> (raw)
In-Reply-To: <CAJZ5v0j+9gzpfZMyj1Pjnfr8VCoiFirD_U77-wRTn0vpM+Tz8g@mail.gmail.com>

Hi Rafael,

On 28/04/15 13:19, Rafael J. Wysocki wrote:
> On Tue, Apr 28, 2015 at 12:42 PM, Sudeep Holla <sudeep.holla@arm.com> wrote:

[...]

>>
>> At-least I observed issue only when I am using hardware broadcast timer.
>> It doesn't hang when I am using hrtimer as broadcast timer in which case
>> one of the cpu will be not enter deeper idle states that lose timer.
>> I will rerun on v4.1-rc1 and post the complete log.
>
> So the bug here is that cpuidle_enter() enables interrupts, so the
> assumption about them being not enabled made by
> tick_broadcast_oneshot_control() is actually not valid.
>
> It looks like we need to acquire the clockevents_lock at least in this
> particular case.  Let me see where to put it and I'll send a patch for
> testing.
>

Thanks for looking at this, I can also help in testing. Sending the 
complete log again with v4.1-rc1 if it's any useful.

Regards,
Sudeep

--->8

BUG: spinlock lockup suspected on CPU#0, swapper/0/0
  lock: tick_broadcast_lock+0x0/0x40, .magic: dead4ead, .owner: 
swapper/0/0, .owner_cpu: 0
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.0-rc1 #16
Hardware name: ARM-Versatile Express
[<c0014b1d>] (unwind_backtrace) from [<c0011659>] (show_stack+0x11/0x14)
[<c0011659>] (show_stack) from [<c05192ed>] (dump_stack+0x6d/0x78)
[<c05192ed>] (dump_stack) from [<c005c897>] (do_raw_spin_lock+0xc3/0x144)
[<c005c897>] (do_raw_spin_lock) from [<c00811f9>] 
(tick_handle_oneshot_broadcast+0x25/0x164)
[<c00811f9>] (tick_handle_oneshot_broadcast) from [<c001dd21>] 
(sp804_timer_interrupt+0x31/0x34)
[<c001dd21>] (sp804_timer_interrupt) from [<c0067ee1>] 
(handle_irq_event_percpu+0x45/0x154)
[<c0067ee1>] (handle_irq_event_percpu) from [<c006801f>] 
(handle_irq_event+0x2f/0x44)
[<c006801f>] (handle_irq_event) from [<c0069edb>] 
(handle_fasteoi_irq+0x6f/0xf0)
[<c0069edb>] (handle_fasteoi_irq) from [<c00677c7>] 
(generic_handle_irq+0x23/0x2c)
[<c00677c7>] (generic_handle_irq) from [<c0067a0d>] 
(__handle_domain_irq+0x45/0x84)
[<c0067a0d>] (__handle_domain_irq) from [<c0009303>] 
(gic_handle_irq+0x27/0x50)
[<c0009303>] (gic_handle_irq) from [<c0011eff>] (__irq_svc+0x3f/0x64)
Exception stack(0xc07ebf08 to 0xc07ebf50)
bf00:                   00000000 c1038814 00000001 00000001 c07f3f80 
ee78dec0
bf20: 00000000 c1038810 00000000 00000001 c07ebf88 c0520fc8 00000000 
c07ebf50
bf40: c008151d c02e104e 40000173 ffffffff
[<c0011eff>] (__irq_svc) from [<c02e104e>] (_test_and_clear_bit+0x26/0x48)
[<c02e104e>] (_test_and_clear_bit) from [<c008151d>] 
(tick_broadcast_oneshot_control+0x159/0x1ec)
[<c008151d>] (tick_broadcast_oneshot_control) from [<c0050273>] 
(cpu_startup_entry+0x2c3/0x2f8)
[<c0050273>] (cpu_startup_entry) from [<c0782a47>] 
(start_kernel+0x327/0x330)
BUG: spinlock lockup suspected on CPU#3, swapper/3/0
BUG: spinlock lockup suspected on CPU#4, swapper/4/0
  lock: tick_broadcast_lock+0x0/0x40, .magic: dead4ead, .owner: 
swapper/0/0, .owner_cpu: 0
CPU: 4 PID: 0 Comm: swapper/4 Not tainted 4.1.0-rc1 #16
Hardware name: ARM-Versatile Express
[<c0014b1d>] (unwind_backtrace) from [<c0011659>] (show_stack+0x11/0x14)
[<c0011659>] (show_stack) from [<c05192ed>] (dump_stack+0x6d/0x78)
BUG: spinlock lockup suspected on CPU#2, swapper/2/0
[<c05192ed>] (dump_stack) from [<c005c897>] (do_raw_spin_lock+0xc3/0x144)
  lock: tick_broadcast_lock+0x0/0x40, .magic: dead4ead, .owner: 
swapper/0/0, .owner_cpu: 0
[<c005c897>] (do_raw_spin_lock) from [<c0081409>] 
(tick_broadcast_oneshot_control+0x45/0x1ec)
[<c0081409>] (tick_broadcast_oneshot_control) from [<c0050273>] 
(cpu_startup_entry+0x2c3/0x2f8)
[<c0050273>] (cpu_startup_entry) from [<800093d1>] (0x800093d1)
CPU: 2 PID: 0 Comm: swapper/2 Not tainted 4.1.0-rc1 #16
Hardware name: ARM-Versatile Express
[<c0014b1d>] (unwind_backtrace) from [<c0011659>] (show_stack+0x11/0x14)
[<c0011659>] (show_stack) from [<c05192ed>] (dump_stack+0x6d/0x78)
[<c05192ed>] (dump_stack) from [<c005c897>] (do_raw_spin_lock+0xc3/0x144)
[<c005c897>] (do_raw_spin_lock) from [<c0081409>] 
(tick_broadcast_oneshot_control+0x45/0x1ec)
[<c0081409>] (tick_broadcast_oneshot_control) from [<c0050273>] 
(cpu_startup_entry+0x2c3/0x2f8)
[<c0050273>] (cpu_startup_entry) from [<800093d1>] (0x800093d1)
  lock: tick_broadcast_lock+0x0/0x40, .magic: dead4ead, .owner: 
swapper/0/0, .owner_cpu: 0
CPU: 3 PID: 0 Comm: swapper/3 Not tainted 4.1.0-rc1 #16
Hardware name: ARM-Versatile Express
[<c0014b1d>] (unwind_backtrace) from [<c0011659>] (show_stack+0x11/0x14)
[<c0011659>] (show_stack) from [<c05192ed>] (dump_stack+0x6d/0x78)
[<c05192ed>] (dump_stack) from [<c005c897>] (do_raw_spin_lock+0xc3/0x144)
[<c005c897>] (do_raw_spin_lock) from [<c0081409>] 
(tick_broadcast_oneshot_control+0x45/0x1ec)
[<c0081409>] (tick_broadcast_oneshot_control) from [<c0050273>] 
(cpu_startup_entry+0x2c3/0x2f8)
[<c0050273>] (cpu_startup_entry) from [<800093d1>] (0x800093d1)






  parent reply	other threads:[~2015-04-28 13:05 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-01 22:02 [PATCH 00/20] clockevents_notify() removal Rafael J. Wysocki
2015-04-01 22:03 ` [PATCH 01/20] clockevents: Provide explicit broadcast control functions Rafael J. Wysocki
2015-04-01 22:04 ` [PATCH 02/20] x86, amd_idle: Use explicit broadcast control function Rafael J. Wysocki
2015-04-01 22:05 ` [PATCH 03/20] ACPI / PAD: " Rafael J. Wysocki
2015-04-01 22:06 ` [PATCH 04/20] ACPI / processor: " Rafael J. Wysocki
2015-04-01 22:07 ` [PATCH 05/20] cpuidle: " Rafael J. Wysocki
2015-04-01 22:09 ` [PATCH 06/20] intel_idle: " Rafael J. Wysocki
2015-04-01 22:10 ` [PATCH 07/20] ARM: OMAP: " Rafael J. Wysocki
2015-04-01 22:11 ` [PATCH 08/20] clockevents: Remove the broadcast control leftovers Rafael J. Wysocki
2015-04-01 22:13 ` [PATCH 09/20] clockevents: Provide explicit broadcast oneshot control functions Rafael J. Wysocki
2015-04-01 22:15 ` [PATCH 10/20] x86, amd_idle: Use " Rafael J. Wysocki
2015-04-01 22:16 ` [PATCH 11/20] ACPI / PAD: Use explicit broadcast oneshot control function Rafael J. Wysocki
2015-04-01 22:17 ` [PATCH 12/20] ACPI / processor: Use explicit broadcast controll function Rafael J. Wysocki
2015-04-01 22:20 ` [PATCH 13/20] intel_idle: Use explicit broadcast oneshot control function Rafael J. Wysocki
2015-04-01 22:20 ` [PATCH 14/20] ARM: OMAP: " Rafael J. Wysocki
2015-04-01 22:21 ` [PATCH 15/20] ARM: tegra: " Rafael J. Wysocki
2015-04-01 22:22 ` [PATCH 16/20] sched/idle: " Rafael J. Wysocki
2015-04-28 10:11   ` Linus Walleij
2015-04-28 10:17     ` Sudeep Holla
2015-04-28 10:34     ` Daniel Lezcano
2015-04-28 10:42       ` Sudeep Holla
2015-04-28 12:19         ` Rafael J. Wysocki
2015-04-28 12:37           ` Linus Walleij
2015-04-28 13:31             ` Rafael J. Wysocki
2015-04-28 13:37               ` Rafael J. Wysocki
2015-04-28 14:14                 ` Rafael J. Wysocki
2015-04-28 13:58                   ` Sudeep Holla
2015-04-29  0:50                     ` Rafael J. Wysocki
2015-04-29  1:04                       ` Rafael J. Wysocki
2015-04-29  7:10                         ` Linus Walleij
2015-04-29  8:57                         ` Peter Zijlstra
2015-04-29  9:44                         ` Daniel Lezcano
2015-04-29  9:50                         ` Sudeep Holla
2015-04-29 14:07                           ` [PATCH][Fix] cpuidle: Run tick_broadcast_exit() with disabled interrupts Rafael J. Wysocki
2015-04-30  3:47                             ` Preeti U Murthy
2015-04-30 20:12                             ` Nicolas Pitre
2015-04-30 22:10                               ` Rafael J. Wysocki
2015-04-30  3:45                         ` [PATCH 16/20] sched/idle: Use explicit broadcast oneshot control function Preeti U Murthy
2015-04-28 13:04           ` Sudeep Holla [this message]
2015-04-01 22:23 ` [PATCH 17/20] clockevents: Remove broadcast oneshot control leftovers Rafael J. Wysocki
2015-04-01 22:24 ` [PATCH 18/20] clockevents: Make tick handover explicit Rafael J. Wysocki
2015-04-01 22:25 ` [PATCH 19/20] clockevents: Cleanup dead cpu explicitely Rafael J. Wysocki
2015-04-01 22:26 ` [PATCH 20/20] timekeeping: Get rid of stale comment Rafael J. Wysocki
2015-04-01 23:57   ` John Stultz
2015-04-02 12:39 ` [PATCH 00/20] clockevents_notify() removal Ingo Molnar
2015-04-02 22:19   ` Rafael J. Wysocki
2015-04-02 23:45     ` [v2][PATCH 00/21] " Rafael J. Wysocki
2015-04-02 23:46       ` [v2][PATCH 01/21] ACPI / PAD: Remove the local APIC nonsense Rafael J. Wysocki
2015-04-03  8:21         ` [tip:timers/core] ACPI/PAD: " tip-bot for Thomas Gleixner
2015-04-03  0:01       ` [v2][PATCH 02/21] clockevents: Provide explicit broadcast control functions Rafael J. Wysocki
2015-04-03  8:21         ` [tip:timers/core] " tip-bot for Thomas Gleixner
2015-04-03  0:01       ` [v2][PATCH 03/21] x86, amd_idle: Use explicit broadcast control function Rafael J. Wysocki
2015-04-03  8:22         ` [tip:timers/core] x86/amd/idle, clockevents: " tip-bot for Thomas Gleixner
2015-04-03  0:01       ` [v2][PATCH 04/21] ACPI / PAD: " Rafael J. Wysocki
2015-04-03  8:22         ` [tip:timers/core] ACPI/PAD: " tip-bot for Thomas Gleixner
2015-04-03  0:02       ` [v2][PATCH 05/21] ACPI / processor: " Rafael J. Wysocki
2015-04-03  8:22         ` [tip:timers/core] ACPI/processor: " tip-bot for Thomas Gleixner
2015-04-03  0:02       ` [v2][PATCH 06/21] cpuidle: " Rafael J. Wysocki
2015-04-03  8:23         ` [tip:timers/core] " tip-bot for Thomas Gleixner
2015-04-03  0:02       ` [v2][PATCH 07/21] intel_idle: " Rafael J. Wysocki
2015-04-03  8:23         ` [tip:timers/core] " tip-bot for Thomas Gleixner
2015-04-03  0:02       ` [v2][PATCH 08/21] ARM: OMAP: " Rafael J. Wysocki
2015-04-03  8:23         ` [tip:timers/core] " tip-bot for Thomas Gleixner
2015-04-03  0:03       ` [v2][PATCH 09/21] clockevents: Remove the broadcast control leftovers Rafael J. Wysocki
2015-04-03  8:23         ` [tip:timers/core] " tip-bot for Thomas Gleixner
2015-04-03  0:05       ` [v2][PATCH 10/21] clockevents: Provide explicit broadcast oneshot control functions Rafael J. Wysocki
2015-04-03  8:24         ` [tip:timers/core] " tip-bot for Thomas Gleixner
2015-04-03  0:05       ` [v2][PATCH 11/21] x86, amd_idle: Use " Rafael J. Wysocki
2015-04-03  8:24         ` [tip:timers/core] x86/amd/idle, clockevents: " tip-bot for Thomas Gleixner
2015-04-03  0:06       ` [v2][PATCH 12/21] ACPI / PAD: Use explicit broadcast oneshot control function Rafael J. Wysocki
2015-04-03  8:24         ` [tip:timers/core] ACPI/PAD: " tip-bot for Thomas Gleixner
2015-04-03  0:12       ` [v2][PATCH 13/21] ACPI / processor: Use explicit broadcast controll function Rafael J. Wysocki
2015-04-03  8:25         ` [tip:timers/core] ACPI/idle: Use explicit broadcast control function tip-bot for Thomas Gleixner
2015-04-03  0:14       ` [v2][PATCH 14/21] intel_idle: Use explicit broadcast oneshot " Rafael J. Wysocki
2015-04-03  8:25         ` [tip:timers/core] " tip-bot for Thomas Gleixner
2015-04-03  0:31       ` [v2][PATCH 15/21] ARM: OMAP: " Rafael J. Wysocki
2015-04-03  8:25         ` [tip:timers/core] " tip-bot for Thomas Gleixner
2015-04-03  0:32       ` [v2][PATCH 16/21] ARM: tegra: " Rafael J. Wysocki
2015-04-03  8:25         ` [tip:timers/core] ARM: Tegra: " tip-bot for Thomas Gleixner
2015-04-03  0:34       ` [v2][PATCH 17/21] sched/idle: " Rafael J. Wysocki
2015-04-03  8:26         ` [tip:timers/core] " tip-bot for Thomas Gleixner
2015-04-03  0:36       ` [v2][PATCH 18/21] clockevents: Remove broadcast oneshot control leftovers Rafael J. Wysocki
2015-04-03  8:26         ` [tip:timers/core] " tip-bot for Rafael J. Wysocki
2015-04-03  0:37       ` [v2][PATCH 19/21] clockevents: Make tick handover explicit Rafael J. Wysocki
2015-04-03  8:26         ` [tip:timers/core] " tip-bot for Thomas Gleixner
2015-04-03  0:38       ` [v2][PATCH 20/21] clockevents: Cleanup dead cpu explicitely Rafael J. Wysocki
2015-04-03  8:26         ` [tip:timers/core] " tip-bot for Thomas Gleixner
2015-04-03  0:39       ` [v2][PATCH 21/21] timekeeping: Get rid of stale comment Rafael J. Wysocki
2015-04-03  8:27         ` [tip:timers/core] " tip-bot for Thomas Gleixner
2015-04-03  6:45       ` [v2][PATCH 00/21] clockevents_notify() removal Ingo Molnar

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=553F8578.5050109@arm.com \
    --to=sudeep.holla@arm.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rafael@kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=tglx@linutronix.de \
    --subject='Re: [PATCH 16/20] sched/idle: Use explicit broadcast oneshot control function' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).