From: NeilBrown <neilb@suse.de>
To: Andrew Morton <akpm@osdl.org>
Cc: nfs@lists.sourceforge.net, linux-kernel@vger.kernel.org
Subject: [PATCH 000 of 11] knfsd: Introduction - Make knfsd more NUMA-aware
Date: Mon, 31 Jul 2006 10:41:42 +1000 [thread overview]
Message-ID: <20060731103458.29040.patches@notabene> (raw)
Following are 11 patches from Greg Banks which combine to make knfsd
more Numa-aware. They reduce hitting on 'global' data structures, and
create some data-structures that can be node-local.
knfsd threads are bound to a particular node, and the thread to handle
a new request is chosen from the threads that are attach to the node
that received the interrupt.
The distribution of threads across nodes can be controlled by a new
file in the 'nfsd' filesystem, though the default approach of an even
spread is probably fine for most sites.
Some (old) numbers that show the efficacy of these patches:
N == number of NICs == number of CPUs == nmber of clients.
Number of NUMA nodes == N/2
N Throughput, MiB/s CPU usage, % (max=N*100)
Before After Before After
--- ------ ---- ----- -----
4 312 435 350 228
6 500 656 501 418
8 562 804 690 589
[PATCH 001 of 11] knfsd: move tempsock aging to a timer
[PATCH 002 of 11] knfsd: convert sk_inuse to atomic_t
[PATCH 003 of 11] knfsd: use new lock for svc_sock deferred list
[PATCH 004 of 11] knfsd: convert sk_reserved to atomic_t
[PATCH 005 of 11] knfsd: test and set SK_BUSY atomically
[PATCH 006 of 11] knfsd: split svc_serv into pools
[PATCH 007 of 11] knfsd: add svc_get
[PATCH 008 of 11] knfsd: add svc_set_num_threads
[PATCH 009 of 11] knfsd: use svc_set_num_threads to manage threads in knfsd
[PATCH 010 of 11] knfsd: make rpc threads pools numa aware
[PATCH 011 of 11] knfsd: allow admin to set nthreads per node
next reply other threads:[~2006-07-31 0:41 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-31 0:41 NeilBrown [this message]
2006-07-31 0:41 ` [PATCH 001 of 11] knfsd: move tempsock aging to a timer NeilBrown
2006-07-31 0:41 ` [PATCH 002 of 11] knfsd: convert sk_inuse to atomic_t NeilBrown
2006-07-31 0:41 ` [PATCH 003 of 11] knfsd: use new lock for svc_sock deferred list NeilBrown
2006-07-31 0:42 ` [PATCH 004 of 11] knfsd: convert sk_reserved to atomic_t NeilBrown
2006-07-31 0:42 ` [PATCH 005 of 11] knfsd: test and set SK_BUSY atomically NeilBrown
2006-07-31 0:42 ` [PATCH 006 of 11] knfsd: split svc_serv into pools NeilBrown
2006-07-31 0:42 ` [PATCH 007 of 11] knfsd: add svc_get NeilBrown
2006-07-31 4:05 ` Andrew Morton
2006-07-31 4:16 ` Neil Brown
2006-07-31 0:42 ` [PATCH 008 of 11] knfsd: add svc_set_num_threads NeilBrown
2006-07-31 4:11 ` Andrew Morton
2006-07-31 4:24 ` [NFS] " Neil Brown
2006-07-31 0:42 ` [PATCH 009 of 11] knfsd: use svc_set_num_threads to manage threads in knfsd NeilBrown
2006-07-31 0:42 ` [PATCH 010 of 11] knfsd: make rpc threads pools numa aware NeilBrown
2006-07-31 4:14 ` Andrew Morton
2006-07-31 4:36 ` Neil Brown
2006-07-31 4:42 ` [NFS] " Greg Banks
2006-07-31 5:54 ` Greg Banks
2006-08-01 4:43 ` Andrew Morton
2006-08-01 5:22 ` Greg Banks
2006-08-06 9:47 ` Andrew Morton
2006-08-07 3:16 ` Greg Banks
2006-08-07 11:25 ` Greg Banks
2006-07-31 0:42 ` [PATCH 011 of 11] knfsd: allow admin to set nthreads per node NeilBrown
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=20060731103458.29040.patches@notabene \
--to=neilb@suse.de \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nfs@lists.sourceforge.net \
/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