From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: [PATCH v3 net-next] net/tcp: trace all TCP/IP state transition with tcp_set_state tracepoint Date: Tue, 05 Dec 2017 15:11:59 -0500 (EST) Message-ID: <20171205.151159.1781485937410298333.davem@davemloft.net> References: <1512483162-5557-1-git-send-email-laoar.shao@gmail.com> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: songliubraving@fb.com, marcelo.leitner@gmail.com, kuznet@ms2.inr.ac.ru, yoshfuji@linux-ipv6.org, rostedt@goodmis.org, bgregg@netflix.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org To: laoar.shao@gmail.com Return-path: In-Reply-To: <1512483162-5557-1-git-send-email-laoar.shao@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org From: Yafang Shao Date: Tue, 5 Dec 2017 14:12:42 +0000 > } > > +/* For tcp_set_state tracepoint */ > +void sk_state_store(struct sock *sk, int newstate); > + > void sock_enable_timestamp(struct sock *sk, int flag); > int sock_get_timestamp(struct sock *, struct timeval __user *); > int sock_get_timestampns(struct sock *, struct timespec __user *); ... > --- a/net/ipv4/tcp.c > +++ b/net/ipv4/tcp.c > @@ -2036,6 +2036,18 @@ int tcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int nonblock, > } > EXPORT_SYMBOL(tcp_recvmsg); > > +void sk_state_store(struct sock *sk, int newstate) > +{ > + trace_tcp_set_state(sk, sk->sk_state, newstate); > + __sk_state_store(sk, newstate); > +} > + Please do not define a sock generic function in the TCP protocol code. If it belongs in TCP and is only used by TCP, give is a tcp specific name prefix rather than a generic sk_ one. This is even more ugly because I see that inet_connection_sock.c and inet_hashtables.c uses this thing too. Which means that DCCP sockets will trigger this tracepoint. inet_connection_sock.c and inet_hashtables.c are not guaranteed to operate on only TCP sockets, and you must make amends to handle that properly. Thanks.