Date: Thu, 18 Jun 2015 15:34:14 +0300 From: Konstantin Belousov <kostikbel@gmail.com> To: Gleb Smirnoff <glebius@FreeBSD.org> Cc: Alan Cox <alc@rice.edu>, arch@FreeBSD.org, rmacklem@freebsd.org Subject: Re: Step 2 Was: more strict KPI for vm_pager_get_pages() Message-ID: <20150618123414.GG2080@kib.kiev.ua> In-Reply-To: <20150615212931.GG73119@glebius.int.ru> References: <20150615212931.GG73119@glebius.int.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jun 16, 2015 at 12:29:31AM +0300, Gleb Smirnoff wrote: > Hi! > > This is step 2 of the "more strict pager KPI" patch: > > o Uninline vm_pager_get_pages() into vm_pager.c. > o Keep all KASSERTs that enforce the KPI of pagers and of their > consumers in one place: vm_pager_get_pages(). > o Keep the code that zeroes out partially valid pages in one > place in vm_pager_get_pages(). > I added Rick to Cc:, since there is something which I do not quite understand in the NFS client code. According to NFS v3 RFC, server may reply with the short read for a read RPC. In case the EOF flag is not set in the reply, this means that the data is available, and it is a transient server condition that reply was truncated. Do we handle the short reads ? I see the code in nfs read path which zeroes the absent parts of the buffer. Similarly, there is a code to zero the unread part of the page after VOP_GETPAGES(). But couldn't this result in the zeros instead of real data after the short read ? At least, I was not able to find code which would retry after reply without EOF.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150618123414.GG2080>