Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753496AbbDGQ6t (ORCPT ); Tue, 7 Apr 2015 12:58:49 -0400 Received: from mail-vn0-f42.google.com ([209.85.216.42]:44537 "EHLO mail-vn0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752643AbbDGQ6r (ORCPT ); Tue, 7 Apr 2015 12:58:47 -0400 MIME-Version: 1.0 In-Reply-To: <20150407124037.03675a2d@gandalf.local.home> References: <20150403013802.220157513@goodmis.org> <20150403014125.374549383@goodmis.org> <20150407124037.03675a2d@gandalf.local.home> Date: Tue, 7 Apr 2015 12:58:46 -0400 Message-ID: Subject: Re: [PATCH 15/18 v3] SUNRPC: Export enums in tracepoints to user space From: Trond Myklebust To: Steven Rostedt Cc: Linux Kernel Mailing List , Ingo Molnar , Andrew Morton , Arnaldo Carvalho de Melo , Namhyung Kim , Masami Hiramatsu , Mathieu Desnoyers Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4245 Lines: 118 Hi Steve, On Tue, Apr 7, 2015 at 12:40 PM, Steven Rostedt wrote: > > Trond, > > I had your old email that I Cc'd this patch to. I updated this in my > git repo for your current email (if this is your current email). Thanks! Yes the trond.myklebust@primarydata.com address is the correct one. > -- Steve > > > On Thu, 02 Apr 2015 21:38:17 -0400 > Steven Rostedt wrote: > >> From: "Steven Rostedt (Red Hat)" >> >> The enums used in the tracepoints for __print_symbolic() have their >> names shown in the tracepoint format files. User space tools do not know >> how to convert those names into their values to be able to convert the >> binary data. >> >> Use TRACE_DEFINE_ENUM() to export the enum names to their values for >> userspace to do the parsing correctly. >> >> Cc: Trond Myklebust >> Signed-off-by: Steven Rostedt Acked-by: Trond Myklebust >> --- >> include/trace/events/sunrpc.h | 62 ++++++++++++++++++++++++++++++------------- >> 1 file changed, 44 insertions(+), 18 deletions(-) >> >> diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h >> index b9c1dc6c825a..fd1a02cb3c82 100644 >> --- a/include/trace/events/sunrpc.h >> +++ b/include/trace/events/sunrpc.h >> @@ -179,27 +179,53 @@ DEFINE_EVENT(rpc_task_queued, rpc_task_wakeup, >> >> ); >> >> +/* >> + * First define the enums in the below macros to be exported to userspace >> + * via TRACE_DEFINE_ENUM(). >> + */ >> +#undef EM >> +#undef EMe >> +#define EM(a, b) TRACE_DEFINE_ENUM(a); >> +#define EMe(a, b) TRACE_DEFINE_ENUM(a); >> + >> +#define RPC_SHOW_SOCKET \ >> + EM( SS_FREE, "FREE" ) \ >> + EM( SS_UNCONNECTED, "UNCONNECTED" ) \ >> + EM( SS_CONNECTING, "CONNECTING," ) \ >> + EM( SS_CONNECTED, "CONNECTED," ) \ >> + EMe(SS_DISCONNECTING, "DISCONNECTING" ) >> + >> #define rpc_show_socket_state(state) \ >> - __print_symbolic(state, \ >> - { SS_FREE, "FREE" }, \ >> - { SS_UNCONNECTED, "UNCONNECTED" }, \ >> - { SS_CONNECTING, "CONNECTING," }, \ >> - { SS_CONNECTED, "CONNECTED," }, \ >> - { SS_DISCONNECTING, "DISCONNECTING" }) >> + __print_symbolic(state, RPC_SHOW_SOCKET) >> + >> +RPC_SHOW_SOCKET >> + >> +#define RPC_SHOW_SOCK \ >> + EM( TCP_ESTABLISHED, "ESTABLISHED" ) \ >> + EM( TCP_SYN_SENT, "SYN_SENT" ) \ >> + EM( TCP_SYN_RECV, "SYN_RECV" ) \ >> + EM( TCP_FIN_WAIT1, "FIN_WAIT1" ) \ >> + EM( TCP_FIN_WAIT2, "FIN_WAIT2" ) \ >> + EM( TCP_TIME_WAIT, "TIME_WAIT" ) \ >> + EM( TCP_CLOSE, "CLOSE" ) \ >> + EM( TCP_CLOSE_WAIT, "CLOSE_WAIT" ) \ >> + EM( TCP_LAST_ACK, "LAST_ACK" ) \ >> + EM( TCP_LISTEN, "LISTEN" ) \ >> + EMe( TCP_CLOSING, "CLOSING" ) >> >> #define rpc_show_sock_state(state) \ >> - __print_symbolic(state, \ >> - { TCP_ESTABLISHED, "ESTABLISHED" }, \ >> - { TCP_SYN_SENT, "SYN_SENT" }, \ >> - { TCP_SYN_RECV, "SYN_RECV" }, \ >> - { TCP_FIN_WAIT1, "FIN_WAIT1" }, \ >> - { TCP_FIN_WAIT2, "FIN_WAIT2" }, \ >> - { TCP_TIME_WAIT, "TIME_WAIT" }, \ >> - { TCP_CLOSE, "CLOSE" }, \ >> - { TCP_CLOSE_WAIT, "CLOSE_WAIT" }, \ >> - { TCP_LAST_ACK, "LAST_ACK" }, \ >> - { TCP_LISTEN, "LISTEN" }, \ >> - { TCP_CLOSING, "CLOSING" }) >> + __print_symbolic(state, RPC_SHOW_SOCK) >> + >> +RPC_SHOW_SOCK >> + >> +/* >> + * Now redefine the EM() and EMe() macros to map the enums to the strings >> + * that will be printed in the output. >> + */ >> +#undef EM >> +#undef EMe >> +#define EM(a, b) {a, b}, >> +#define EMe(a, b) {a, b} >> >> DECLARE_EVENT_CLASS(xs_socket_event, >> > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/