Skip site navigation (1)Skip section navigation (2)
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>