Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Mar 2016 17:16:23 -0700
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        Bruce Evans <brde@optusnet.com.au>
Cc:        fs@freebsd.org, rmacklem@freebsd.org
Subject:   Re: nfs pessimized by vnode pages changes
Message-ID:  <20160329001623.GC2616@FreeBSD.org>
In-Reply-To: <20160329090209.Q1020@besplex.bde.org>
References:  <20160327144755.Y4269@besplex.bde.org> <20160329090209.Q1020@besplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Mar 29, 2016 at 10:59:26AM +1100, Bruce Evans wrote:
B> > I debugged another pessimization of nfs.

...

B> > ncl_getpages() is now almost always called with a count of 1 page, due
B> > to the change changing the count from faultcount to 1 in r292373 in
B> > vm_fault().

...

B> I couldn't get full-fs-block input to work right in ncl_getpages().  In
B> the old version, vm_fault_hold() almost always calls it with the pages
B> for exactly 1 full block, because vm_fault_additional_pages() somehow
B> finds this many pages.

The last quoted paragraph is a correct observation. According to your
investigations, prior to r292373 NFS was doing multiple page pageins,
despite it should have reported that it can't. My reading of the code
is the same: both before r292373 and after r292373 NFS should page in
a single page at request. I quickly reviewed the whole codepath and I
can't see how with older code it was able to do multiple page pageins.

-- 
Totus tuus, Glebius.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160329001623.GC2616>