Message ID | 20240325034347.19522-1-kerneljasonxing@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | trace: use TP_STORE_ADDRS macro | expand |
On Mon, Mar 25, 2024 at 11:43 AM Jason Xing <kerneljasonxing@gmail.com> wrote: > > From: Jason Xing <kernelxing@tencent.com> > > Using the macro for other tracepoints use to be more concise. > No functional change. > > Jason Xing (3): > trace: move to TP_STORE_ADDRS related macro to net_probe_common.h > trace: use TP_STORE_ADDRS() macro in inet_sk_error_report() > trace: use TP_STORE_ADDRS() macro in inet_sock_set_state() > > include/trace/events/net_probe_common.h | 29 ++++++++++++++++++++ > include/trace/events/sock.h | 35 ++++--------------------- I just noticed that some trace files in include/trace directory (like net_probe_common.h, sock.h, skb.h, net.h, sock.h, udp.h, sctp.h, qdisc.h, neigh.h, napi.h, icmp.h, ...) are not owned by networking folks while some files (like tcp.h) have been maintained by specific maintainers/experts (like Eric) because they belong to one specific area. I wonder if we can get more networking guys involved in net tracing. I'm not sure if 1) we can put those files into the "NETWORKING [GENERAL]" category, or 2) we can create a new category to include them all. I know people start using BPF to trace them all instead, but I can see some good advantages of those hooks implemented in the kernel, say: 1) help those machines which are not easy to use BPF tools. 2) insert the tracepoint in the middle of some functions which cannot be replaced by bpf kprobe. 3) if we have enough tracepoints, we can generate a timeline to know/detect which flow/skb spends unexpected time at which point. ... We can do many things in this area, I think :) What do you think about this, Jakub, Paolo, Eric ? Thanks, Jason > include/trace/events/tcp.h | 29 -------------------- > 3 files changed, 34 insertions(+), 59 deletions(-) > > -- > 2.37.3 >
On Tue, 2024-03-26 at 12:14 +0800, Jason Xing wrote: > On Mon, Mar 25, 2024 at 11:43 AM Jason Xing <kerneljasonxing@gmail.com> wrote: > > > > From: Jason Xing <kernelxing@tencent.com> > > > > Using the macro for other tracepoints use to be more concise. > > No functional change. > > > > Jason Xing (3): > > trace: move to TP_STORE_ADDRS related macro to net_probe_common.h > > trace: use TP_STORE_ADDRS() macro in inet_sk_error_report() > > trace: use TP_STORE_ADDRS() macro in inet_sock_set_state() > > > > include/trace/events/net_probe_common.h | 29 ++++++++++++++++++++ > > include/trace/events/sock.h | 35 ++++--------------------- > > I just noticed that some trace files in include/trace directory (like > net_probe_common.h, sock.h, skb.h, net.h, sock.h, udp.h, sctp.h, > qdisc.h, neigh.h, napi.h, icmp.h, ...) are not owned by networking > folks while some files (like tcp.h) have been maintained by specific > maintainers/experts (like Eric) because they belong to one specific > area. I wonder if we can get more networking guys involved in net > tracing. > > I'm not sure if 1) we can put those files into the "NETWORKING > [GENERAL]" category, or 2) we can create a new category to include > them all. I think all the file you mentioned are not under networking because of MAINTAINER file inaccuracy, and we could move there them accordingly. > > I know people start using BPF to trace them all instead, but I can see > some good advantages of those hooks implemented in the kernel, say: > 1) help those machines which are not easy to use BPF tools. > 2) insert the tracepoint in the middle of some functions which cannot > be replaced by bpf kprobe. > 3) if we have enough tracepoints, we can generate a timeline to > know/detect which flow/skb spends unexpected time at which point. > ... > We can do many things in this area, I think :) > > What do you think about this, Jakub, Paolo, Eric ? I agree tracepoints are useful, but I think the general agreement is that they are the 'old way', we should try to avoid their proliferation. Cheers, Paolo
On Tue, Mar 26, 2024 at 6:29 PM Paolo Abeni <pabeni@redhat.com> wrote: > > On Tue, 2024-03-26 at 12:14 +0800, Jason Xing wrote: > > On Mon, Mar 25, 2024 at 11:43 AM Jason Xing <kerneljasonxing@gmail.com> wrote: > > > > > > From: Jason Xing <kernelxing@tencent.com> > > > > > > Using the macro for other tracepoints use to be more concise. > > > No functional change. > > > > > > Jason Xing (3): > > > trace: move to TP_STORE_ADDRS related macro to net_probe_common.h > > > trace: use TP_STORE_ADDRS() macro in inet_sk_error_report() > > > trace: use TP_STORE_ADDRS() macro in inet_sock_set_state() > > > > > > include/trace/events/net_probe_common.h | 29 ++++++++++++++++++++ > > > include/trace/events/sock.h | 35 ++++--------------------- > > > > I just noticed that some trace files in include/trace directory (like > > net_probe_common.h, sock.h, skb.h, net.h, sock.h, udp.h, sctp.h, > > qdisc.h, neigh.h, napi.h, icmp.h, ...) are not owned by networking > > folks while some files (like tcp.h) have been maintained by specific > > maintainers/experts (like Eric) because they belong to one specific > > area. I wonder if we can get more networking guys involved in net > > tracing. > > > > I'm not sure if 1) we can put those files into the "NETWORKING > > [GENERAL]" category, or 2) we can create a new category to include > > them all. > > I think all the file you mentioned are not under networking because of > MAINTAINER file inaccuracy, and we could move there them accordingly. Yes, they are not under the networking category currently. So how could we move them? The MAINTAINER file doesn't have all the specific categories which are suitable for each of the trace files. > > > > I know people start using BPF to trace them all instead, but I can see > > some good advantages of those hooks implemented in the kernel, say: > > 1) help those machines which are not easy to use BPF tools. > > 2) insert the tracepoint in the middle of some functions which cannot > > be replaced by bpf kprobe. > > 3) if we have enough tracepoints, we can generate a timeline to > > know/detect which flow/skb spends unexpected time at which point. > > ... > > We can do many things in this area, I think :) > > > > What do you think about this, Jakub, Paolo, Eric ? > > I agree tracepoints are useful, but I think the general agreement is > that they are the 'old way', we should try to avoid their > proliferation. Well, it's a pity that it seems that we are about to abandon this method but it's not that friendly to the users who are unable to deploy BPF... Well, I came up with more ideas about how to improve the trace function in recent days. The motivation of doing this is that I encountered some issues which could be traced/diagnosed by using trace effortlessly without writing some bpftrace codes again and again. The status of trace seems not active but many people are still using it, I believe. Thanks, Jason > > Cheers, > > Paolo >
Hello: This series was applied to netdev/net-next.git (main) by Paolo Abeni <pabeni@redhat.com>: On Mon, 25 Mar 2024 11:43:44 +0800 you wrote: > From: Jason Xing <kernelxing@tencent.com> > > Using the macro for other tracepoints use to be more concise. > No functional change. > > Jason Xing (3): > trace: move to TP_STORE_ADDRS related macro to net_probe_common.h > trace: use TP_STORE_ADDRS() macro in inet_sk_error_report() > trace: use TP_STORE_ADDRS() macro in inet_sock_set_state() > > [...] Here is the summary with links: - [net-next,1/3] trace: move to TP_STORE_ADDRS related macro to net_probe_common.h https://git.kernel.org/netdev/net-next/c/b3af9045b482 - [net-next,2/3] trace: use TP_STORE_ADDRS() macro in inet_sk_error_report() https://git.kernel.org/netdev/net-next/c/a24c855a5ef2 - [net-next,3/3] trace: use TP_STORE_ADDRS() macro in inet_sock_set_state() https://git.kernel.org/netdev/net-next/c/646700ce23f4 You are awesome, thank you!
On Tue, 2024-03-26 at 18:43 +0800, Jason Xing wrote: > On Tue, Mar 26, 2024 at 6:29 PM Paolo Abeni <pabeni@redhat.com> wrote: > > > > On Tue, 2024-03-26 at 12:14 +0800, Jason Xing wrote: > > > On Mon, Mar 25, 2024 at 11:43 AM Jason Xing <kerneljasonxing@gmail.com> wrote: > > > > > > > > From: Jason Xing <kernelxing@tencent.com> > > > > > > > > Using the macro for other tracepoints use to be more concise. > > > > No functional change. > > > > > > > > Jason Xing (3): > > > > trace: move to TP_STORE_ADDRS related macro to net_probe_common.h > > > > trace: use TP_STORE_ADDRS() macro in inet_sk_error_report() > > > > trace: use TP_STORE_ADDRS() macro in inet_sock_set_state() > > > > > > > > include/trace/events/net_probe_common.h | 29 ++++++++++++++++++++ > > > > include/trace/events/sock.h | 35 ++++--------------------- > > > > > > I just noticed that some trace files in include/trace directory (like > > > net_probe_common.h, sock.h, skb.h, net.h, sock.h, udp.h, sctp.h, > > > qdisc.h, neigh.h, napi.h, icmp.h, ...) are not owned by networking > > > folks while some files (like tcp.h) have been maintained by specific > > > maintainers/experts (like Eric) because they belong to one specific > > > area. I wonder if we can get more networking guys involved in net > > > tracing. > > > > > > I'm not sure if 1) we can put those files into the "NETWORKING > > > [GENERAL]" category, or 2) we can create a new category to include > > > them all. > > > > I think all the file you mentioned are not under networking because of > > MAINTAINER file inaccuracy, and we could move there them accordingly. > > Yes, they are not under the networking category currently. So how > could we move them? The MAINTAINER file doesn't have all the specific > categories which are suitable for each of the trace files. I think there is no need to other categories: adding the explicit 'F:' entries for such files in the NETWORKING [GENERAL] section should fit. > > > I know people start using BPF to trace them all instead, but I can see > > > some good advantages of those hooks implemented in the kernel, say: > > > 1) help those machines which are not easy to use BPF tools. > > > 2) insert the tracepoint in the middle of some functions which cannot > > > be replaced by bpf kprobe. > > > 3) if we have enough tracepoints, we can generate a timeline to > > > know/detect which flow/skb spends unexpected time at which point. > > > ... > > > We can do many things in this area, I think :) > > > > > > What do you think about this, Jakub, Paolo, Eric ? > > > > I agree tracepoints are useful, but I think the general agreement is > > that they are the 'old way', we should try to avoid their > > proliferation. > > Well, it's a pity that it seems that we are about to abandon this > method but it's not that friendly to the users who are unable to > deploy BPF... Well, I came up with more ideas about how to improve the > trace function in recent days. The motivation of doing this is that I > encountered some issues which could be traced/diagnosed by using trace > effortlessly without writing some bpftrace codes again and again. The > status of trace seems not active but many people are still using it, I > believe. I don't think we should abandon it completely. My understanding is that we should thing carefully before adding new tracepoints, and generally speaking, avoid adding 'too many' of them. Cheers, Paolo
On Tue, Mar 26, 2024 at 11:44 AM Jason Xing <kerneljasonxing@gmail.com> wrote: > Well, it's a pity that it seems that we are about to abandon this > method but it's not that friendly to the users who are unable to > deploy BPF... It is a pity these tracepoint patches are consuming a lot of reviewer time, just because some people 'can not deploy BPF' Well, I came up with more ideas about how to improve the > trace function in recent days. The motivation of doing this is that I > encountered some issues which could be traced/diagnosed by using trace > effortlessly without writing some bpftrace codes again and again. The > status of trace seems not active but many people are still using it, I > believe. 'Writing bpftrace codes again and again' is not a good reason to add maintenance costs to linux networking stack.
On Tue, Mar 26, 2024 at 9:18 PM Eric Dumazet <edumazet@google.com> wrote: > > On Tue, Mar 26, 2024 at 11:44 AM Jason Xing <kerneljasonxing@gmail.com> wrote: > > > Well, it's a pity that it seems that we are about to abandon this > > method but it's not that friendly to the users who are unable to > > deploy BPF... > > It is a pity these tracepoint patches are consuming a lot of reviewer > time, just because > some people 'can not deploy BPF' Sure, not everyone can do this easily. The phenomenon still exists and we cannot ignore it. Do you remember that about a month ago someone submitted one patch introducing a new tracepoint and then I replied to/asked you if it's necessary that we replace most of the tracepoints with BPF? Now I realise and accept the fact... I'll keep reviewing such patches and hope it can give you maintainers a break. I don't mind taking some time to do it, after all it's not a bad thing to help some people. > > Well, I came up with more ideas about how to improve the > > trace function in recent days. The motivation of doing this is that I > > encountered some issues which could be traced/diagnosed by using trace > > effortlessly without writing some bpftrace codes again and again. The > > status of trace seems not active but many people are still using it, I > > believe. > > 'Writing bpftrace codes again and again' is not a good reason to add > maintenance costs > to linux networking stack. I'm just saying :)
From: Jason Xing <kernelxing@tencent.com> Using the macro for other tracepoints use to be more concise. No functional change. Jason Xing (3): trace: move to TP_STORE_ADDRS related macro to net_probe_common.h trace: use TP_STORE_ADDRS() macro in inet_sk_error_report() trace: use TP_STORE_ADDRS() macro in inet_sock_set_state() include/trace/events/net_probe_common.h | 29 ++++++++++++++++++++ include/trace/events/sock.h | 35 ++++--------------------- include/trace/events/tcp.h | 29 -------------------- 3 files changed, 34 insertions(+), 59 deletions(-)