From owner-freebsd-fs@FreeBSD.ORG  Fri Oct 29 15:25:51 2010
Return-Path: <owner-freebsd-fs@FreeBSD.ORG>
Delivered-To: freebsd-fs@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C0E01106566B;
	Fri, 29 Oct 2010 15:25:51 +0000 (UTC) (envelope-from ai@kliksys.ru)
Received: from gate.kliksys.ru (gate.kliksys.ru [78.110.241.113])
	by mx1.freebsd.org (Postfix) with ESMTP id 75C858FC0C;
	Fri, 29 Oct 2010 15:25:51 +0000 (UTC)
Received: from [192.168.0.204] (helo=two.kliksys.ru)
	by gate.kliksys.ru with esmtp (Exim 4.71 (FreeBSD))
	(envelope-from <ai@kliksys.ru>)
	id 1PBqpx-000FAn-TK; Fri, 29 Oct 2010 19:25:50 +0400
Date: Fri, 29 Oct 2010 19:26:02 +0400
From: Artemiev Igor <ai@kliksys.ru>
To: freebsd-stable@freebsd.org, freebsd-fs@freebsd.org
Message-ID: <20101029152602.GA18613@two.kliksys.ru>
References: <3D1C350B94A44E5D95BAA1596D1EBF13@vosz.local>
	<20101029090417.GA17537@two.kliksys.ru>
	<4CCABFC2.3040701@icyb.net.ua> <4CCADD37.7000306@icyb.net.ua>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <4CCADD37.7000306@icyb.net.ua>
User-Agent: Mutt/1.5.20 (2009-06-14)
X-Spam_score: 0.0
Cc: 
Subject: Re: 8.1-STABLE: zfs and sendfile: problem still exists
X-BeenThere: freebsd-fs@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Filesystems <freebsd-fs.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-fs>,
	<mailto:freebsd-fs-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-fs>
List-Post: <mailto:freebsd-fs@freebsd.org>
List-Help: <mailto:freebsd-fs-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-fs>,
	<mailto:freebsd-fs-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 29 Oct 2010 15:25:51 -0000

On Fri, Oct 29, 2010 at 05:41:59PM +0300, Andriy Gapon wrote:

> What svn revision of FreeBSD source tree did you test?

r213936. Revision seems a little old.

> Ah, I think I see what's going on.
> Either sendfile should (have an option to) use VOP_GETPAGES to request data or ZFS
> mappedread should use vm_grab_page instead of vm_lookup_page for UIO_NOCOPY case.
> Currently ZFS would read a whole FS block into ARC, but populate only one page
> with data and for the rest it would just wastefully do uiomove(UIO_NOCOPY) from
> ARC data.
> So, e.g. zpool iostat would show that there are only few actual reads from a pool.
>  The rest of the time must be spent churning over the data already in ARC and
> doing page-per-VOP_READ copies from it.
I can test it, but what allocflags? VM_ALLOC_RETRY|VM_ALLOC_NORMAL?