Messages in this thread | | | Date | Mon, 06 Jul 2015 18:57:57 +0100 | From | Sudeep Holla <> | Subject | Re: [patch 1/2] tick/broadcast: Prevent deep idle states if no broadcast device available |
| |
On 06/07/15 17:53, Thomas Gleixner wrote: > On Mon, 6 Jul 2015, Sudeep Holla wrote: >> On 06/07/15 17:06, Thomas Gleixner wrote: >> 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 > > Bah. I fear Preeti's hrtimer-broadcast stuff recurses in the hrtimer > code. > > tick_periodic() > expire broadcast timer() > handle_broadcast() { > tick_periodic() > expire_other_timer() > } > > warning triggers > > Crap. Patch below should cure that. >
This triggered the below crash on boot, looks like it's accessing hrtimer->function which is null in periodic mode IIUC
Regards, Sudeep
--->8
Bad mode in Synchronous Abort handler detected, code 0x86000005 -- IABT (current EL) CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.2.0-rc1 #577 Hardware name: ARM Juno development board (r0) (DT) task: ffffffc976900000 ti: ffffffc9768fc000 task.ti: ffffffc9768fc000 PC is at 0x0 LR is at bc_handler+0x20/0x58 pc : [<0000000000000000>] lr : [<ffffffc00010f4a4>] pstate: a00001c5 sp : ffffffc9768ffbd0
Call trace: [< (null)>] (null) [<ffffffc000101e88>] __hrtimer_run_queues+0xe0/0x150 [<ffffffc0001028b4>] hrtimer_run_queues+0xb8/0xe8 [<ffffffc000101714>] update_process_times+0x28/0x6c [<ffffffc00010d978>] tick_periodic+0x3c/0xb8 [<ffffffc00010da1c>] tick_handle_periodic+0x28/0x94 [<ffffffc0004d61d4>] 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
| |