linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] NFS DRC scalability patches
@ 2014-08-03 17:05 Trond Myklebust
  2014-08-03 17:05 ` [PATCH 1/6] nfsd: Clean up drc cache in preparation for global spinlock elimination Trond Myklebust
  2014-08-04 11:45 ` [PATCH 0/6] NFS DRC scalability patches Jeff Layton
  0 siblings, 2 replies; 10+ messages in thread
From: Trond Myklebust @ 2014-08-03 17:05 UTC (permalink / raw)
  To: Bruce Fields; +Cc: linux-nfs

Hi Bruce,

The following patchset is again more an FYI than a must have, but it
addresses a significant scalability problem for NFSv3 when running
over 10GigE and 40GigE networks. At one point, I was seeing >60% CPU
spinning on the DRC global spinlock...

The one thing to note is that because the statistics are moved outside
spinlocking, then their accuracy is slightly reduced (I do convert the
number of entries into an atomic, so that is still 100% correct). The
right thing to do there is probably to convert those into per-cpu
counters, however I've not had time to do so for now.

Cheers,
  Trond

Trond Myklebust (6):
  nfsd: Clean up drc cache in preparation for global spinlock
    elimination
  nfsd: convert the lru list into a per-bucket thing
  nfsd: Remove the cache_hash list
  nfsd: convert num_drc_entries to an atomic_t
  nfsd: split DRC global spinlock into per-bucket locks
  nfsd: Reorder nfsd_cache_match to check more powerful discriminators
    first

 fs/nfsd/cache.h    |   1 -
 fs/nfsd/nfscache.c | 205 +++++++++++++++++++++++++++++------------------------
 2 files changed, 113 insertions(+), 93 deletions(-)

-- 
1.9.3


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-08-05 20:51 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-03 17:05 [PATCH 0/6] NFS DRC scalability patches Trond Myklebust
2014-08-03 17:05 ` [PATCH 1/6] nfsd: Clean up drc cache in preparation for global spinlock elimination Trond Myklebust
2014-08-03 17:06   ` [PATCH 2/6] nfsd: convert the lru list into a per-bucket thing Trond Myklebust
2014-08-03 17:06     ` [PATCH 3/6] nfsd: Remove the cache_hash list Trond Myklebust
2014-08-03 17:06       ` [PATCH 4/6] nfsd: convert num_drc_entries to an atomic_t Trond Myklebust
2014-08-03 17:06         ` [PATCH 5/6] nfsd: split DRC global spinlock into per-bucket locks Trond Myklebust
2014-08-03 17:06           ` [PATCH 6/6] nfsd: Reorder nfsd_cache_match to check more powerful discriminators first Trond Myklebust
2014-08-04 11:44           ` [PATCH 5/6] nfsd: split DRC global spinlock into per-bucket locks Jeff Layton
2014-08-04 11:45 ` [PATCH 0/6] NFS DRC scalability patches Jeff Layton
2014-08-05 20:51   ` Bruce Fields

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).