From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030221AbbDWP2U (ORCPT ); Thu, 23 Apr 2015 11:28:20 -0400 Received: from foss.arm.com ([217.140.101.70]:51455 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965519AbbDWP2Q (ORCPT ); Thu, 23 Apr 2015 11:28:16 -0400 Message-ID: <55390F8C.5040307@arm.com> Date: Thu, 23 Apr 2015 16:28:12 +0100 From: Sudeep Holla User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: "linux-kernel@vger.kernel.org" CC: Sudeep Holla , Thomas Gleixner , "Rafael J. Wysocki" Subject: inconsistent lock state with tick_broadcast_lock Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Thomas/Rafael, With latest mainline(commit 27cf3a16b2535a490f8cf1d29a6634f1c70f7831), and lockdep enabled I see the following inconsistent lock state log. I am not sure if it's related to recent changes in tick-broadcast or I might be missing any config ? ================================= [ INFO: inconsistent lock state ] 4.0.0 #260 Not tainted --------------------------------- inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage. swapper/1/0 [HC0[0]:SC0[0]:HE1:SE1] takes: (tick_broadcast_lock){?.-...}, at: [] tick_broadcast_oneshot_control+0x45/0x1ec {IN-HARDIRQ-W} state was registered at: [] _raw_spin_lock+0x23/0x30 [] tick_broadcast_control+0x3f/0x108 [] flush_smp_call_function_queue+0x57/0x108 [] handle_IPI+0xcb/0x194 [] gic_handle_irq+0x4f/0x50 [] __irq_svc+0x3f/0x64 [] do_execveat_common+0x96/0x690 [] do_execveat_common+0x96/0x690 [] do_execve+0x1d/0x20 [] ____call_usermodehelper+0xf3/0x124 [] ret_from_fork+0x11/0x38 irq event stamp: 19215 hardirqs last enabled at (19215): [] __irq_svc+0x43/0x64 hardirqs last disabled at (19213): [] __do_softirq+0x1d1/0x2d0 softirqs last enabled at (19214): [] __do_softirq+0x23d/0x2d0 softirqs last disabled at (19195): [] irq_exit+0xef/0x15c other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(tick_broadcast_lock); lock(tick_broadcast_lock); *** DEADLOCK *** no locks held by swapper/1/0. stack backtrace: CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.0.0 #260 Hardware name: ARM-Versatile Express [] (unwind_backtrace) from [] (show_stack+0x11/0x14) [] (show_stack) from [] (dump_stack+0x6d/0x78) [] (dump_stack) from [] (print_usage_bug+0x1d9/0x260) [] (print_usage_bug) from [] (mark_lock+0x173/0x5d0) [] (mark_lock) from [] (__lock_acquire+0x699/0x19ec) [] (__lock_acquire) from [] (lock_acquire+0x79/0xe8) [] (lock_acquire) from [] (_raw_spin_lock+0x23/0x30) [] (_raw_spin_lock) from [] (tick_broadcast_oneshot_control+0x45/0x1ec) [] (tick_broadcast_oneshot_control) from [] (cpu_startup_entry+0x2c3/0x2f8) [] (cpu_startup_entry) from [<800093d1>] (0x800093d1) Also with CPUIdle enabled, the system has spinlock lockup as below: 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.0.0 #1 Hardware name: ARM-Versatile Express [] (unwind_backtrace) from [] (show_stack+0x11/0x14) [] (show_stack) from [] (dump_stack+0x6d/0x78) [] (dump_stack) from [] (do_raw_spin_lock+0xc3/0x144) [] (do_raw_spin_lock) from [] (tick_handle_oneshot_broadcast+0x25/0x164) [] (tick_handle_oneshot_broadcast) from [] (sp804_timer_interrupt+0x31/0x34) [] (sp804_timer_interrupt) from [] (handle_irq_event_percpu+0x45/0x154) [] (handle_irq_event_percpu) from [] (handle_irq_event+0x2f/0x44) [] (handle_irq_event) from [] (handle_fasteoi_irq+0x6f/0xf0) [] (handle_fasteoi_irq) from [] (generic_handle_irq+0x23/0x2c) [] (generic_handle_irq) from [] (__handle_domain_irq+0x45/0x84) [] (__handle_domain_irq) from [] (gic_handle_irq+0x27/0x50) [] (gic_handle_irq) from [] (__irq_svc+0x3f/0x64) Exception stack(0xc07e7ee0 to 0xc07e7f28) 7ee0: 00000000 00000001 00000000 00000000 c07ed938 c07f6e10 c0081431 60000153 7f00: 00000001 c0865a80 c07e7f88 c051dfc8 00000000 c07e7f28 c005a40b c005a466 7f20: 60000173 ffffffff [] (__irq_svc) from [] (lock_release+0xaa/0x1c4) [] (lock_release) from [] (_raw_spin_unlock+0x15/0x1c) [] (_raw_spin_unlock) from [] (tick_broadcast_oneshot_control+0x75/0x1ec) [] (tick_broadcast_oneshot_control) from [] (cpu_startup_entry+0x2c3/0x2f8) [] (cpu_startup_entry) from [] (start_kernel+0x327/0x330) Regards, Sudeep