On Tue, Feb 5, 2019 at 1:35 AM Alexei Starovoitov <alexei.starovoi...@gmail.com> wrote: > > On Sun, Feb 03, 2019 at 04:15:07PM +0800, Yafang Shao wrote: > > Then we can enable/disable socket debugging without modifying user code. > > That is more convenient for debugging. > > > > Signed-off-by: Yafang Shao <laoar.s...@gmail.com> > > --- > > include/net/sock.h | 8 ++++++++ > > net/core/filter.c | 3 +++ > > net/core/sock.c | 8 -------- > > 3 files changed, 11 insertions(+), 8 deletions(-) > > > > diff --git a/include/net/sock.h b/include/net/sock.h > > index 2b229f7..8decee9 100644 > > --- a/include/net/sock.h > > +++ b/include/net/sock.h > > @@ -1935,6 +1935,14 @@ static inline void sock_confirm_neigh(struct sk_buff > > *skb, struct neighbour *n) > > } > > } > > > > +static inline void sock_valbool_flag(struct sock *sk, int bit, int valbool) > > +{ > > + if (valbool) > > + sock_set_flag(sk, bit); > > + else > > + sock_reset_flag(sk, bit); > > +} > > + > > bool sk_mc_loop(struct sock *sk); > > > > static inline bool sk_can_gso(const struct sock *sk) > > diff --git a/net/core/filter.c b/net/core/filter.c > > index 3a49f68..ce5da57 100644 > > --- a/net/core/filter.c > > +++ b/net/core/filter.c > > @@ -4111,6 +4111,9 @@ static unsigned long bpf_xdp_copy(void *dst_buff, > > const void *src_buff, > > > > /* Only some socketops are supported */ > > switch (optname) { > > + case SO_DEBUG: > > + sock_valbool_flag(sk, SOCK_DBG, val); > > + break; > > I'm missing the point here. > This flag has any effect only when SOCK_DEBUGGING is set. > But it is off in distros.
It's not off in distros. At least it is set in RHEL. Pls. see the comment in include/net/sock.h, /* Define this to get the SOCK_DBG debugging facility. */ #define SOCK_DEBUGGING > Since it's for custom debug kernel only why bother with > setting the flag via bpf prog? >