From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753115AbbGFR6D (ORCPT ); Mon, 6 Jul 2015 13:58:03 -0400 Received: from foss.arm.com ([217.140.101.70]:60677 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751235AbbGFR6B (ORCPT ); Mon, 6 Jul 2015 13:58:01 -0400 Message-ID: <559AC1A5.901@arm.com> Date: Mon, 06 Jul 2015 18:57:57 +0100 From: Sudeep Holla User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Thomas Gleixner CC: Sudeep Holla , LKML , Ingo Molnar , Peter Zijlstra , Preeti U Murthy , Suzuki Poulose , Lorenzo Pieralisi , Catalin Marinas , "Rafael J. Wysocki" Subject: Re: [patch 1/2] tick/broadcast: Prevent deep idle states if no broadcast device available References: <20150705205032.103910828@linutronix.de> <20150705205221.724282507@linutronix.de> <559A9A2B.2030705@arm.com> <559AA256.5040305@arm.com> <559AAC73.6010105@arm.com> In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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: >> [] dump_backtrace+0x0/0x124 >> [] show_stack+0x10/0x1c >> [] dump_stack+0x84/0xc8 >> [] warn_slowpath_common+0x98/0xd0 >> [] warn_slowpath_null+0x14/0x20 >> [] __hrtimer_run_queues+0x144/0x150 >> [] hrtimer_run_queues+0xb8/0xe8 >> [] update_process_times+0x28/0x6c >> [] tick_periodic+0x3c/0xb8 >> [] tick_handle_periodic+0x28/0x94 >> [] arch_timer_handler_phys+0x28/0x38 >> [] handle_percpu_devid_irq+0x74/0x9c >> [] generic_handle_irq+0x30/0x4c >> [] __handle_domain_irq+0x5c/0xac >> [] 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 : [] pstate: a00001c5 sp : ffffffc9768ffbd0 Call trace: [< (null)>] (null) [] __hrtimer_run_queues+0xe0/0x150 [] hrtimer_run_queues+0xb8/0xe8 [] update_process_times+0x28/0x6c [] tick_periodic+0x3c/0xb8 [] tick_handle_periodic+0x28/0x94 [] arch_timer_handler_phys+0x28/0x38 [] handle_percpu_devid_irq+0x74/0x9c [] generic_handle_irq+0x30/0x4c [] __handle_domain_irq+0x5c/0xac [] gic_handle_irq+0x30/0x80