All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/1] SUNRPC: Status trace points
@ 2012-01-23 19:54 Steve Dickson
  2012-01-23 19:54 ` [PATCH 1/1] SUNRPC: Adding status " Steve Dickson
  0 siblings, 1 reply; 7+ messages in thread
From: Steve Dickson @ 2012-01-23 19:54 UTC (permalink / raw)
  To: Linux NFS Mailing List

Here are three more trace points that add to the trace 
points Trond  posted last week. Meaning this patch is 
dependent on Trond's patch. 

They recorded the status of binds and connections which
is useful when debugging hangs and loops. I used them
injunction with the systemtap probs in the tracepoints/ 
directory of my (unsupported) systemtap git tree:
   git://fedorapeople.org/~steved/systemtap.git
(Note, the probs I used to test Trond's trace points
are also in that directory)

Steve Dickson (1):
  SUNRPC: Adding status trace points

 include/trace/events/sunrpc.h |   45 +++++++++++++++++++++++++++++++++++++++++
 net/sunrpc/clnt.c             |    4 +++
 2 files changed, 49 insertions(+), 0 deletions(-)

-- 
1.7.7.5


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

* [PATCH 1/1] SUNRPC: Adding status trace points
  2012-01-23 19:54 [PATCH 0/1] SUNRPC: Status trace points Steve Dickson
@ 2012-01-23 19:54 ` Steve Dickson
  2012-01-23 20:02   ` Chuck Lever
  2012-01-23 21:36   ` Trond Myklebust
  0 siblings, 2 replies; 7+ messages in thread
From: Steve Dickson @ 2012-01-23 19:54 UTC (permalink / raw)
  To: Linux NFS Mailing List

This patch adds three trace points to the status routines
in the sunrpc state machine.

Signed-off-by: Steve Dickson <steved@redhat.com>
---
 include/trace/events/sunrpc.h |   45 +++++++++++++++++++++++++++++++++++++++++
 net/sunrpc/clnt.c             |    4 +++
 2 files changed, 49 insertions(+), 0 deletions(-)

diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h
index 1852f11..bca5ad3 100644
--- a/include/trace/events/sunrpc.h
+++ b/include/trace/events/sunrpc.h
@@ -8,6 +8,51 @@
 #include <linux/sunrpc/clnt.h>
 #include <linux/tracepoint.h>
 
+DECLARE_EVENT_CLASS(rpc_task_status,
+
+	TP_PROTO(struct rpc_task *task),
+
+	TP_ARGS(task),
+
+	TP_STRUCT__entry(
+		__field(int, status)
+	),
+
+	TP_fast_assign(
+		__entry->status = task->tk_status;
+	),
+
+	TP_printk("status %d", __entry->status)
+);
+
+DEFINE_EVENT(rpc_task_status, rpc_call_status,
+	TP_PROTO(struct rpc_task *task), 
+
+	TP_ARGS(task)
+);
+
+DEFINE_EVENT(rpc_task_status, rpc_bind_status,
+	TP_PROTO(struct rpc_task *task), 
+
+	TP_ARGS(task)
+);
+
+TRACE_EVENT(rpc_connect_status,
+	TP_PROTO(int status),
+
+	TP_ARGS(status),
+
+	TP_STRUCT__entry(
+		__field(int, status)
+	),
+
+	TP_fast_assign(
+		__entry->status = status;
+	),
+
+	TP_printk("status=%d", __entry->status)
+);
+
 DECLARE_EVENT_CLASS(rpc_task_running,
 
 	TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index f0268ea..bbe7385 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -55,6 +55,7 @@ static DEFINE_SPINLOCK(rpc_client_lock);
 
 static DECLARE_WAIT_QUEUE_HEAD(destroy_wait);
 
+#include <trace/events/sunrpc.h>
 
 static void	call_start(struct rpc_task *task);
 static void	call_reserve(struct rpc_task *task);
@@ -1163,6 +1164,7 @@ call_bind_status(struct rpc_task *task)
 		return;
 	}
 
