From peterjeremy@acm.org  Sun Jan 24 20:23:52 2010
Return-Path: <peterjeremy@acm.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F2D4C1065676
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 24 Jan 2010 20:23:52 +0000 (UTC)
	(envelope-from peterjeremy@acm.org)
Received: from mail15.syd.optusnet.com.au (mail15.syd.optusnet.com.au [211.29.132.196])
	by mx1.freebsd.org (Postfix) with ESMTP id 85B828FC12
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 24 Jan 2010 20:23:52 +0000 (UTC)
Received: from server.vk2pj.dyndns.org (c122-106-232-148.belrs3.nsw.optusnet.com.au [122.106.232.148])
	by mail15.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id o0OKNnHu025238
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 25 Jan 2010 07:23:50 +1100
Received: from server.vk2pj.dyndns.org (localhost.vk2pj.dyndns.org [127.0.0.1])
	by server.vk2pj.dyndns.org (8.14.3/8.14.3) with ESMTP id o0OKNjkO044593;
	Mon, 25 Jan 2010 07:23:45 +1100 (EST)
	(envelope-from peter@server.vk2pj.dyndns.org)
Received: (from peter@localhost)
	by server.vk2pj.dyndns.org (8.14.3/8.14.3/Submit) id o0OKNj5p044592;
	Mon, 25 Jan 2010 07:23:45 +1100 (EST)
	(envelope-from peter)
Message-Id: <201001242023.o0OKNj5p044592@server.vk2pj.dyndns.org>
Date: Mon, 25 Jan 2010 07:23:45 +1100 (EST)
From: Peter Jeremy <peterjeremy@acm.org>
Reply-To: Peter Jeremy <peterjeremy@acm.org>
To: FreeBSD-gnats-submit@freebsd.org
Subject: [zfs] [lor] zfs/bufwait LOR
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         143184
>Category:       kern
>Synopsis:       [zfs] [lor] zfs/bufwait LOR
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-fs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jan 24 20:30:05 UTC 2010
>Closed-Date:    
>Last-Modified:  Mon Jan 25 10:00:12 UTC 2010
>Originator:     Peter Jeremy
>Release:        FreeBSD 8.0-STABLE amd64
>Organization:
n/a
>Environment:
System: FreeBSD server.vk2pj.dyndns.org 8.0-STABLE FreeBSD 8.0-STABLE #11: Mon Nov 30 16:36:34 EST 2009 root@server.vk2pj.dyndns.org:/var/obj/usr/src/sys/server amd64

>Description:
	New LOR:
lock order reversal:
 1st 0xffffff002f7fb270 zfs (zfs) @ /usr/src/sys/kern/vfs_vnops.c:533
 2nd 0xffffff80803a26e0 bufwait (bufwait) @ /usr/src/sys/vm/vm_pager.c:311
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
_witness_debugger() at _witness_debugger+0x2c
witness_checkorder() at witness_checkorder+0x66f
__lockmgr_args() at __lockmgr_args+0x475
initpbuf() at initpbuf+0xb9
getpbuf() at getpbuf+0xdc
swap_pager_getpages() at swap_pager_getpages+0x1aa
vm_fault() at vm_fault+0x5f7
trap_pfault() at trap_pfault+0x128
trap() at trap+0x379
calltrap() at calltrap+0x8
--- trap 0xc, rip = 0xffffffff8049497b, rsp = 0xffffff809a427830, rbp = 0xffffff809a4278b0 ---
copyout() at copyout+0x3b
dmu_read_uio() at dmu_read_uio+0x98
zfs_freebsd_read() at zfs_freebsd_read+0x56f
VOP_READ_APV() at VOP_READ_APV+0x44
vn_read() at vn_read+0x149
dofileread() at dofileread+0xa1
kern_readv() at kern_readv+0x60
read() at read+0x55
syscall() at syscall+0x1ac
Xfast_syscall() at Xfast_syscall+0xe1
--- syscall (3, FreeBSD ELF64, read), rip = 0x8008ce86c, rsp = 0x7ffffffeb718, rbp = 0x805b41d18 ---

>How-To-Repeat:
	Unknown
>Fix:
	Unknown


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-fs 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Sun Jan 24 22:46:13 UTC 2010 
Responsible-Changed-Why:  
Over to maintainer(s). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=143184 

From: Peter Jeremy <peterjeremy@acm.org>
To: FreeBSD-gnats-submit@FreeBSD.org, freebsd-bugs@FreeBSD.org
Cc:  
Subject: Re: kern/143184: [zfs] [lor] zfs/bufwait LOR
Date: Mon, 25 Jan 2010 20:51:40 +1100

 --h31gzZEtNLTqOjlF
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 Content-Transfer-Encoding: quoted-printable
 
 Archive followup in -stable:
 
 On 2010-Jan-25 11:24:11 +0200, Kostik Belousov <kostikbel@gmail.com> wrote:
 >On Mon, Jan 25, 2010 at 07:07:00PM +1100, Peter Jeremy wrote:
 >> I had the following crop up recently in 8-STABLE/amd64 from end of
 >> November.  It's been reported as kern/143184.
 >Basically, page containing the buffer for read(2) is swapped out.
 >This causes page fault in copyout(9) and entry into vm subsystem
 >while zfs vnode lock is held.
 >
 >If the buffer is backed by e.g. UFS vnode instead of anonymous
 >memory, you would get UFS/zfs LOR.
 >
 >The problem is generic, I am working on the solution in collaboration
 >with Peter Holm, basing on the Jeff Roberson idea.
 
 --=20
 Peter Jeremy
 
 --h31gzZEtNLTqOjlF
 Content-Type: application/pgp-signature
 Content-Disposition: inline
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.14 (FreeBSD)
 
 iEYEARECAAYFAktdaawACgkQ/opHv/APuIeonwCgp1EIoAGldB1BjSpDlmC3Pr40
 pv4AnRukj/ieQrITLKCn33yzGcgeWNC6
 =+uuT
 -----END PGP SIGNATURE-----
 
 --h31gzZEtNLTqOjlF--
>Unformatted:
