From: Jeff Layton <jlayton@redhat.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: bfields@fieldses.org, gartim@gmail.com, linux-nfs@vger.kernel.org
Subject: Re: [PATCH] nfsd: when reusing an existing repcache entry, unhash it first
Date: Wed, 4 Dec 2013 07:54:02 -0500 [thread overview]
Message-ID: <20131204075402.7b00d09d@tlielax.poochiereds.net> (raw)
In-Reply-To: <20131204083336.GB30216@infradead.org>
On Wed, 4 Dec 2013 00:33:36 -0800
Christoph Hellwig <hch@infradead.org> wrote:
> On Tue, Dec 03, 2013 at 01:21:12PM -0500, Jeff Layton wrote:
> > Most of this code is protected by a single spinlock (cache_lock). The
> > main benefit to switching to list_lru would be that we could move to a
> > per-node lock. But, to make that worthwhile would mean we'd need to
> > redesign the locking and break the cache_lock into multiple locks.
>
> No need to redo locks just yet, the biggest benefit is to use a well
> debug library for lru list handling, with the second biggest one being
> that you get out of the box shrinker support.
>
> > Also, the existing code does take pains to reuse an expired entry off
> > the LRU list in preference to allocating a new one. The list_lru code
> > doesn't have a mechanism to scrape the first entry off the LRU list,
> > though I suppose we could add one or abuse the cb_arg in the walk
> > callback as a return pointer.
>
> That's just because it is an old-school cache with a fixed upper bound
> of entries and no shrinker support. With proper shrinker integration
> this nasty code isn't needed.
Well, the old code just had a fixed number of entries (1024 or so?),
which was ridiculously small on modern server. A busy server could blow
out the cache in less than the retransmit interval, which made it
effectively worthless.
The new code has a much larger upper bound, but it is still bounded by
the amount of low memory on the host. We have shrinker integration
(though its propriety might be in question).
Are you suggesting that we shouldn't try to bound the cache at all and
should instead just let it grow and rely on the shrinker to keep it in
check?
--
Jeff Layton <jlayton@redhat.com>
next prev parent reply other threads:[~2013-12-04 12:54 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-02 20:26 [PATCH] nfsd: when reusing an existing repcache entry, unhash it first Jeff Layton
2013-12-03 10:25 ` Christoph Hellwig
2013-12-03 18:21 ` Jeff Layton
2013-12-04 8:33 ` Christoph Hellwig
2013-12-04 12:54 ` Jeff Layton [this message]
2013-12-04 13:09 ` Christoph Hellwig
2013-12-04 13:31 ` Jeff Layton
2013-12-04 13:40 ` Christoph Hellwig
2013-12-04 13:45 ` Jeff Layton
2013-12-04 13:54 ` Christoph Hellwig
2013-12-04 14:15 ` Jeff Layton
2013-12-04 14:25 ` J. Bruce Fields
2013-12-04 17:06 ` Jeff Layton
2013-12-04 17:06 ` Christoph Hellwig
2013-12-04 18:43 ` Jeff Layton
2013-12-03 15:50 ` J. Bruce Fields
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131204075402.7b00d09d@tlielax.poochiereds.net \
--to=jlayton@redhat.com \
--cc=bfields@fieldses.org \
--cc=gartim@gmail.com \
--cc=hch@infradead.org \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).