+	trace_rpc_bind_status(task);
 	switch (task->tk_status) {
 	case -ENOMEM:
 		dprintk("RPC: %5u rpcbind out of memory\n", task->tk_pid);
@@ -1262,6 +1264,7 @@ call_connect_status(struct rpc_task *task)
 		return;
 	}
 
+	trace_rpc_connect_status(status);
 	switch (status) {
 		/* if soft mounted, test if we've timed out */
 	case -ETIMEDOUT:
@@ -1450,6 +1453,7 @@ call_status(struct rpc_task *task)
 		return;
 	}
 
+	trace_rpc_call_status(task);
 	task->tk_status = 0;
 	switch(status) {
 	case -EHOSTDOWN:
-- 
1.7.7.5


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

* Re: [PATCH 1/1] SUNRPC: Adding status trace points
  2012-01-23 19:54 ` [PATCH 1/1] SUNRPC: Adding status " Steve Dickson
@ 2012-01-23 20:02   ` Chuck Lever
  2012-01-23 20:49     ` Steve Dickson
  2012-01-23 21:36   ` Trond Myklebust
  1 sibling, 1 reply; 7+ messages in thread
From: Chuck Lever @ 2012-01-23 20:02 UTC (permalink / raw)
  To: Steve Dickson; +Cc: Linux NFS Mailing List


On Jan 23, 2012, at 2:54 PM, Steve Dickson wrote:

> This patch adds three trace points to the status routines
> in the sunrpc state machine.
> 
> Signed-off-by: Steve Dickson <steved@redhat.com>
> ---
> include/trace/events/sunrpc.h |   45 +++++++++++++++++++++++++++++++++++++++++
> net/sunrpc/clnt.c             |    4 +++
> 2 files changed, 49 insertions(+), 0 deletions(-)
> 
> diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h
> index 1852f11..bca5ad3 100644
> --- a/include/trace/events/sunrpc.h
> +++ b/include/trace/events/sunrpc.h
> @@ -8,6 +8,51 @@
> #include <linux/sunrpc/clnt.h>
> #include <linux/tracepoint.h>
> 
> +DECLARE_EVENT_CLASS(rpc_task_status,
> +
> +	TP_PROTO(struct rpc_task *task),
> +
> +	TP_ARGS(task),
> +
> +	TP_STRUCT__entry(
> +		__field(int, status)
> +	),
> +
> +	TP_fast_assign(
> +		__entry->status = task->tk_status;
> +	),
> +
> +	TP_printk("status %d", __entry->status)
> +);
> +
> +DEFINE_EVENT(rpc_task_status, rpc_call_status,
> +	TP_PROTO(struct rpc_task *task), 
> +
> +	TP_ARGS(task)
> +);
> +
> +DEFINE_EVENT(rpc_task_status, rpc_bind_status,
> +	TP_PROTO(struct rpc_task *task), 
> +
> +	TP_ARGS(task)
> +);
> +
> +TRACE_EVENT(rpc_connect_status,
> +	TP_PROTO(int status),
> +
> +	TP_ARGS(status),
> +
> +	TP_STRUCT__entry(
> +		__field(int, status)
> +	),
> +
> +	TP_fast_assign(
> +		__entry->status = status;
> +	),
> +
> +	TP_printk("status=%d", __entry->status)
> +);
> +
> DECLARE_EVENT_CLASS(rpc_task_running,
> 
> 	TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
> diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
> index f0268ea..bbe7385 100644
> --- a/net/sunrpc/clnt.c
> +++ b/net/sunrpc/clnt.c
> @@ -55,6 +55,7 @@ static DEFINE_SPINLOCK(rpc_client_lock);
> 
> static DECLARE_WAIT_QUEUE_HEAD(destroy_wait);
> 
> +#include <trace/events/sunrpc.h>

I'd prefer that this #include be kept with the others at the head of the file, unless there is a strong reason this one needs to be inconsistent.

I'm glad a clean way was found to add trace points to the RPC client.

> static void	call_start(struct rpc_task *task);
> static void	call_reserve(struct rpc_task *task);
> @@ -1163,6 +1164,7 @@ call_bind_status(struct rpc_task *task)
> 		return;
> 	}
> 
> +	trace_rpc_bind_status(task);
> 	switch (task->tk_status) {
> 	case -ENOMEM:
> 		dprintk("RPC: %5u rpcbind out of memory\n", task->tk_pid);
> @@ -1262,6 +1264,7 @@ call_connect_status(struct rpc_task *task)
> 		return;
> 	}
> 
> +	trace_rpc_connect_status(status);

Is this trace point as useful as, say, a trace point in xprt_connect_status(), or in the transport's connect worker?  The way transport connection works today is that all of the actual work is handled while sending an RPC, and is basically hidden from the FSM.

I'd like to capture connection events, I'm just wondering if a trace point here is the best way to do it.

> 	switch (status) {
> 		/* if soft mounted, test if we've timed out */
> 	case -ETIMEDOUT:
> @@ -1450,6 +1453,7 @@ call_status(struct rpc_task *task)
> 		return;
> 	}
> 
> +	trace_rpc_call_status(task);
> 	task->tk_status = 0;
> 	switch(status) {
> 	case -EHOSTDOWN:
> -- 
> 1.7.7.5
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Chuck Lever
chuck[dot]lever[at]oracle[dot]com





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

* Re: [PATCH 1/1] SUNRPC: Adding status trace points
  2012-01-23 20:02   ` Chuck Lever
@ 2012-01-23 20:49     ` Steve Dickson
  0 siblings, 0 replies; 7+ messages in thread
From: Steve Dickson @ 2012-01-23 20:49 UTC (permalink / raw)
  To: Chuck Lever; +Cc: Linux NFS Mailing List



On 01/23/2012 03:02 PM, Chuck Lever wrote:
> 
> On Jan 23, 2012, at 2:54 PM, Steve Dickson wrote:
> 
>> This patch adds three trace points to the status routines
>> in the sunrpc state machine.
>>
>> Signed-off-by: Steve Dickson <steved@redhat.com>
>> ---
>> include/trace/events/sunrpc.h |   45 +++++++++++++++++++++++++++++++++++++++++
>> net/sunrpc/clnt.c             |    4 +++
>> 2 files changed, 49 insertions(+), 0 deletions(-)
>>
>> diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h
>> index 1852f11..bca5ad3 100644
>> --- a/include/trace/events/sunrpc.h
>> +++ b/include/trace/events/sunrpc.h
>> @@ -8,6 +8,51 @@
>> #include <linux/sunrpc/clnt.h>
>> #include <linux/tracepoint.h>
>>
>> +DECLARE_EVENT_CLASS(rpc_task_status,
>> +
>> +	TP_PROTO(struct rpc_task *task),
>> +
>> +	TP_ARGS(task),
>> +
>> +	TP_STRUCT__entry(
>> +		__field(int, status)
>> +	),
>> +
>> +	TP_fast_assign(
>> +		__entry->status = task->tk_status;
>> +	),
>> +
>> +	TP_printk("status %d", __entry->status)
>> +);
>> +
>> +DEFINE_EVENT(rpc_task_status, rpc_call_status,
>> +	TP_PROTO(struct rpc_task *task), 
>> +
>> +	TP_ARGS(task)
>> +);
>> +
>> +DEFINE_EVENT(rpc_task_status, rpc_bind_status,
>> +	TP_PROTO(struct rpc_task *task), 
>> +
>> +	TP_ARGS(task)
>> +);
>> +
>> +TRACE_EVENT(rpc_connect_status,
>> +	TP_PROTO(int status),
>> +
>> +	TP_ARGS(status),
>> +
>> +	TP_STRUCT__entry(
>> +		__field(int, status)
>> +	),
>> +
>> +	TP_fast_assign(
>> +		__entry->status = status;
>> +	),
>> +
>> +	TP_printk("status=%d", __entry->status)
>> +);
>> +
>> DECLARE_EVENT_CLASS(rpc_task_running,
>>
>> 	TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
>> diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
>> index f0268ea..bbe7385 100644
>> --- a/net/sunrpc/clnt.c
>> +++ b/net/sunrpc/clnt.c
>> @@ -55,6 +55,7 @@ static DEFINE_SPINLOCK(rpc_client_lock);
>>
>> static DECLARE_WAIT_QUEUE_HEAD(destroy_wait);
>>
>> +#include <trace/events/sunrpc.h>
> 
> I'd prefer that this #include be kept with the others at the head of the file, unless there is a strong reason this one needs to be inconsistent.
No particular reason it there... Things still compile when its moved up.
Trond, if you are inclined to accept these I'll do the repost.
 
> 
> I'm glad a clean way was found to add trace points to the RPC client.
Ditto... I wounder if it time we talking about maintaining some 
basic probs that we can point people to help them debug. Also
maybe come up with some type of strategy of how we want to
use this in the future... Should be start moving toward 
having trace point replace dprintks? 

steved. 

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

* Re: [PATCH 1/1] SUNRPC: Adding status trace points
  2012-01-23 19:54 ` [PATCH 1/1] SUNRPC: Adding status " Steve Dickson
  2012-01-23 20:02   ` Chuck Lever
@ 2012-01-23 21:36   ` Trond Myklebust
  2012-01-24 13:34     ` Steve Dickson
  1 sibling, 1 reply; 7+ messages in thread
From: Trond Myklebust @ 2012-01-23 21:36 UTC (permalink / raw)
  To: Steve Dickson; +Cc: Linux NFS Mailing List

On Mon, 2012-01-23 at 14:54 -0500, Steve Dickson wrote: 
> This patch adds three trace points to the status routines
> in the sunrpc state machine.
> 
> Signed-off-by: Steve Dickson <steved@redhat.com>
> ---
>  include/trace/events/sunrpc.h |   45 +++++++++++++++++++++++++++++++++++++++++
>  net/sunrpc/clnt.c             |    4 +++
>  2 files changed, 49 insertions(+), 0 deletions(-)
> 
> diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h
> index 1852f11..bca5ad3 100644
> --- a/include/trace/events/sunrpc.h
> +++ b/include/trace/events/sunrpc.h
> @@ -8,6 +8,51 @@
>  #include <linux/sunrpc/clnt.h>
>  #include <linux/tracepoint.h>
>  
> +DECLARE_EVENT_CLASS(rpc_task_status,
> +
> +	TP_PROTO(struct rpc_task *task),
> +
> +	TP_ARGS(task),
> +
> +	TP_STRUCT__entry(
> +		__field(int, status)
> +	),
> +
> +	TP_fast_assign(
> +		__entry->status = task->tk_status;
> +	),
> +
> +	TP_printk("status %d", __entry->status)
> +);

How do you tell which RPC task this refers to in the output? Shouldn't
we rather make the above

	TP_printk("task:%p@%p, status %d", __entry->task, __entry->clnt, __entry->status)

so that it matches the format in the previous tracepoint patch?

Also, why are you adding tracepoints for specific states in
net/sunrpc/clnt.c? Is the intention to allow the user to target specific
bugs that might be harder to spot in the output from
trace_rpc_task_run_action()?

Cheers
  Trond
-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@netapp.com
www.netapp.com


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

* Re: [PATCH 1/1] SUNRPC: Adding status trace points
  2012-01-23 21:36   ` Trond Myklebust
@ 2012-01-24 13:34     ` Steve Dickson
  2012-01-24 17:12       ` Myklebust, Trond
  0 siblings, 1 reply; 7+ messages in thread
From: Steve Dickson @ 2012-01-24 13:34 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: Linux NFS Mailing List

Hey,

On 01/23/2012 04:36 PM, Trond Myklebust wrote:
> On Mon, 2012-01-23 at 14:54 -0500, Steve Dickson wrote: 
>> This patch adds three trace points to the status routines
>> in the sunrpc state machine.
>>
>> Signed-off-by: Steve Dickson <steved@redhat.com>
>> ---
>>  include/trace/events/sunrpc.h |   45 +++++++++++++++++++++++++++++++++++++++++
>>  net/sunrpc/clnt.c             |    4 +++
>>  2 files changed, 49 insertions(+), 0 deletions(-)
>>
>> diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h
>> index 1852f11..bca5ad3 100644
>> --- a/include/trace/events/sunrpc.h
>> +++ b/include/trace/events/sunrpc.h
>> @@ -8,6 +8,51 @@
>>  #include <linux/sunrpc/clnt.h>
>>  #include <linux/tracepoint.h>
>>  
>> +DECLARE_EVENT_CLASS(rpc_task_status,
>> +
>> +	TP_PROTO(struct rpc_task *task),
>> +
>> +	TP_ARGS(task),
>> +
>> +	TP_STRUCT__entry(
>> +		__field(int, status)
>> +	),
>> +
>> +	TP_fast_assign(
>> +		__entry->status = task->tk_status;
>> +	),
>> +
>> +	TP_printk("status %d", __entry->status)
>> +);
> 
> How do you tell which RPC task this refers to in the output? 
>From the task pointer I send up to the prob. Once I have that
pointer I can grab any field out it. An example:

probe kernel.trace("rpc_call_status")
{
    terror = task_status($task);
    if (terror)
        printf("%s[%d]:call_status:%s:%s: error %d (%s)\n", 
            execname(), pid(), cl_server($task), cl_prog($task), 
            terror, errno_str(terror));
}
The home grown routine task_status($task) pulls the status out task 
structure. If there is status I will get the following output:
    mount.nfs[13368]:call_status:vf16:nfs[4]:0: error -32 (EPIPE)

The built in routine execname() and pid() supply the process name
and pid. The home grown routines, cl_server($task) and cl_prog($task)
pull out the server, protocol, and version from the task. Finally
the built in routine errno_str() is used for the errno to string 
conversion. 


> Shouldn't we rather make the above
> 
> 	TP_printk("task:%p@%p, status %d", __entry->task, __entry->clnt, __entry->status)
> 
> so that it matches the format in the previous tracepoint patch?
Sure if you want to standardizer on that type of format thats 
fine with me... but, as you do in your trace points, we should also
make the clnt point available to the prob by making it part of the
TP_ARGS(). The more data we can look at the better..

Question about TP_printk() statements? How do you uses them? Meaning
how get them to print? I've never needed or used them since I
always used probs to grab that type of info.

> 
> Also, why are you adding tracepoints for specific states in
> net/sunrpc/clnt.c? 
I was just looking for status not state. Basically to see if there is
an problem at all... 

> Is the intention to allow the user to target specific
> bugs that might be harder to spot in the output from
> trace_rpc_task_run_action()?
These were architected explicitly show if a bind was failing and why
or if a connection was failing and why. A much higher level (and 
simpler) than the info trace_rpc_task_run_action supplies.
They are more directed at admin types verses developer types.

(Note, these trace points are currently in RHEL and we have found 
them somewhat useful)

steved.

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

* RE: [PATCH 1/1] SUNRPC: Adding status trace points
  2012-01-24 13:34     ` Steve Dickson
@ 2012-01-24 17:12       ` Myklebust, Trond
  0 siblings, 0 replies; 7+ messages in thread
From: Myklebust, Trond @ 2012-01-24 17:12 UTC (permalink / raw)
  To: Steve Dickson; +Cc: Linux NFS Mailing List

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBTdGV2ZSBEaWNrc29uIFttYWls
dG86U3RldmVEQHJlZGhhdC5jb21dDQo+IFNlbnQ6IFR1ZXNkYXksIEphbnVhcnkgMjQsIDIwMTIg
NTozNCBBTQ0KPiBUbzogTXlrbGVidXN0LCBUcm9uZA0KPiBDYzogTGludXggTkZTIE1haWxpbmcg
TGlzdA0KPiBTdWJqZWN0OiBSZTogW1BBVENIIDEvMV0gU1VOUlBDOiBBZGRpbmcgc3RhdHVzIHRy
YWNlIHBvaW50cw0KPiANCj4gSGV5LA0KPiANCj4gT24gMDEvMjMvMjAxMiAwNDozNiBQTSwgVHJv
bmQgTXlrbGVidXN0IHdyb3RlOg0KPiA+IE9uIE1vbiwgMjAxMi0wMS0yMyBhdCAxNDo1NCAtMDUw
MCwgU3RldmUgRGlja3NvbiB3cm90ZToNCj4gPj4gVGhpcyBwYXRjaCBhZGRzIHRocmVlIHRyYWNl
IHBvaW50cyB0byB0aGUgc3RhdHVzIHJvdXRpbmVzIGluIHRoZQ0KPiA+PiBzdW5ycGMgc3RhdGUg
bWFjaGluZS4NCj4gPj4NCj4gPj4gU2lnbmVkLW9mZi1ieTogU3RldmUgRGlja3NvbiA8c3RldmVk
QHJlZGhhdC5jb20+DQo+ID4+IC0tLQ0KPiA+PiAgaW5jbHVkZS90cmFjZS9ldmVudHMvc3VucnBj
LmggfCAgIDQ1DQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+
ID4+ICBuZXQvc3VucnBjL2NsbnQuYyAgICAgICAgICAgICB8ICAgIDQgKysrDQo+ID4+ICAyIGZp
bGVzIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pDQo+ID4+DQo+ID4+
IGRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL2V2ZW50cy9zdW5ycGMuaA0KPiA+PiBiL2luY2x1
ZGUvdHJhY2UvZXZlbnRzL3N1bnJwYy5oIGluZGV4IDE4NTJmMTEuLmJjYTVhZDMgMTAwNjQ0DQo+
ID4+IC0tLSBhL2luY2x1ZGUvdHJhY2UvZXZlbnRzL3N1bnJwYy5oDQo+ID4+ICsrKyBiL2luY2x1
ZGUvdHJhY2UvZXZlbnRzL3N1bnJwYy5oDQo+ID4+IEBAIC04LDYgKzgsNTEgQEANCj4gPj4gICNp
bmNsdWRlIDxsaW51eC9zdW5ycGMvY2xudC5oPg0KPiA+PiAgI2luY2x1ZGUgPGxpbnV4L3RyYWNl
cG9pbnQuaD4NCj4gPj4NCj4gPj4gK0RFQ0xBUkVfRVZFTlRfQ0xBU1MocnBjX3Rhc2tfc3RhdHVz
LA0KPiA+PiArDQo+ID4+ICsJVFBfUFJPVE8oc3RydWN0IHJwY190YXNrICp0YXNrKSwNCj4gPj4g
Kw0KPiA+PiArCVRQX0FSR1ModGFzayksDQo+ID4+ICsNCj4gPj4gKwlUUF9TVFJVQ1RfX2VudHJ5
KA0KPiA+PiArCQlfX2ZpZWxkKGludCwgc3RhdHVzKQ0KPiA+PiArCSksDQo+ID4+ICsNCj4gPj4g
KwlUUF9mYXN0X2Fzc2lnbigNCj4gPj4gKwkJX19lbnRyeS0+c3RhdHVzID0gdGFzay0+dGtfc3Rh
dHVzOw0KPiA+PiArCSksDQo+ID4+ICsNCj4gPj4gKwlUUF9wcmludGsoInN0YXR1cyAlZCIsIF9f
ZW50cnktPnN0YXR1cykgKTsNCj4gPg0KPiA+IEhvdyBkbyB5b3UgdGVsbCB3aGljaCBSUEMgdGFz
ayB0aGlzIHJlZmVycyB0byBpbiB0aGUgb3V0cHV0Pw0KPiA+RnJvbSB0aGUgdGFzayBwb2ludGVy
IEkgc2VuZCB1cCB0byB0aGUgcHJvYi4gT25jZSBJIGhhdmUgdGhhdA0KPiBwb2ludGVyIEkgY2Fu
IGdyYWIgYW55IGZpZWxkIG91dCBpdC4gQW4gZXhhbXBsZToNCj4gDQo+IHByb2JlIGtlcm5lbC50
cmFjZSgicnBjX2NhbGxfc3RhdHVzIikNCj4gew0KPiAgICAgdGVycm9yID0gdGFza19zdGF0dXMo
JHRhc2spOw0KPiAgICAgaWYgKHRlcnJvcikNCj4gICAgICAgICBwcmludGYoIiVzWyVkXTpjYWxs
X3N0YXR1czolczolczogZXJyb3IgJWQgKCVzKVxuIiwNCj4gICAgICAgICAgICAgZXhlY25hbWUo
KSwgcGlkKCksIGNsX3NlcnZlcigkdGFzayksIGNsX3Byb2coJHRhc2spLA0KPiAgICAgICAgICAg
ICB0ZXJyb3IsIGVycm5vX3N0cih0ZXJyb3IpKTsNCj4gfQ0KPiBUaGUgaG9tZSBncm93biByb3V0
aW5lIHRhc2tfc3RhdHVzKCR0YXNrKSBwdWxscyB0aGUgc3RhdHVzIG91dCB0YXNrDQo+IHN0cnVj
dHVyZS4gSWYgdGhlcmUgaXMgc3RhdHVzIEkgd2lsbCBnZXQgdGhlIGZvbGxvd2luZyBvdXRwdXQ6
DQo+ICAgICBtb3VudC5uZnNbMTMzNjhdOmNhbGxfc3RhdHVzOnZmMTY6bmZzWzRdOjA6IGVycm9y
IC0zMiAoRVBJUEUpDQo+IA0KPiBUaGUgYnVpbHQgaW4gcm91dGluZSBleGVjbmFtZSgpIGFuZCBw
aWQoKSBzdXBwbHkgdGhlIHByb2Nlc3MgbmFtZSBhbmQgcGlkLg0KPiBUaGUgaG9tZSBncm93biBy
b3V0aW5lcywgY2xfc2VydmVyKCR0YXNrKSBhbmQgY2xfcHJvZygkdGFzaykgcHVsbCBvdXQgdGhl
DQo+IHNlcnZlciwgcHJvdG9jb2wsIGFuZCB2ZXJzaW9uIGZyb20gdGhlIHRhc2suIEZpbmFsbHkg
dGhlIGJ1aWx0IGluIHJvdXRpbmUNCj4gZXJybm9fc3RyKCkgaXMgdXNlZCBmb3IgdGhlIGVycm5v
IHRvIHN0cmluZyBjb252ZXJzaW9uLg0KPiANCj4gDQo+ID4gU2hvdWxkbid0IHdlIHJhdGhlciBt
YWtlIHRoZSBhYm92ZQ0KPiA+DQo+ID4gCVRQX3ByaW50aygidGFzazolcEAlcCwgc3RhdHVzICVk
IiwgX19lbnRyeS0+dGFzaywgX19lbnRyeS0+Y2xudCwNCj4gX19lbnRyeS0+c3RhdHVzKQ0KPiA+
DQo+ID4gc28gdGhhdCBpdCBtYXRjaGVzIHRoZSBmb3JtYXQgaW4gdGhlIHByZXZpb3VzIHRyYWNl
cG9pbnQgcGF0Y2g/DQo+IFN1cmUgaWYgeW91IHdhbnQgdG8gc3RhbmRhcmRpemVyIG9uIHRoYXQg
dHlwZSBvZiBmb3JtYXQgdGhhdHMNCj4gZmluZSB3aXRoIG1lLi4uIGJ1dCwgYXMgeW91IGRvIGlu
IHlvdXIgdHJhY2UgcG9pbnRzLCB3ZSBzaG91bGQgYWxzbw0KPiBtYWtlIHRoZSBjbG50IHBvaW50
IGF2YWlsYWJsZSB0byB0aGUgcHJvYiBieSBtYWtpbmcgaXQgcGFydCBvZiB0aGUNCj4gVFBfQVJH
UygpLiBUaGUgbW9yZSBkYXRhIHdlIGNhbiBsb29rIGF0IHRoZSBiZXR0ZXIuLg0KPiANCj4gUXVl
c3Rpb24gYWJvdXQgVFBfcHJpbnRrKCkgc3RhdGVtZW50cz8gSG93IGRvIHlvdSB1c2VzIHRoZW0/
IE1lYW5pbmcNCj4gaG93IGdldCB0aGVtIHRvIHByaW50PyBJJ3ZlIG5ldmVyIG5lZWRlZCBvciB1
c2VkIHRoZW0gc2luY2UgSQ0KPiBhbHdheXMgdXNlZCBwcm9icyB0byBncmFiIHRoYXQgdHlwZSBv
ZiBpbmZvLg0KDQoNClRoZXJlIGFyZSAyIGRpZmZlcmVudCBpbnRlcmZhY2VzIGluIC9zeXMva2Vy
bmVsL2RlYnVnL3RyYWNpbmcgdGhhdCB5b3UgY2FuIHVzZSB0byB0dXJuIHRoZSB0cmFjaW5nIG9u
IGFuZCBvZmYuIFNlZSB0aGUgZGVzY3JpcHRpb24gaW4gRG9jdW1lbnRhdGlvbi90cmFjZS9ldmVu
dHMudHh0DQoNCg0KPiA+IEFsc28sIHdoeSBhcmUgeW91IGFkZGluZyB0cmFjZXBvaW50cyBmb3Ig
c3BlY2lmaWMgc3RhdGVzIGluDQo+ID4gbmV0L3N1bnJwYy9jbG50LmM/DQo+IEkgd2FzIGp1c3Qg
bG9va2luZyBmb3Igc3RhdHVzIG5vdCBzdGF0ZS4gQmFzaWNhbGx5IHRvIHNlZSBpZiB0aGVyZSBp
cw0KPiBhbiBwcm9ibGVtIGF0IGFsbC4uLg0KPiANCj4gPiBJcyB0aGUgaW50ZW50aW9uIHRvIGFs
bG93IHRoZSB1c2VyIHRvIHRhcmdldCBzcGVjaWZpYw0KPiA+IGJ1Z3MgdGhhdCBtaWdodCBiZSBo
YXJkZXIgdG8gc3BvdCBpbiB0aGUgb3V0cHV0IGZyb20NCj4gPiB0cmFjZV9ycGNfdGFza19ydW5f
YWN0aW9uKCk/DQo+IFRoZXNlIHdlcmUgYXJjaGl0ZWN0ZWQgZXhwbGljaXRseSBzaG93IGlmIGEg
YmluZCB3YXMgZmFpbGluZyBhbmQgd2h5DQo+IG9yIGlmIGEgY29ubmVjdGlvbiB3YXMgZmFpbGlu
ZyBhbmQgd2h5LiBBIG11Y2ggaGlnaGVyIGxldmVsIChhbmQNCj4gc2ltcGxlcikgdGhhbiB0aGUg
aW5mbyB0cmFjZV9ycGNfdGFza19ydW5fYWN0aW9uIHN1cHBsaWVzLg0KPiBUaGV5IGFyZSBtb3Jl
IGRpcmVjdGVkIGF0IGFkbWluIHR5cGVzIHZlcnNlcyBkZXZlbG9wZXIgdHlwZXMuDQoNCk9LLiBD
YW4geW91IGFkZCB0aGF0IGluZm9ybWF0aW9uIHRvIHRoZSBjaGFuZ2Vsb2c/IFdlIG1pZ2h0IGFs
c28gY29uc2lkZXIgbWFpbnRhaW5pbmcgYSBkb2N1bWVudCBpbiBEb2N1bWVudHMvZmlsZXN5c3Rl
bXMvbmZzIHRoYXQgcHJvdmlkZXMgYmFzaWMgaW5mb3JtYXRpb24gb24gd2hpY2ggdHJhY2Vwb2lu
dHMgd2UgY29uc2lkZXIgdG8gYmUgJ2FkbWluIGRlYnVnZ2luZycgYWlkcywgYW5kIGhvdyB0aGV5
IG1heSBiZSB1c2VkLg0KDQo=

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

end of thread, other threads:[~2012-01-24 17:12 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-23 19:54 [PATCH 0/1] SUNRPC: Status trace points Steve Dickson
2012-01-23 19:54 ` [PATCH 1/1] SUNRPC: Adding status " Steve Dickson
2012-01-23 20:02   ` Chuck Lever
2012-01-23 20:49     ` Steve Dickson
2012-01-23 21:36   ` Trond Myklebust
2012-01-24 13:34     ` Steve Dickson
2012-01-24 17:12       ` Myklebust, Trond

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.