Re: [PATCH] tcp: Export to userspace the TCP state names for the trace events

From: Song Liu
Date: Fri Nov 10 2017 - 12:37:24 EST



> On Nov 10, 2017, at 7:07 AM, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
> On Fri, 10 Nov 2017 12:56:06 +0800
> Yafang Shao <laoar.shao@xxxxxxxxx> wrote:
>
>> Could the macro tcp_state_name() be renamed ï
>> If <trace/events/tcp.h> is included in include/net/tcp.h, it will
>
> Ideally, you don't want to include trace/events/*.h headers in other
> headers, as they can have side effects if those headers are included in
> other trace/events/*.h headers.
>
>> cause compile error, because there's another function tcp_state_name()
>> defined in net/netfilter/ipvs/ip_vs_proto_tcp.c.
>> static const char * tcp_state_name(int state)
>> {
>>
>> if (state >= IP_VS_TCP_S_LAST)
>>
>> return "ERR!";
>>
>> return tcp_state_name_table[state] ? tcp_state_name_table[state] : "?";
>>
>> }
>
> But that said, I didn't make up the trace_state_name(), it was already
> there in net-next before this patch.
>
> But yeah, in actuality, I would have just done:
>
> #define EM(a) { a, #a },
> #define EMe(a) { a, #a }
>
> directly. Which we can still do.
>
> -- Steve
>

How about we undef tcp_state_name and tcp_event_names at the end of
include/trace/events/tcp.h?

Thanks,
Song