Return-Path: linux-nfs-owner@vger.kernel.org Received: from mail-yh0-f42.google.com ([209.85.213.42]:38894 "EHLO mail-yh0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751352AbaKJXBg (ORCPT ); Mon, 10 Nov 2014 18:01:36 -0500 Received: by mail-yh0-f42.google.com with SMTP id b6so5004573yha.29 for ; Mon, 10 Nov 2014 15:01:35 -0800 (PST) From: Jeff Layton Date: Mon, 10 Nov 2014 18:01:32 -0500 To: "J. Bruce Fields" Cc: Trond Myklebust , linux-nfs@vger.kernel.org Subject: Re: 3.18 lock warnings Message-ID: <20141110180132.1b670ca8@tlielax.poochiereds.net> In-Reply-To: <20141110215441.GI32702@fieldses.org> References: <20141110215441.GI32702@fieldses.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-nfs-owner@vger.kernel.org List-ID: On Mon, 10 Nov 2014 16:54:41 -0500 "J. Bruce Fields" wrote: > My test client is issuing intermittent warnings like the below. Is this a > known issue? > > I guess the problem is > net/sunrpc/auth_gss/auth_gss.c:gss_stringify_acceptor(): > > rcu_read_lock(); > ... > string = kmalloc(acceptor->len + 1, GFP_KERNEL); > ... > rcu_read_unlock(); > > introduced by c5e6aecd034e "sunrpc: fix RCU handling of gc_ctx field". > > --b. > > Nov 7 21:21:40 f20-2 kernel: BUG: sleeping function called from invalid context at mm/slab.c:2846 > Nov 7 21:21:40 f20-2 kernel: in_atomic(): 0, irqs_disabled(): 0, pid: 4539, name: mount.nfs > Nov 7 21:21:40 f20-2 kernel: 2 locks held by mount.nfs/4539: > Nov 7 21:21:40 f20-2 kernel: #0: (nfs_clid_init_mutex){+.+.+.}, at: [] nfs4_discover_server_trunking+0x4a/0x2f0 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: #1: (rcu_read_lock){......}, at: [] gss_stringify_acceptor+0x5/0xb0 [auth_rpcgss] > Nov 7 21:21:40 f20-2 kernel: Preemption disabled at:[] printk+0x4d/0x4f > Nov 7 21:21:40 f20-2 kernel: > Nov 7 21:21:40 f20-2 kernel: BUG: sleeping function called from invalid context at mm/slab.c:2846 > Nov 7 21:21:40 f20-2 kernel: CPU: 3 PID: 4539 Comm: mount.nfs Not tainted 3.18.0-rc1-00013-g5b095e9 #3393 > Nov 7 21:21:40 f20-2 kernel: Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 > Nov 7 21:21:40 f20-2 kernel: in_atomic(): 0, irqs_disabled(): 0, pid: 4539, name: mount.nfs > Nov 7 21:21:40 f20-2 kernel: 2 locks held by mount.nfs/4539: > Nov 7 21:21:40 f20-2 kernel: #0: (nfs_clid_init_mutex){+.+.+.}, at: [] nfs4_discover_server_trunking+0x4a/0x2f0 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: #1: (rcu_read_lock){......}, at: [] gss_stringify_acceptor+0x5/0xb0 [auth_rpcgss] > Nov 7 21:21:40 f20-2 kernel: Preemption disabled at:[] printk+0x4d/0x4f > Nov 7 21:21:40 f20-2 kernel: > Nov 7 21:21:40 f20-2 kernel: CPU: 3 PID: 4539 Comm: mount.nfs Not tainted 3.18.0-rc1-00013-g5b095e9 #3393 > Nov 7 21:21:40 f20-2 kernel: Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 > Nov 7 21:21:40 f20-2 kernel: ffff880021499390 ffff8800381476a8 ffffffff81a534cf 0000000000000001 > Nov 7 21:21:40 f20-2 kernel: 0000000000000000 ffff8800381476c8 ffffffff81097854 00000000000000d0 > Nov 7 21:21:40 f20-2 kernel: 0000000000000018 ffff880038147718 ffffffff8118e4f3 0000000020479f00 > Nov 7 21:21:40 f20-2 kernel: Call Trace: > Nov 7 21:21:40 f20-2 kernel: [] dump_stack+0x4f/0x7c > Nov 7 21:21:40 f20-2 kernel: [] __might_sleep+0x114/0x180 > Nov 7 21:21:40 f20-2 kernel: [] __kmalloc+0x1a3/0x280 > Nov 7 21:21:40 f20-2 kernel: [] gss_stringify_acceptor+0x58/0xb0 [auth_rpcgss] > Nov 7 21:21:40 f20-2 kernel: [] ? gss_stringify_acceptor+0x5/0xb0 [auth_rpcgss] > Nov 7 21:21:40 f20-2 kernel: [] rpcauth_stringify_acceptor+0x18/0x30 [sunrpc] > Nov 7 21:21:40 f20-2 kernel: [] nfs4_proc_setclientid+0x199/0x380 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] ? nfs4_proc_setclientid+0x200/0x380 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] nfs40_discover_server_trunking+0xda/0x150 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] ? nfs40_discover_server_trunking+0x5/0x150 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] nfs4_discover_server_trunking+0x7f/0x2f0 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] nfs4_init_client+0x104/0x2f0 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] nfs_get_client+0x314/0x3f0 [nfs] > Nov 7 21:21:40 f20-2 kernel: [] ? nfs_get_client+0xe0/0x3f0 [nfs] > Nov 7 21:21:40 f20-2 kernel: [] nfs4_set_client+0x8a/0x110 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] ? __rpc_init_priority_wait_queue+0xa8/0xf0 [sunrpc] > Nov 7 21:21:40 f20-2 kernel: [] nfs4_create_server+0x12f/0x390 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] nfs4_remote_mount+0x32/0x60 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] mount_fs+0x39/0x1b0 > Nov 7 21:21:40 f20-2 kernel: [] ? __alloc_percpu+0x15/0x20 > Nov 7 21:21:40 f20-2 kernel: [] vfs_kern_mount+0x6b/0x150 > Nov 7 21:21:40 f20-2 kernel: [] nfs_do_root_mount+0x86/0xc0 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] nfs4_try_mount+0x44/0xc0 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] ? get_nfs_version+0x27/0x90 [nfs] > Nov 7 21:21:40 f20-2 kernel: [] nfs_fs_mount+0x47d/0xd60 [nfs] > Nov 7 21:21:40 f20-2 kernel: [] ? mutex_unlock+0xe/0x10 > Nov 7 21:21:40 f20-2 kernel: [] ? nfs_remount+0x430/0x430 [nfs] > Nov 7 21:21:40 f20-2 kernel: [] ? nfs_clone_super+0x140/0x140 [nfs] > Nov 7 21:21:40 f20-2 kernel: [] mount_fs+0x39/0x1b0 > Nov 7 21:21:40 f20-2 kernel: [] ? __alloc_percpu+0x15/0x20 > Nov 7 21:21:40 f20-2 kernel: [] vfs_kern_mount+0x6b/0x150 > Nov 7 21:21:40 f20-2 kernel: [] do_mount+0x210/0xbe0 > Nov 7 21:21:40 f20-2 kernel: [] ? copy_mount_options+0x3a/0x160 > Nov 7 21:21:40 f20-2 kernel: [] SyS_mount+0x6f/0xb0 > Nov 7 21:21:40 f20-2 kernel: [] system_call_fastpath+0x12/0x17 > Nov 7 21:21:40 f20-2 kernel: ffff880021499390 ffff8800381476a8 ffffffff81a534cf 0000000000000001 > Nov 7 21:21:40 f20-2 kernel: 0000000000000000 ffff8800381476c8 ffffffff81097854 00000000000000d0 > Nov 7 21:21:40 f20-2 kernel: 0000000000000018 ffff880038147718 ffffffff8118e4f3 0000000020479f00 > Nov 7 21:21:40 f20-2 kernel: Call Trace: > Nov 7 21:21:40 f20-2 kernel: [] dump_stack+0x4f/0x7c > Nov 7 21:21:40 f20-2 kernel: [] __might_sleep+0x114/0x180 > Nov 7 21:21:40 f20-2 kernel: [] __kmalloc+0x1a3/0x280 > Nov 7 21:21:40 f20-2 kernel: [] gss_stringify_acceptor+0x58/0xb0 [auth_rpcgss] > Nov 7 21:21:40 f20-2 kernel: [] ? gss_stringify_acceptor+0x5/0xb0 [auth_rpcgss] > Nov 7 21:21:40 f20-2 kernel: [] rpcauth_stringify_acceptor+0x18/0x30 [sunrpc] > Nov 7 21:21:40 f20-2 kernel: [] nfs4_proc_setclientid+0x199/0x380 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] ? nfs4_proc_setclientid+0x200/0x380 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] nfs40_discover_server_trunking+0xda/0x150 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] ? nfs40_discover_server_trunking+0x5/0x150 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] nfs4_discover_server_trunking+0x7f/0x2f0 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] nfs4_init_client+0x104/0x2f0 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] nfs_get_client+0x314/0x3f0 [nfs] > Nov 7 21:21:40 f20-2 kernel: [] ? nfs_get_client+0xe0/0x3f0 [nfs] > Nov 7 21:21:40 f20-2 kernel: [] nfs4_set_client+0x8a/0x110 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] ? __rpc_init_priority_wait_queue+0xa8/0xf0 [sunrpc] > Nov 7 21:21:40 f20-2 kernel: [] nfs4_create_server+0x12f/0x390 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] nfs4_remote_mount+0x32/0x60 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] mount_fs+0x39/0x1b0 > Nov 7 21:21:40 f20-2 kernel: [] ? __alloc_percpu+0x15/0x20 > Nov 7 21:21:40 f20-2 kernel: [] vfs_kern_mount+0x6b/0x150 > Nov 7 21:21:40 f20-2 kernel: [] nfs_do_root_mount+0x86/0xc0 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] nfs4_try_mount+0x44/0xc0 [nfsv4] > Nov 7 21:21:40 f20-2 kernel: [] ? get_nfs_version+0x27/0x90 [nfs] > Nov 7 21:21:40 f20-2 kernel: [] nfs_fs_mount+0x47d/0xd60 [nfs] > Nov 7 21:21:40 f20-2 kernel: [] ? mutex_unlock+0xe/0x10 > Nov 7 21:21:40 f20-2 kernel: [] ? nfs_remount+0x430/0x430 [nfs] > Nov 7 21:21:40 f20-2 kernel: [] ? nfs_clone_super+0x140/0x140 [nfs] > Nov 7 21:21:40 f20-2 kernel: [] mount_fs+0x39/0x1b0 > Nov 7 21:21:40 f20-2 kernel: [] ? __alloc_percpu+0x15/0x20 > Nov 7 21:21:40 f20-2 kernel: [] vfs_kern_mount+0x6b/0x150 > Nov 7 21:21:40 f20-2 kernel: [] do_mount+0x210/0xbe0 > Nov 7 21:21:40 f20-2 kernel: [] ? copy_mount_options+0x3a/0x160 > Nov 7 21:21:40 f20-2 kernel: [] SyS_mount+0x6f/0xb0 > Nov 7 21:21:40 f20-2 kernel: [] system_call_fastpath+0x12/0x17 > Nov 7 21:21:42 f20-2 kernel: mount.nfs (4539) used greatest stack depth: 10344 bytes left > Nov 7 21:21:42 f20-2 kernel: mount.nfs (4539) used greatest stack depth: 10344 bytes left > Nov 7 21:21:42 f20-2 kernel: BUG: sleeping function called from invalid context at mm/slab.c:2846 > Nov 7 21:21:42 f20-2 kernel: in_atomic(): 0, irqs_disabled(): 0, pid: 4596, name: 192.168.122.21- > Nov 7 21:21:42 f20-2 kernel: 1 lock held by 192.168.122.21-/4596: > Nov 7 21:21:42 f20-2 kernel: #0: (rcu_read_lock){......}, at: [] gss_stringify_acceptor+0x5/0xb0 [auth_rpcgss] > Nov 7 21:21:42 f20-2 kernel: Preemption disabled at:[] printk+0x4d/0x4f Doh! Yeah, clearly a bug -- can't sleep in a rcu critical section. I'll spin up a patch and send it out in a day or two. Sorry about that... -- Jeff Layton