Files
kernel-tenderloin-3.0/include/linux
Greg Banks 36bdfc8bae [PATCH] knfsd: move tempsock aging to a timer
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

This patch:

Move the aging of RPC/TCP connection sockets from the main svc_recv() loop to
a timer which uses a mark-and-sweep algorithm every 6 minutes.  This reduces
the amount of work that needs to be done in the main RPC loop and the length
of time we need to hold the (effectively global) svc_serv->sv_lock.

[akpm@osdl.org: cleanup]
Signed-off-by: Greg Banks <gnb@melbourne.sgi.com>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-10-02 07:57:19 -07:00
..
2006-09-26 17:40:24 -04:00
2006-10-01 00:39:29 -07:00
2006-10-01 00:39:29 -07:00
2006-08-31 00:02:15 -04:00
2006-09-28 17:53:58 -07:00
2006-09-22 23:24:30 -04:00
2006-06-26 09:58:36 -07:00
2006-07-03 19:44:51 -07:00
2006-09-26 08:48:54 -07:00
2006-09-22 15:18:47 -07:00
2006-06-25 10:01:19 -07:00
2006-07-28 21:02:00 -07:00
2006-10-02 07:57:12 -07:00
2006-07-03 15:27:03 -07:00
2006-09-26 17:40:24 -04:00
2006-09-26 15:38:52 -07:00
2006-09-28 18:02:18 -07:00
2006-09-28 18:02:13 -07:00
2006-09-28 18:02:02 -07:00
2006-09-28 18:02:31 -07:00
2006-09-28 18:02:29 -07:00
2006-07-03 15:27:03 -07:00
2006-08-21 10:02:50 +02:00
2006-09-28 17:54:01 -07:00
2006-09-28 18:02:30 -07:00
2006-07-03 15:27:00 -07:00
2006-09-26 08:48:47 -07:00
2006-10-01 00:39:18 -07:00
2006-09-28 18:02:22 -07:00
2006-09-29 09:18:12 -07:00
2006-10-01 00:39:19 -07:00
2006-06-25 10:01:13 -07:00
2006-09-22 14:54:20 -07:00
2006-09-28 18:02:58 -07:00
2006-08-27 11:01:32 -07:00
2006-09-26 08:48:48 -07:00
2006-06-25 10:01:09 -07:00
2006-10-01 00:39:17 -07:00
2006-08-19 17:44:31 -04:00
2006-10-02 07:57:15 -07:00
2006-06-28 15:54:27 -07:00
2006-09-25 21:08:37 -07:00
2006-07-03 19:48:25 -07:00
2006-10-02 07:57:15 -07:00
2006-06-25 10:01:06 -07:00
2006-06-25 10:01:06 -07:00
2006-09-26 08:49:04 -07:00
2006-09-26 08:48:44 -07:00
2006-06-25 10:01:14 -07:00
2006-09-29 09:18:11 -07:00
2006-10-01 00:39:18 -07:00
2006-10-01 00:39:19 -07:00
2006-09-26 08:48:58 -07:00
2006-09-28 17:53:59 -07:00
2006-10-01 00:39:18 -07:00
2006-09-27 08:26:20 -07:00
2006-09-28 18:02:16 -07:00
2006-10-01 00:39:34 -07:00
2006-10-01 00:39:19 -07:00
2006-09-29 09:18:13 -07:00
2006-07-10 13:24:25 -07:00
2006-09-25 16:52:14 -04:00