Date: Tue, 26 Jan 2010 15:10:59 -0500 From: John Baldwin <jhb@freebsd.org> To: Marius Strobl <marius@alchemy.franken.de> Cc: rmacklem@freebsd.org, dfr@freebsd.org, freebsd-stable@freebsd.org, Peter Jeremy <peterjeremy@acm.org> Subject: Re: uma_zalloc_arg complaining about non-sleepable locks Message-ID: <201001261510.59667.jhb@freebsd.org> In-Reply-To: <20100126183756.GA40779@alchemy.franken.de> References: <20100126073336.GA1955@server.vk2pj.dyndns.org> <201001260946.44977.jhb@freebsd.org> <20100126183756.GA40779@alchemy.franken.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 26 January 2010 1:37:56 pm Marius Strobl wrote: > On Tue, Jan 26, 2010 at 09:46:44AM -0500, John Baldwin wrote: > > On Tuesday 26 January 2010 2:33:37 am Peter Jeremy wrote: > > > I have just upgraded to 8-STABLE/amd64 from about 18 hours ago and am > > > now getting regular (the following pair of messages about every > > > minute) compaints as follows: > > > > > > kernel: uma_zalloc_arg: zone "mbuf" with the following non-sleepable locks held: > > > kernel: exclusive sleep mutex sp_lock (sp_lock) r = 0 (0xffffff000460bb00) locked @ /usr/src/sys/rpc/svc.c:1098 > > > kernel: KDB: stack backtrace: > > > kernel: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > > > kernel: _witness_debugger() at _witness_debugger+0x2c > > > kernel: witness_warn() at witness_warn+0x2c2 > > > kernel: uma_zalloc_arg() at uma_zalloc_arg+0x29d > > > kernel: nfs_realign() at nfs_realign+0x5f > > > kernel: fha_assign() at fha_assign+0x2d8 > > > kernel: svc_run_internal() at svc_run_internal+0x1ee > > > kernel: svc_thread_start() at svc_thread_start+0xb > > > kernel: fork_exit() at fork_exit+0x112 > > > kernel: fork_trampoline() at fork_trampoline+0xe > > > kernel: --- trap 0xc, rip = 0x80069e04c, rsp = 0x7fffffffe6d8, rbp = 0x5 --- > > > kernel: uma_zalloc_arg: zone "mbuf" with the following non-sleepable locks held: > > > kernel: exclusive sleep mutex sp_lock (sp_lock) r = 0 (0xffffff000460bb00) locked @ /usr/src/sys/rpc/svc.c:1098 > > > kernel: KDB: stack backtrace: > > > kernel: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > > > kernel: _witness_debugger() at _witness_debugger+0x2c > > > kernel: witness_warn() at witness_warn+0x2c2 > > > kernel: uma_zalloc_arg() at uma_zalloc_arg+0x29d > > > kernel: nfs_realign() at nfs_realign+0x5f > > > kernel: fha_assign() at fha_assign+0x2d8 > > > kernel: svc_run_internal() at svc_run_internal+0x1ee > > > kernel: svc_thread_start() at svc_thread_start+0xb > > > kernel: fork_exit() at fork_exit+0x112 > > > kernel: fork_trampoline() at fork_trampoline+0xe > > > kernel: --- trap 0xc, rip = 0x80069e04c, rsp = 0x7fffffffe6d8, rbp = 0x5 --- > > > > > > It looks like NFS is missing some lock/unlock pairs. Has anyone else > > > seen this? And does anyone have a fix? > > > > I suspect this was caused by the recent alignment fixes to NFS. I've cc'd > > Marius. > > > > Could you please give the following patch a try? > http://people.freebsd.org/~marius/fha_extract_info_realign2.diff > > It would also be great if one of the NFS gurus could have a look at > the whole issue. Unfortunately, I hadn't received a reply regarding > the original patch. Hmm, the old code was already using M_DONTWAIT, so now I don't see why you were getting the witness warning. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001261510.59667.jhb>