/* * stap -g -I../tapset call_status.stp */ global transmit, ctask probe module("sunrpc").function("rpc_call_sync").return { if ($return < 0 && $return != -11) printf("rpc_call_sync: %s(%d): status %d\n", execname(), pid(), $return); } probe module("sunrpc").function("call_transmit_status") { ctask = $task; } probe module("sunrpc").function("call_transmit_status").return { terror = task_status(ctask); if (terror && terror != -11) printf("call_transmit_status:%s(%d):%s:%s: error %d (%s)\n", execname(), pid(), cl_server(ctask), cl_prog(ctask), terror, errno_str(terror)); } probe module("sunrpc").function("rpcb_getport_async") { ctask = $task; } probe module("sunrpc").function("rpcb_getport_async") { terror = task_status(ctask); /* if (terror && terror != -11) */ printf("rpcb_getport_async:%s:%s:error %d (%s)\n", cl_server(ctask), cl_prog(ctask), terror, errno_str(terror)); } probe module("sunrpc").function("call_bind") { terror = task_status($task); /* if (terror && terror != -11) */ printf("call_bind:%s(%d):%s:%s: task %p error %d (%s)\n", execname(), pid(), cl_server($task), cl_prog($task), $task, terror, errno_str(terror)); } probe module("sunrpc").function("call_status") { terror = task_status($task); if (terror && terror != -11) printf("call_status:%s(%d): %s:%s: task %p error %d (%s)\n", execname(), pid(), cl_server($task), cl_prog($task), $task, terror, errno_str(terror)); } probe module("sunrpc").function("call_bind_status") { terror = task_status($task); if (terror && terror != -11) printf("call_bind_status:%s(%d):%s:%s:error %d (%s)\n", execname(), pid(), cl_server($task), cl_prog($task), terror, errno_str(terror)); } probe module("sunrpc").function("call_connect_status") { terror = task_status($task); /* if (terror && terror != -11) */ printf("call_connect_status:%s(%d):%s:%s:error %d (%s)\n", execname(), pid(), cl_server($task), cl_prog($task), terror, errno_str(terror)); } probe module("sunrpc").function("call_bind_status") { terror = task_status($task); if (terror && terror != -11) printf("call_bind_status:%s(%d): %s:%s: error %d (%s)\n", execname(), pid(), cl_server($task), cl_prog($task), terror, errno_str(terror)); } probe module("sunrpc").function("call_transmit") { transmit = $task; terror = task_status($task); if (terror && terror != -11) printf("call_transmit:%s(%d):%s:%s: error %d (%s)\n", execname(), pid(), cl_server($task), cl_prog($task), terror, errno_str(terror)); } probe module("sunrpc").function("call_transmit").return { terror = task_status(transmit); if (terror && terror != -11) printf("call_transmit:%s:%s: error %d (%s)\n", cl_server(transmit), cl_prog(transmit), terror, errno_str(terror)); } /* probe module("sunrpc").function("xs_tcp_finish_connecting").return { if ($return) printf("xs_tcp_finish_connecting: error %d (%s)\n", $return, errno_str($return)); } */ probe begin { log("starting call_status probe") } probe end { log("ending call_status probe") }