What Linux's RPC queue dump means, sort of
Since I went digging through the kernel source code yesterday, here is the meaning of the fields
in the RPC queue dump that you get any time you write to
/proc/sys/sunrpc/rpc_debug
.
As far as I've been able to work out, the useful fields are:
-pid- |
An internal RPC sequence number; it has nothing to do with process PIDs, despite the name. |
proc |
The RPC procedure number being invoked, in decimal;
you can find which NFS action is which number from
places like include/linux/nfs3.h in the Linux
kernel source. |
flgs |
The RPC flags in hex; see include/linux/sunrpc/sched.h
for the values. |
status |
Either 0 or a (negated) errno if the task has hit an
error. |
-client- |
An opaque identifier for the client (literally, the pointer to the RPC client structure in the kernel). |
-prog- |
What RPC facility is being invoked, in decimal; NFS
is RPC 'program' 100003. You can find out the program
numbers most easily with rpcinfo -p . |
-timeout |
The timeout, in jiffies. |
-rpcwait |
What the task is waiting for, if anything. |
(The --rqstp-
, -action-
, and --exit--
fields are better off
ignored if you are not debugging the kernel; they are pointers to
internal kernel structures. About all you can do with them is see which
tasks have the same one.)
Unfortunately, there is no way to map from a particular RPC request to
the processes that are waiting on it; the -pid-
field is mostly useful
for matching things up with any other debugging messages that you have
the RPC system produce.
|
|