From: Sudeep Holla <sudeep.holla@arm.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Sudeep Holla <sudeep.holla@arm.com>,
LKML <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Preeti U Murthy <preeti@linux.vnet.ibm.com>,
Suzuki Poulose <Suzuki.Poulose@arm.com>,
Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>,
Catalin Marinas <Catalin.Marinas@arm.com>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Subject: Re: [patch 1/2] tick/broadcast: Prevent deep idle states if no broadcast device available
Date: Mon, 06 Jul 2015 17:27:31 +0100 [thread overview]
Message-ID: <559AAC73.6010105@arm.com> (raw)
In-Reply-To: <alpine.DEB.2.11.1507061750170.3916@nanos>
On 06/07/15 17:06, Thomas Gleixner wrote:
> On Mon, 6 Jul 2015, Sudeep Holla wrote:
>> On 06/07/15 16:35, Thomas Gleixner wrote:
>>> Well, we should figure out what happens while we are at it before
>>> everything gets paged out again.
>>>
>>
>> True. I just wanted to mention that this patch works for all the
>> practical purposes.
>>
>>> In the case of CONFIG_NOHZ=n and CONFIG_HIGHRES=n the broadcast
>>> hrtimer is not compiled as it depends on CONFIG_TICK_ONESHOT, so it
>>> works via the bc.evtdev == NULL check.
>>>
>>> With either option enabled CONFIG_TICK_ONESHOT gets set, so the
>>> broadcast timer gets installed but somehow does not work proper if
>>> nohz and highres are disabled on the kernel command line.
>>>
>>
>> Let me know if you want to test something to help debug this configuration.
>
> Can you try the following delta patch?
>
I just tried the failing configuration. Yes I am able to boot now,
however made below 2 observations:
1. As in the case of CONFIG_HZ_PERIODIC, none of the CPUs enters deeper
idle states losing local timers. So the behaviour is same in both
versions of periodic mode of timer operation.
2. After boot I am seeing the below warning:
------------[ cut here ]------------
WARNING: CPU: 1 PID: 0 at kernel/time/hrtimer.c:1247
__hrtimer_run_queues+0x148/0x150()
Modules linked in:
CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.2.0-rc1 #573
Hardware name: ARM Juno development board (r0) (DT)
Call trace:
[<ffffffc000089954>] dump_backtrace+0x0/0x124
[<ffffffc000089a88>] show_stack+0x10/0x1c
[<ffffffc0005d100c>] dump_stack+0x84/0xc8
[<ffffffc0000b3f34>] warn_slowpath_common+0x98/0xd0
[<ffffffc0000b402c>] warn_slowpath_null+0x14/0x20
[<ffffffc000101eec>] __hrtimer_run_queues+0x144/0x150
[<ffffffc0001028b4>] hrtimer_run_queues+0xb8/0xe8
[<ffffffc000101714>] update_process_times+0x28/0x6c
[<ffffffc00010d978>] tick_periodic+0x3c/0xb8
[<ffffffc00010da1c>] tick_handle_periodic+0x28/0x94
[<ffffffc0004d6154>] arch_timer_handler_phys+0x28/0x38
[<ffffffc0000f5964>] handle_percpu_devid_irq+0x74/0x9c
[<ffffffc0000f1668>] generic_handle_irq+0x30/0x4c
[<ffffffc0000f1984>] __handle_domain_irq+0x5c/0xac
[<ffffffc0000824a8>] gic_handle_irq+0x30/0x80
Exception stack(0xffffffc9768ffdb0 to 0xffffffc9768ffed0)
fda0: 8c1625f8 00000008 75da4800
ffffffc9
fdc0: 768ffef0 ffffffc9 004b3448 ffffffc0 00000000 00000000 768fc000
ffffffc9
fde0: 00000000 00000000 00000001 00000000 00000002 00000000 00000000
00000000
fe00: da98d76d 001e70a3 000005dc 00000000 00000003 00000000 00000001
00000000
fe20: 00000004 00000000 00000040 00000000 ffffffff ffffffff 00000000
00000000
fe40: 008a3dd8 ffffffc0 ffffffff ffffffff 001a65a0 ffffffc0 004e2488
00000000
fe60: f7ea3080 0000007f 8c1625f8 00000008 75da4800 ffffffc9 00000000
00000000
fe80: 008da840 ffffffc0 8b7dc4e5 00000008 768fff70 ffffffc9 00884e20
ffffffc0
fea0: 005e8770 ffffffc0 00896000 ffffffc0 768fc000 ffffffc9 768ffef0
ffffffc9
fec0: 004b3408 ffffffc0 768ffef0 ffffffc9
[<ffffffc0000855a4>] el1_irq+0x64/0xd8
[<ffffffc0004b354c>] cpuidle_enter+0x14/0x20
[<ffffffc0000e80f8>] call_cpuidle+0x24/0x50
[<ffffffc0000e8268>] cpu_startup_entry+0x144/0x224
[<ffffffc00009010c>] secondary_start_kernel+0x124/0x14c
---[ end trace 87fd96b94f030e33 ]---
next prev parent reply other threads:[~2015-07-06 16:27 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-05 20:53 [patch 0/2] tic/broadcast: Plug a few corner cases which cause malfunction Thomas Gleixner
2015-07-05 20:53 ` [patch 1/2] tick/broadcast: Prevent deep idle states if no broadcast device available Thomas Gleixner
2015-07-06 15:09 ` Sudeep Holla
2015-07-06 15:35 ` Thomas Gleixner
2015-07-06 15:44 ` Sudeep Holla
2015-07-06 16:06 ` Thomas Gleixner
2015-07-06 16:27 ` Sudeep Holla [this message]
2015-07-06 16:53 ` Thomas Gleixner
2015-07-06 17:57 ` Sudeep Holla
2015-07-06 19:56 ` Thomas Gleixner
2015-07-07 7:31 ` Thomas Gleixner
2015-07-07 11:25 ` Sudeep Holla
2015-07-07 11:55 ` Thomas Gleixner
2015-07-07 17:12 ` [tip:timers/urgent] tick/broadcast: Prevent hrtimer recursion tip-bot for Thomas Gleixner
2015-07-07 17:12 ` [tip:timers/urgent] tick/broadcast: Sanity check the shutdown of the local clock_event tip-bot for Thomas Gleixner
2015-07-07 17:13 ` [tip:timers/urgent] tick/broadcast: Make idle check independent from mode and config tip-bot for Thomas Gleixner
2015-07-07 17:13 ` [tip:timers/urgent] tick/broadcast: Prevent deep idle if no broadcast device available tip-bot for Thomas Gleixner
2015-07-07 17:13 ` [tip:timers/urgent] tick/broadcast: Move the check for periodic mode inside state handling tip-bot for Thomas Gleixner
2015-07-07 17:14 ` [tip:timers/urgent] tick/broadcast: Return busy if periodic mode and hrtimer broadcast tip-bot for Thomas Gleixner
2015-07-07 17:14 ` [tip:timers/urgent] tick/broadcast: Return busy when IPI is pending tip-bot for Thomas Gleixner
2015-07-07 17:14 ` [tip:timers/urgent] tick/broadcast: Check for hrtimer broadcast active early tip-bot for Thomas Gleixner
2015-07-05 20:53 ` [patch 2/2] tick/broadcast: Handle spurious interrupts gracefully Thomas Gleixner
2015-07-06 15:17 ` Sudeep Holla
2015-07-06 15:36 ` Thomas Gleixner
2015-07-07 17:15 ` [tip:timers/urgent] " tip-bot for Thomas Gleixner
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=559AAC73.6010105@arm.com \
--to=sudeep.holla@arm.com \
--cc=Catalin.Marinas@arm.com \
--cc=Lorenzo.Pieralisi@arm.com \
--cc=Suzuki.Poulose@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=preeti@linux.vnet.ibm.com \
--cc=rafael.j.wysocki@intel.com \
--cc=tglx@linutronix.de \
/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.