Re: [PATCH v2 0/8] nfsd: duplicate reply cache overhaul

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

 



On Mon, Feb 04, 2013 at 08:17:59AM -0500, Jeff Layton wrote:
> This is the second posting of the remaining unmerged patches in this
> set. There are a number of differences from the first set:
> 
> - The bug in the checksum patch has been fixed.
> 
> - A hard cap on the number of DRC entries is retained, but it's larger
>   than the original cap, and scales with the amount of low memory in
>   the machine.
> 
> - A shrinker is still registered, but it will now only free entries
>   that are expired or are over the max number of entries.
> 
> Our QA group has been reporting on and off for the last several years
> about occasional failures in testing, especially on UDP. When we go to
> look at traces, we see a missing reply from a server on a non-idempotent
> request. The client then retransmits the request and the server tries to
> redo it instead of just sending the DRC entry.
> 
> With an instrumented kernel on the server and a synthetic reproducer, we
> found that it's quite easy to hammer the server so fast that DRC entries
> get flushed out long before a retransmit can come in.
> 
> This patchset is a first pass at fixing this. Instead of simply keeping
> a cache of the last 1024 entries, it allows nfsd to grow and shrink the
> DRC dynamically.
> 
> While most of us will probably say "so what" when it comes to UDP
> failures, it's a potential problem on connected transports as well. I'm
> also inclined to try and fix things that screw up the people that are
> helping us test our code.
> 
> I'd like to see this merged for 3.9 if possible...

These look fine, thanks.  Applying pending some testing.

--b.

> 
> Jeff Layton (8):
>   nfsd: always move DRC entries to the end of LRU list when updating
>     timestamp
>   nfsd: track the number of DRC entries in the cache
>   nfsd: dynamically allocate DRC entries
>   nfsd: remove the cache_disabled flag
>   nfsd: when updating an entry with RC_NOCACHE, just free it
>   nfsd: add recurring workqueue job to clean the cache
>   nfsd: register a shrinker for DRC cache entries
>   nfsd: keep a checksum of the first 256 bytes of request
> 
>  fs/nfsd/cache.h    |   5 +
>  fs/nfsd/nfscache.c | 271 ++++++++++++++++++++++++++++++++++++++++-------------
>  2 files changed, 209 insertions(+), 67 deletions(-)
> 
> -- 
> 1.7.11.7
> 
--
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


[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