Messages in this thread | | | From | Yafang Shao <> | Date | Wed, 8 Nov 2017 18:48:50 +0800 | Subject | Re: [PATCH] net/tcp: track all ipv4/tcp state transition in tcp_set_state |
| |
2017-11-08 14:51 GMT+08:00 David Miller <davem@davemloft.net>: > From: Yafang Shao <laoar.shao@gmail.com> > Date: Tue, 7 Nov 2017 18:36:28 +0800 > >> When I hooked the function tcp_set_state with kprobe to track the ipv4/tcp >> state transistion, I found state transition from TCP_LISTEN to TCP_SYN_RECV >> is missed. >> >> I think it is better to use the helper to do state transition instead of >> assigning the state to sk_state directly. >> Then we can monitor the whole tcp lifespans with kprobe or ftrace easily. >> >> Signed-off-by: Yafang Shao <laoar.shao@gmail.com> > > This is really heavy handed and excessive for these cases. > > They don't have to handle any of the issues dealt with in > tcp_set_state(). > > I would prefer if you made a special helper to net/tcp.h which did: > > static inline void __tcp_set_state(struct sock *sk, int state) > { > trace_tcp_set_state(sk, sk->sk_state, state); > sk->sk_state = state; > }
Good idea! I will try to implement it.
Thanks Yafang
| |