From e9d99fceab4fb49f8e8073efa856624ca23e9d5f Mon Sep 17 00:00:00 2001 From: "Mohamed S. Mahmoud" <mmahmoud@redhat.com> Date: Thu, 15 Feb 2024 08:03:53 -0500 Subject: [PATCH] NETOBSERV-1507: some arch still missing fentry hook types this PR fallback to kprobe (#265) Signed-off-by: Mohamed Mahmoud <mmahmoud@redhat.com> --- bpf/rtt_tracker.h | 8 ++++++++ pkg/ebpf/bpf_arm64_bpfel.go | 3 +++ pkg/ebpf/bpf_arm64_bpfel.o | Bin 221536 -> 222784 bytes pkg/ebpf/bpf_powerpc_bpfel.go | 3 +++ pkg/ebpf/bpf_powerpc_bpfel.o | Bin 213464 -> 214680 bytes pkg/ebpf/bpf_s390_bpfeb.go | 3 +++ pkg/ebpf/bpf_s390_bpfeb.o | Bin 218336 -> 219584 bytes pkg/ebpf/bpf_x86_bpfel.go | 3 +++ pkg/ebpf/bpf_x86_bpfel.o | Bin 225888 -> 227088 bytes pkg/ebpf/tracer.go | 18 ++++++++++++++++-- 10 files changed, 36 insertions(+), 2 deletions(-) diff --git a/bpf/rtt_tracker.h b/bpf/rtt_tracker.h index 4d62e98d..1176a520 100644 --- a/bpf/rtt_tracker.h +++ b/bpf/rtt_tracker.h @@ -157,4 +157,12 @@ int BPF_PROG(tcp_rcv_fentry, struct sock *sk, struct sk_buff *skb) { return calculate_flow_rtt_tcp(sk, skb); } +SEC("kprobe/tcp_rcv_established") +int BPF_KPROBE(tcp_rcv_kprobe, struct sock *sk, struct sk_buff *skb) { + if (sk == NULL || skb == NULL) { + return 0; + } + return calculate_flow_rtt_tcp(sk, skb); +} + #endif /* __RTT_TRACKER_H__ */ diff --git a/pkg/ebpf/bpf_arm64_bpfel.go b/pkg/ebpf/bpf_arm64_bpfel.go index bc204c62..ad33b0b5 100644 --- a/pkg/ebpf/bpf_arm64_bpfel.go +++ b/pkg/ebpf/bpf_arm64_bpfel.go @@ -120,6 +120,7 @@ type BpfProgramSpecs struct { IngressPcaParse *ebpf.ProgramSpec `ebpf:"ingress_pca_parse"` KfreeSkb *ebpf.ProgramSpec `ebpf:"kfree_skb"` TcpRcvFentry *ebpf.ProgramSpec `ebpf:"tcp_rcv_fentry"` + TcpRcvKprobe *ebpf.ProgramSpec `ebpf:"tcp_rcv_kprobe"` } // BpfMapSpecs contains maps before they are loaded into the kernel. @@ -176,6 +177,7 @@ type BpfPrograms struct { IngressPcaParse *ebpf.Program `ebpf:"ingress_pca_parse"` KfreeSkb *ebpf.Program `ebpf:"kfree_skb"` TcpRcvFentry *ebpf.Program `ebpf:"tcp_rcv_fentry"` + TcpRcvKprobe *ebpf.Program `ebpf:"tcp_rcv_kprobe"` } func (p *BpfPrograms) Close() error { @@ -186,6 +188,7 @@ func (p *BpfPrograms) Close() error { p.IngressPcaParse, p.KfreeSkb, p.TcpRcvFentry, + p.TcpRcvKprobe, ) } diff --git a/pkg/ebpf/bpf_arm64_bpfel.o b/pkg/ebpf/bpf_arm64_bpfel.o index da101f9d91d3b84b8a21527cf72452c3cda95ce6..546a70ad9e4f9fe66dff15ab54a6e344c73a246d 100644 GIT binary patch delta 29508 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 Ify@Ij0gMC}tpET3 delta 28527 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 O0Ua#|GXpw($N&J87Uv%T diff --git a/pkg/ebpf/bpf_powerpc_bpfel.go b/pkg/ebpf/bpf_powerpc_bpfel.go index e074d6d8..bacd97f2 100644 --- a/pkg/ebpf/bpf_powerpc_bpfel.go +++ b/pkg/ebpf/bpf_powerpc_bpfel.go @@ -120,6 +120,7 @@ type BpfProgramSpecs struct { IngressPcaParse *ebpf.ProgramSpec `ebpf:"ingress_pca_parse"` KfreeSkb *ebpf.ProgramSpec `ebpf:"kfree_skb"` TcpRcvFentry *ebpf.ProgramSpec `ebpf:"tcp_rcv_fentry"` + TcpRcvKprobe *ebpf.ProgramSpec `ebpf:"tcp_rcv_kprobe"` } // BpfMapSpecs contains maps before they are loaded into the kernel. @@ -176,6 +177,7 @@ type BpfPrograms struct { IngressPcaParse *ebpf.Program `ebpf:"ingress_pca_parse"` KfreeSkb *ebpf.Program `ebpf:"kfree_skb"` TcpRcvFentry *ebpf.Program `ebpf:"tcp_rcv_fentry"` + TcpRcvKprobe *ebpf.Program `ebpf:"tcp_rcv_kprobe"` } func (p *BpfPrograms) Close() error { @@ -186,6 +188,7 @@ func (p *BpfPrograms) Close() error { p.IngressPcaParse, p.KfreeSkb, p.TcpRcvFentry, + p.TcpRcvKprobe, ) } diff --git a/pkg/ebpf/bpf_powerpc_bpfel.o b/pkg/ebpf/bpf_powerpc_bpfel.o index 1b33de675a1c5da94f1fe3acd27479ada68298be..515122a49ce0d1444ce7b70300199fb0f6b9f292 100644 GIT binary patch delta 30111 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 delta 29045 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 diff --git a/pkg/ebpf/bpf_s390_bpfeb.go b/pkg/ebpf/bpf_s390_bpfeb.go index f129c345..a4b5e44f 100644 --- a/pkg/ebpf/bpf_s390_bpfeb.go +++ b/pkg/ebpf/bpf_s390_bpfeb.go @@ -120,6 +120,7 @@ type BpfProgramSpecs struct { IngressPcaParse *ebpf.ProgramSpec `ebpf:"ingress_pca_parse"` KfreeSkb *ebpf.ProgramSpec `ebpf:"kfree_skb"` TcpRcvFentry *ebpf.ProgramSpec `ebpf:"tcp_rcv_fentry"` + TcpRcvKprobe *ebpf.ProgramSpec `ebpf:"tcp_rcv_kprobe"` } // BpfMapSpecs contains maps before they are loaded into the kernel. @@ -176,6 +177,7 @@ type BpfPrograms struct { IngressPcaParse *ebpf.Program `ebpf:"ingress_pca_parse"` KfreeSkb *ebpf.Program `ebpf:"kfree_skb"` TcpRcvFentry *ebpf.Program `ebpf:"tcp_rcv_fentry"` + TcpRcvKprobe *ebpf.Program `ebpf:"tcp_rcv_kprobe"` } func (p *BpfPrograms) Close() error { @@ -186,6 +188,7 @@ func (p *BpfPrograms) Close() error { p.IngressPcaParse, p.KfreeSkb, p.TcpRcvFentry, + p.TcpRcvKprobe, ) } diff --git a/pkg/ebpf/bpf_s390_bpfeb.o b/pkg/ebpf/bpf_s390_bpfeb.o index f1d6c7fbf11dbfd8b71ee356c8a76c6110103870..84587efd93cd62351a7838f6b2ccb5bc7703fa6e 100644 GIT binary patch delta 30570 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 delta 29496 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 diff --git a/pkg/ebpf/bpf_x86_bpfel.go b/pkg/ebpf/bpf_x86_bpfel.go index 5b398547..a0612565 100644 --- a/pkg/ebpf/bpf_x86_bpfel.go +++ b/pkg/ebpf/bpf_x86_bpfel.go @@ -120,6 +120,7 @@ type BpfProgramSpecs struct { IngressPcaParse *ebpf.ProgramSpec `ebpf:"ingress_pca_parse"` KfreeSkb *ebpf.ProgramSpec `ebpf:"kfree_skb"` TcpRcvFentry *ebpf.ProgramSpec `ebpf:"tcp_rcv_fentry"` + TcpRcvKprobe *ebpf.ProgramSpec `ebpf:"tcp_rcv_kprobe"` } // BpfMapSpecs contains maps before they are loaded into the kernel. @@ -176,6 +177,7 @@ type BpfPrograms struct { IngressPcaParse *ebpf.Program `ebpf:"ingress_pca_parse"` KfreeSkb *ebpf.Program `ebpf:"kfree_skb"` TcpRcvFentry *ebpf.Program `ebpf:"tcp_rcv_fentry"` + TcpRcvKprobe *ebpf.Program `ebpf:"tcp_rcv_kprobe"` } func (p *BpfPrograms) Close() error { @@ -186,6 +188,7 @@ func (p *BpfPrograms) Close() error { p.IngressPcaParse, p.KfreeSkb, p.TcpRcvFentry, + p.TcpRcvKprobe, ) } diff --git a/pkg/ebpf/bpf_x86_bpfel.o b/pkg/ebpf/bpf_x86_bpfel.o index 9ebe3a2b72cf126d8bf508946ffde6bb9c9a2379..2929682616484946758b1d783165204cc84e8be2 100644 GIT binary patch delta 29568 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 V<OH<;4)R(w^sq;e$3O;xXaHo`Am9K1 delta 28793 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 diff --git a/pkg/ebpf/tracer.go b/pkg/ebpf/tracer.go index 7a4c4419..7cdb4b57 100644 --- a/pkg/ebpf/tracer.go +++ b/pkg/ebpf/tracer.go @@ -62,6 +62,7 @@ type FlowFetcher struct { enableEgress bool pktDropsTracePoint link.Link rttFentryLink link.Link + rttKprobeLink link.Link } type FlowFetcherConfig struct { @@ -141,13 +142,18 @@ func NewFlowFetcher(cfg *FlowFetcherConfig) (*FlowFetcher, error) { } } - var rttFentryLink link.Link + var rttFentryLink, rttKprobeLink link.Link if cfg.EnableRTT { rttFentryLink, err = link.AttachTracing(link.TracingOptions{ Program: objects.BpfPrograms.TcpRcvFentry, }) if err != nil { - return nil, fmt.Errorf("failed to attach the BPF program to tcpReceiveFentry: %w", err) + log.Warningf("failed to attach the BPF program to tcpReceiveFentry: %v fallback to use kprobe", err) + // try to use kprobe for older kernels + rttKprobeLink, err = link.Kprobe("tcp_rcv_established", objects.TcpRcvKprobe, nil) + if err != nil { + return nil, fmt.Errorf("failed to attach the BPF program to tcpReceiveKprobe: %w", err) + } } } @@ -167,6 +173,7 @@ func NewFlowFetcher(cfg *FlowFetcherConfig) (*FlowFetcher, error) { enableEgress: cfg.EnableEgress, pktDropsTracePoint: pktDropsLink, rttFentryLink: rttFentryLink, + rttKprobeLink: rttKprobeLink, }, nil } @@ -300,6 +307,11 @@ func (m *FlowFetcher) Close() error { errs = append(errs, err) } } + if m.rttKprobeLink != nil { + if err := m.rttKprobeLink.Close(); err != nil { + errs = append(errs, err) + } + } // m.ringbufReader.Read is a blocking operation, so we need to close the ring buffer // from another goroutine to avoid the system not being able to exit if there // isn't traffic in a given interface @@ -460,6 +472,7 @@ func kernelSpecificLoadAndAssign(oldKernel bool, spec *ebpf.CollectionSpec) (Bpf EgressFlowParse *ebpf.Program `ebpf:"egress_flow_parse"` IngressFlowParse *ebpf.Program `ebpf:"ingress_flow_parse"` TCPRcvFentry *ebpf.Program `ebpf:"tcp_rcv_fentry"` + TCPRcvKprobe *ebpf.Program `ebpf:"tcp_rcv_kprobe"` } type NewBpfObjects struct { NewBpfPrograms @@ -485,6 +498,7 @@ func kernelSpecificLoadAndAssign(oldKernel bool, spec *ebpf.CollectionSpec) (Bpf objects.EgressFlowParse = newObjects.EgressFlowParse objects.IngressFlowParse = newObjects.IngressFlowParse objects.TcpRcvFentry = newObjects.TCPRcvFentry + objects.TcpRcvKprobe = newObjects.TCPRcvKprobe objects.KfreeSkb = nil } else { if err := spec.LoadAndAssign(&objects, nil); err != nil { -- GitLab