Revision dc59250c6ebed099a9bc0a11298e2281dd896657 authored by Chuck Lever on 18 August 2005, 18:24:12 UTC, committed by Linus Torvalds on 18 August 2005, 19:53:57 UTC
Down the road we want to eliminate the use of the global kernel lock entirely
from the NFS client.  To do this, we need to protect the fields in the
nfs_inode structure adequately.  Start by serializing updates to the
"cache_validity" field.

Note this change addresses an SMP hang found by njw@osdl.org, where processes
deadlock because nfs_end_data_update and nfs_revalidate_mapping update the
"cache_validity" field without proper serialization.

Test plan:
 Millions of fsx ops on SMP clients.  Run Nick Wilson's breaknfs program on
 large SMP clients.

Signed-off-by: Chuck Lever <cel@netapp.com>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
1 parent 412d582
Raw File
numastat.txt

Numa policy hit/miss statistics

/sys/devices/system/node/node*/numastat

All units are pages. Hugepages have separate counters.

numa_hit			A process wanted to allocate memory from this node,
					and succeeded.
numa_miss			A process wanted to allocate memory from this node,
					but ended up with memory from another.
numa_foreign		A process wanted to allocate on another node,
				    but ended up with memory from this one.
local_node			A process ran on this node and got memory from it.
other_node			A process ran on this node and got memory from another node.
interleave_hit 		Interleaving wanted to allocate from this node
					and succeeded.

For easier reading you can use the numastat utility from the numactl package
(ftp://ftp.suse.com/pub/people/ak/numa/numactl*). Note that it only works
well right now on machines with a small number of CPUs.

back to top