Re: [PATCH 1/1] NFSv3: Ignore wcc before ctime attribute

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> On Jan 17, 2017, at 11:20, Olga Kornievskaia <kolga@xxxxxxxxxx> wrote:
> 
> Hi Trond,
> 
> Honestly, I haven’t retried the 4.10-rc. I haven’t recalled any patches that dealt with out of order RPCs and attributes and therefore assumed it was still an issue. I will recheck the 4.10-rc if you think the issue should have been addressed.
> 
> 

I would assume that commit ca0daa277aca ("NFS: Cache aggressively when file is open for writing”) should have helped. Please let me know if that is not the case.

>> On Jan 17, 2017, at 11:14 AM, Trond Myklebust <trondmy@xxxxxxxxxxxxxxx> wrote:
>> 
>> Is there a problem with 4.10-rc?
>> 
>>> On Jan 17, 2017, at 09:33, Olga Kornievskaia <aglo@xxxxxxxxx> wrote:
>>> 
>>> Hi Trond,
>>> 
>>> I'd like bring up this issue again as I was asked again that linux
>>> nfsv3 client experiences poor performance when it receives
>>> out-of-order write rpcs. If a general change to ignore "before" ctime
>>> is not acceptable, what about something that is configurable via a
>>> sysctl perhaps?
>>> 
>>> On Fri, Apr 1, 2016 at 4:19 PM, Olga Kornievskaia <kolga@xxxxxxxxxx> wrote:
>>>> Commit 7c2dad99d60c86ec686b3bfdcb787c450a7ea89f
>>>> "Don't let the ctime override attribute barriers" introduced a problem
>>>> of invalidating the cache when receiving in-order WRITE replies. Because
>>>> ctime is no longer checked then attributes are not updated appropriately
>>>> and then leads to mismatch of received "before" with what's stored.
>>>> 
>>>> Given that sending the wcc attributes is not mandatory (and linux
>>>> server doesn't), we can ignore the received "before" ctime. It fixes
>>>> the current problem and also help when we receive out-of-order WRITEs.
>>>> 
>>>> Signed-off-by: Olga Kornievskaia <kolga@xxxxxxxxxx>
>>>> ---
>>>> fs/nfs/nfs3xdr.c | 2 --
>>>> 1 file changed, 2 deletions(-)
>>>> 
>>>> diff --git a/fs/nfs/nfs3xdr.c b/fs/nfs/nfs3xdr.c
>>>> index 267126d..feca07f 100644
>>>> --- a/fs/nfs/nfs3xdr.c
>>>> +++ b/fs/nfs/nfs3xdr.c
>>>> @@ -732,14 +732,12 @@ static int decode_wcc_attr(struct xdr_stream *xdr, struct nfs_fattr *fattr)
>>>>              goto out_overflow;
>>>> 
>>>>      fattr->valid |= NFS_ATTR_FATTR_PRESIZE
>>>> -               | NFS_ATTR_FATTR_PRECHANGE
>>>>              | NFS_ATTR_FATTR_PREMTIME
>>>>              | NFS_ATTR_FATTR_PRECTIME;
>>>> 
>>>>      p = xdr_decode_size3(p, &fattr->pre_size);
>>>>      p = xdr_decode_nfstime3(p, &fattr->pre_mtime);
>>>>      xdr_decode_nfstime3(p, &fattr->pre_ctime);
>>>> -       fattr->pre_change_attr = nfs_timespec_to_change_attr(&fattr->pre_ctime);
>>>> 
>>>>      return 0;
>>>> out_overflow:
>>>> --
>>>> 1.8.3.1
>>>> 
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>> 
>> 
> 

��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux