From owner-freebsd-arch@FreeBSD.ORG Mon May 4 09:55:03 2015 Return-Path: Delivered-To: arch@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 76F71469; Mon, 4 May 2015 09:55:03 +0000 (UTC) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebius.int.ru", Issuer "cell.glebius.int.ru" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 04870183F; Mon, 4 May 2015 09:55:01 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.9/8.14.9) with ESMTP id t449sxej042498 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 4 May 2015 12:54:59 +0300 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.9/8.14.9/Submit) id t449sxvM042497; Mon, 4 May 2015 12:54:59 +0300 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Mon, 4 May 2015 12:54:59 +0300 From: Gleb Smirnoff To: Julian Elischer Cc: Konstantin Belousov , alc@FreeBSD.org, arch@FreeBSD.org Subject: Re: more strict KPI for vm_pager_get_pages() Message-ID: <20150504095459.GI34544@glebius.int.ru> References: <20150430142408.GS546@nginx.com> <20150504082426.GC2390@kib.kiev.ua> <554740EF.7030808@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <554740EF.7030808@freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 May 2015 09:55:03 -0000 On Mon, May 04, 2015 at 05:50:39PM +0800, Julian Elischer wrote: J> > IMO, the response from vm_pager_haspages() is only advisory, since J> > filesystem might not control the external entities which are the source J> > of the required data. J> J> Also since the backing object is not locked, a truncate() may be performed J> between the operations making the prior return information invalid. J> Certainly in remote filesystems, possibly on local ones too. Of course, the object shouldn't be unlocked between vm_pager_haspage() and vm_pager_get_pages(). All current consumers do not unlock. -- Totus tuus, Glebius.