From owner-freebsd-fs@freebsd.org Fri Mar 4 15:23:40 2016 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 396389DB739 for ; Fri, 4 Mar 2016 15:23:40 +0000 (UTC) (envelope-from pho@holm.cc) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id 24C8FB12 for ; Fri, 4 Mar 2016 15:23:40 +0000 (UTC) (envelope-from pho@holm.cc) Received: by mailman.ysv.freebsd.org (Postfix) id 1FD6F9DB736; Fri, 4 Mar 2016 15:23:40 +0000 (UTC) Delivered-To: fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1F6D49DB735 for ; Fri, 4 Mar 2016 15:23:40 +0000 (UTC) (envelope-from pho@holm.cc) Received: from relay01.pair.com (relay01.pair.com [209.68.5.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EDDE7B11 for ; Fri, 4 Mar 2016 15:23:39 +0000 (UTC) (envelope-from pho@holm.cc) Received: from x2.osted.lan (87-58-223-204-dynamic.dk.customer.tdc.net [87.58.223.204]) by relay01.pair.com (Postfix) with ESMTP id 498F6D00621; Fri, 4 Mar 2016 10:23:32 -0500 (EST) Received: from x2.osted.lan (localhost [127.0.0.1]) by x2.osted.lan (8.14.9/8.14.9) with ESMTP id u24FNTim075307 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 4 Mar 2016 16:23:29 +0100 (CET) (envelope-from pho@x2.osted.lan) Received: (from pho@localhost) by x2.osted.lan (8.14.9/8.14.9/Submit) id u24FNSQm075306; Fri, 4 Mar 2016 16:23:28 +0100 (CET) (envelope-from pho) Date: Fri, 4 Mar 2016 16:23:28 +0100 From: Peter Holm To: Konstantin Belousov Cc: Maxim Sobolev , Kirk McKusick , fs@freebsd.org Subject: Re: Process stuck in "vnread" Message-ID: <20160304152328.GA71951@x2.osted.lan> References: <20160302095339.GB67250@kib.kiev.ua> <20160302115707.GF67250@kib.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160302115707.GF67250@kib.kiev.ua> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 15:23:40 -0000 On Wed, Mar 02, 2016 at 01:57:07PM +0200, Konstantin Belousov wrote: > On Wed, Mar 02, 2016 at 03:02:02AM -0800, Maxim Sobolev wrote: > > About the backtrace, indeed, looks like you are right and some portion of > > it is not decoded properly, as it's loaded as a kernel module. The setup is > > somewhat even more complicated, the /usr/ports is mounted via NULLFS, so in > > this command: > > > > cp /usr/local/share/automake-1.15/compile ./compile > > > > The target (i.e. ./compile) here is a path on ZFS that is exported via > > NULLFS, while the source is a file on UFS2->md->ZFS. This is probably the > > reason stack trace is incomplete, both zfs.ko and nullfs.ko are loaded as > > modules and the next few frames point towards those. Unfortunately I cannot > > beat kgdb to read symbols from those .ko's and decode them. > > Is nullfs mount put over ZFS only ? The backtrace you shown cannot > happen for ZFS, since ZFS has its own pager vop. In fact, I would > agree that the backtrace is reasonable for nullfs over UFS upper vnode. > The following patch should fix the 'paging while faulting on uiomove' > issue for nullfs over UFS. > > Peter, could you, please, test the patch ? It is purely nullfs change, > and the most interesting situation is the ups' deadlock, but the whole > set of nullfs tests would be good to check. > > diff --git a/sys/fs/nullfs/null_vfsops.c b/sys/fs/nullfs/null_vfsops.c > index 64e1e29..49bae28 100644 > --- a/sys/fs/nullfs/null_vfsops.c I have tested this patch with all of the nullfs scenarios I have, multiple times. I also tested the UPS' scenario on nullfs without finding any problems. - Peter