From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756311AbdERNRA (ORCPT ); Thu, 18 May 2017 09:17:00 -0400 Received: from mail-wr0-f172.google.com ([209.85.128.172]:33227 "EHLO mail-wr0-f172.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756293AbdERNQ4 (ORCPT ); Thu, 18 May 2017 09:16:56 -0400 Date: Thu, 18 May 2017 15:16:51 +0200 From: Corentin Labbe To: linux-kernel@vger.kernel.org Subject: WARNING: possible recursive locking detected on linux-next Message-ID: <20170518131651.GA5148@Red> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello Since linux-next-20170516 I got the following warning trace: [ 4.310450] nf_tables: (c) 2007-2009 Patrick McHardy [ 4.321211] ============================================ [ 4.326516] WARNING: possible recursive locking detected [ 4.331823] 4.12.0-rc1-next-20170518+ #274 Not tainted [ 4.336954] -------------------------------------------- [ 4.342258] swapper/0/1 is trying to acquire lock: [ 4.347043] (cpu_hotplug_lock.rw_sem){++++++}, at: [] stop_machine+0x1c/0x3c [ 4.355060] but task is already holding lock: [ 4.360886] (cpu_hotplug_lock.rw_sem){++++++}, at: [] static_key_slow_inc+0x14/0x24 [ 4.369501] other info that might help us debug this: [ 4.376021] Possible unsafe locking scenario: [ 4.381933] CPU0 [ 4.384368] ---- [ 4.386812] lock(cpu_hotplug_lock.rw_sem); [ 4.391082] lock(cpu_hotplug_lock.rw_sem); [ 4.395352] *** DEADLOCK *** [ 4.401265] May be due to missing lock nesting notation [ 4.408046] 5 locks held by swapper/0/1: [ 4.411962] #0: (net_mutex){+.+.+.}, at: [] register_pernet_subsys+0x28/0x48 [ 4.420063] #1: (register_ipv4_hooks){+.+.+.}, at: [] ipv4_hooks_register+0xdc/0x1e0 [ 4.428856] #2: (defrag4_mutex){+.+.+.}, at: [] nf_defrag_ipv4_enable+0x48/0x8c [ 4.437213] #3: (cpu_hotplug_lock.rw_sem){++++++}, at: [] static_key_slow_inc+0x14/0x24 [ 4.446261] #4: (jump_label_mutex){+.+...}, at: [] __static_key_slow_inc+0x78/0xec [ 4.454877] stack backtrace: [ 4.459234] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.12.0-rc1-next-20170518+ #274 [ 4.466965] Hardware name: Allwinner sun8i Family [ 4.471664] Backtrace: [ 4.474121] [] (dump_backtrace) from [] (show_stack+0x18/0x1c) [ 4.481684] r7:c0c2dbd0 r6:00000000 r5:60000093 r4:c0c2dbd0 [ 4.487343] [] (show_stack) from [] (dump_stack+0xac/0xd8) [ 4.494564] [] (dump_stack) from [] (__lock_acquire+0xbc0/0x19f0) [ 4.502389] r10:ef05b200 r9:c0d8775c r8:00000000 r7:c0c2dcc0 r6:00000000 r5:c14804c0 [ 4.510210] r4:c0d8775c r3:00000000 [ 4.513788] [] (__lock_acquire) from [] (lock_acquire+0x74/0x90) [ 4.521526] r10:c0b37858 r9:c0c55348 r8:00000001 r7:00000001 r6:60000013 r5:00000000 [ 4.529344] r4:ffffe000 [ 4.531883] [] (lock_acquire) from [] (get_online_cpus+0x58/0xe0) [ 4.539706] r8:c0959750 r7:c01ccb28 r6:c0c18ff4 r5:00000000 r4:c0c19644 [ 4.546404] [] (get_online_cpus) from [] (stop_machine+0x1c/0x3c) [ 4.554226] r7:c09bd960 r6:00000000 r5:ef04dce8 r4:c010f964 [ 4.559885] [] (stop_machine) from [] (patch_text+0x2c/0x34) [ 4.567273] r7:c09bd960 r6:c14989d4 r5:c0c58b64 r4:c06ae18c [ 4.572932] [] (patch_text) from [] (arch_jump_label_transform+0x28/0x44) [ 4.581450] [] (arch_jump_label_transform) from [] (__jump_label_update+0x94/0x9c) [ 4.590745] r5:c0c58b64 r4:c0c58a68 [ 4.594322] [] (__jump_label_update) from [] (jump_label_update+0x94/0x130) [ 4.603011] r7:c09bd960 r6:eea28f80 r5:c14989d4 r4:c0c58b64 [ 4.608668] [] (jump_label_update) from [] (__static_key_slow_inc+0xd8/0xec) [ 4.617444] r7:c09bd960 r6:eea28f80 r5:c0c57964 r4:c14989d4 [ 4.623101] [] (__static_key_slow_inc) from [] (static_key_slow_inc+0x1c/0x24) [ 4.632047] r5:c0c57964 r4:c14989d4 [ 4.635628] [] (static_key_slow_inc) from [] (nf_register_net_hook+0x148/0x1a8) [ 4.644662] r5:c0c57964 r4:c0c501c0 [ 4.648242] [] (nf_register_net_hook) from [] (nf_register_net_hooks+0x40/0x78) [ 4.657279] r9:c0c55348 r8:00000002 r7:c0c4fd00 r6:c0c57b15 r5:00000000 r4:c0c55348 [ 4.665019] [] (nf_register_net_hooks) from [] (nf_defrag_ipv4_enable+0x74/0x8c) [ 4.674143] r9:c0c578ae r8:00000009 r7:00000009 r6:c0c57b15 r5:c0c4fd00 r4:00000000 [ 4.681883] [] (nf_defrag_ipv4_enable) from [] (ipv4_hooks_register+0x1a4/0x1e0) [ 4.691003] r5:c0c4fd00 r4:eea280c0 [ 4.694584] [] (ipv4_hooks_register) from [] (nf_ct_l3proto_pernet_register+0x30/0x3c) [ 4.704226] r7:ef0dc980 r6:c0c4fd00 r5:c0c4fd00 r4:00000000 [ 4.709886] [] (nf_ct_l3proto_pernet_register) from [] (ipv4_net_init+0x30/0x68) [ 4.719012] [] (ipv4_net_init) from [] (ops_init+0x104/0x16c) [ 4.726486] r5:eea280c0 r4:c0c552a0 [ 4.730065] [] (ops_init) from [] (register_pernet_operations+0x108/0x1ac) [ 4.738670] r9:c0c43cbc r8:ef04de70 r7:c0c4fcd0 r6:c0c552a0 r5:00000000 r4:c0c4fd00 [ 4.746409] [] (register_pernet_operations) from [] (register_pernet_subsys+0x34/0x48) [ 4.756054] r9:00000000 r8:c0c60780 r7:c0b37850 r6:c0c552a0 r5:c0c4fc44 r4:c0c4fc40 [ 4.763797] [] (register_pernet_subsys) from [] (nf_conntrack_l3proto_ipv4_init+0x38/0xb4) [ 4.773786] r7:c0b37850 r6:ffffe000 r5:c0b2cf24 r4:00000000 [ 4.779447] [] (nf_conntrack_l3proto_ipv4_init) from [] (do_one_initcall+0x5c/0x198) [ 4.788913] r5:c0b2cf24 r4:c0c0f4cc [ 4.792494] [] (do_one_initcall) from [] (kernel_init_freeable+0x254/0x2e8) [ 4.801185] r9:00000007 r8:c0c60780 r7:c0b37850 r6:c0c60780 r5:c0b48060 r4:c09ff22c [ 4.808926] [] (kernel_init_freeable) from [] (kernel_init+0x10/0x118) [ 4.817184] r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c070cae0 [ 4.825001] r4:00000000 [ 4.827542] [] (kernel_init) from [] (ret_from_fork+0x14/0x24) [ 4.835102] r5:c070cae0 r4:00000000 But the same kernel config without netfilter got: [ 11.748845] ============================================ [ 11.754151] WARNING: possible recursive locking detected [ 11.759460] 4.12.0-rc1-next-20170518+ #278 Not tainted [ 11.764591] -------------------------------------------- [ 11.769897] mount/459 is trying to acquire lock: [ 11.774510] (cpu_hotplug_lock.rw_sem){++++++}, at: [] stop_machine+0x1c/0x3c [ 11.782527] but task is already holding lock: [ 11.788352] (cpu_hotplug_lock.rw_sem){++++++}, at: [] static_key_slow_dec+0x28/0x64 [ 11.796968] other info that might help us debug this: [ 11.803488] Possible unsafe locking scenario: [ 11.809400] CPU0 [ 11.811844] ---- [ 11.814287] lock(cpu_hotplug_lock.rw_sem); [ 11.818557] lock(cpu_hotplug_lock.rw_sem); [ 11.822827] *** DEADLOCK *** [ 11.828741] May be due to missing lock nesting notation [ 11.835522] 3 locks held by mount/459: [ 11.839266] #0: (cgroup_mutex){+.+.+.}, at: [] cgroup_lock_and_drain_offline+0x38/0x318 [ 11.848318] #1: (cpu_hotplug_lock.rw_sem){++++++}, at: [] static_key_slow_dec+0x28/0x64 [ 11.857367] #2: (jump_label_mutex){+.+...}, at: [] __static_key_slow_dec+0x20/0xac [ 11.865983] stack backtrace: [ 11.870341] CPU: 3 PID: 459 Comm: mount Not tainted 4.12.0-rc1-next-20170518+ #278 [ 11.877899] Hardware name: Allwinner sun8i Family [ 11.882596] Backtrace: [ 11.885054] [] (dump_backtrace) from [] (show_stack+0x18/0x1c) [ 11.892618] r7:c0a24f50 r6:00000000 r5:600f0093 r4:c0a24f50 [ 11.898277] [] (show_stack) from [] (dump_stack+0xac/0xd8) [ 11.905499] [] (dump_stack) from [] (__lock_acquire+0xbc0/0x19f0) [ 11.913324] r10:eebe4b00 r9:c0b7d61c r8:00000000 r7:c0a25040 r6:00000000 r5:c1276380 [ 11.921143] r4:c0b7d61c r3:00000000 [ 11.924721] [] (__lock_acquire) from [] (lock_acquire+0x74/0x90) [ 11.932458] r10:c1266c28 r9:c1266c28 r8:00000001 r7:00000001 r6:600f0013 r5:00000000 [ 11.940277] r4:ffffe000 [ 11.942817] [] (lock_acquire) from [] (get_online_cpus+0x58/0xe0) [ 11.950640] r8:0000003c r7:c01ccb28 r6:c0a10374 r5:00000000 r4:c0a109c4 [ 11.957337] [] (get_online_cpus) from [] (stop_machine+0x1c/0x3c) [ 11.965160] r7:c12658c4 r6:00000000 r5:eeb85ca0 r4:c010f964 [ 11.970819] [] (stop_machine) from [] (patch_text+0x2c/0x34) [ 11.978208] r7:c12658c4 r6:c0a16b14 r5:c0a4eff8 r4:c01c6f38 [ 11.983867] [] (patch_text) from [] (arch_jump_label_transform+0x28/0x44) [ 11.992387] [] (arch_jump_label_transform) from [] (__jump_label_update+0x94/0x9c) [ 12.001681] r5:c0a4eff8 r4:c0a4ebf0 [ 12.005259] [] (__jump_label_update) from [] (jump_label_update+0x94/0x130) [ 12.013948] r7:c12658c4 r6:00000000 r5:c0a16b14 r4:c0a4eff8 [ 12.019606] [] (jump_label_update) from [] (__static_key_slow_dec+0x64/0xac) [ 12.028382] r7:c12658c4 r6:00000000 r5:00000000 r4:c0a16b14 [ 12.034040] [] (__static_key_slow_dec) from [] (static_key_slow_dec+0x38/0x64) [ 12.042990] r7:c12658c4 r6:c0a17458 r5:eeaa6000 r4:c0a16b14 [ 12.048647] [] (static_key_slow_dec) from [] (static_key_disable+0x34/0x68) [ 12.057335] r5:eeaa6000 r4:c0a16b14 [ 12.060913] [] (static_key_disable) from [] (rebind_subsystems+0x320/0x3fc) [ 12.069601] r5:eeaa6000 r4:eeaa6010 [ 12.073179] [] (rebind_subsystems) from [] (cgroup_setup_root+0x154/0x2c8) [ 12.081784] r10:c0a164e0 r9:eeaa6018 r8:c0a16a94 r7:00000000 r6:eeaa6000 r5:eeb85dd0 [ 12.089603] r4:eeaa6010 [ 12.092140] [] (cgroup_setup_root) from [] (cgroup1_mount+0x62c/0x848) [ 12.100398] r10:c0a1661c r9:00000001 r8:c0a16aac r7:00000000 r6:c12657f0 r5:eeaa6000 [ 12.108216] r4:c0a16904 [ 12.110755] [] (cgroup1_mount) from [] (cgroup_mount+0xc8/0x430) [ 12.118492] r10:00000000 r9:ef238000 r8:c0a16a30 r7:c0a169b0 r6:c0a16a30 r5:eea7a880 [ 12.126311] r4:c0a07584 [ 12.128851] [] (cgroup_mount) from [] (mount_fs+0x1c/0xac) [ 12.136069] r10:00000000 r9:ef238000 r8:c0a16a30 r7:c0273b70 r6:c0a16a30 r5:eea7a880 [ 12.143887] r4:c01bc3f4 [ 12.146427] [] (mount_fs) from [] (vfs_kern_mount+0x5c/0x130) [ 12.153903] r6:00000000 r5:eea7a880 r4:eea42700 [ 12.158522] [] (vfs_kern_mount) from [] (do_mount+0x164/0xc98) [ 12.166086] r9:eea7a2c0 r8:c0274a50 r7:eea7a880 r6:00000027 r5:ef238000 r4:c0a16a30 [ 12.173822] [] (do_mount) from [] (SyS_mount+0x94/0xbc) [ 12.180781] r10:00000000 r9:eeb84000 r8:c0ed000e r7:010ec1b0 r6:ef238000 r5:eea7a2c0 [ 12.188599] r4:eea7a880 [ 12.191139] [] (SyS_mount) from [] (ret_fast_syscall+0x0/0x1c) [ 12.198703] r8:c0108084 r7:00000015 r6:010ec1a0 r5:00000000 r4:010ec170 Regards