From 6ae90157160627942be81ad0ab427b966cde3bd7 Mon Sep 17 00:00:00 2001 From: Joel Takvorian Date: Fri, 29 Nov 2024 15:56:11 +0100 Subject: [PATCH] try optimizing alignment --- bpf/types.h | 26 +++++++++++++------------- pkg/ebpf/bpf_arm64_bpfel.go | 30 +++++++++++++----------------- pkg/ebpf/bpf_arm64_bpfel.o | Bin 158936 -> 158848 bytes pkg/ebpf/bpf_powerpc_bpfel.go | 30 +++++++++++++----------------- pkg/ebpf/bpf_powerpc_bpfel.o | Bin 157752 -> 157664 bytes pkg/ebpf/bpf_s390_bpfeb.go | 30 +++++++++++++----------------- pkg/ebpf/bpf_s390_bpfeb.o | Bin 174528 -> 174448 bytes pkg/ebpf/bpf_x86_bpfel.go | 30 +++++++++++++----------------- pkg/ebpf/bpf_x86_bpfel.o | Bin 158720 -> 158632 bytes 9 files changed, 65 insertions(+), 81 deletions(-) diff --git a/bpf/types.h b/bpf/types.h index 72dc7450..4f57e673 100644 --- a/bpf/types.h +++ b/bpf/types.h @@ -75,22 +75,22 @@ typedef enum direction_t { const u8 ip4in6[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff}; typedef struct flow_metrics_t { - struct bpf_spin_lock lock; + // Flow start and end times as monotomic timestamps in nanoseconds + // as output from bpf_ktime_get_ns() + u64 start_mono_time_ts; + u64 end_mono_time_ts; + u64 bytes; + u32 packets; u16 eth_protocol; + // TCP Flags from https://www.ietf.org/rfc/rfc793.txt + u16 flags; // L2 data link layer u8 src_mac[ETH_ALEN]; u8 dst_mac[ETH_ALEN]; // OS interface index u32 if_index_first_seen; + struct bpf_spin_lock lock; u8 direction_first_seen; - u32 packets; - u64 bytes; - // Flow start and end times as monotomic timestamps in nanoseconds - // as output from bpf_ktime_get_ns() - u64 start_mono_time_ts; - u64 end_mono_time_ts; - // TCP Flags from https://www.ietf.org/rfc/rfc793.txt - u16 flags; // The positive errno of a failed map insertion that caused a flow // to be sent via ringbuffer. // 0 otherwise @@ -98,28 +98,28 @@ typedef struct flow_metrics_t { u8 errno; u8 dscp; struct dns_record_t { + u64 latency; u16 id; u16 flags; - u64 latency; u8 errno; } dns_record; } flow_metrics; typedef struct additional_metrics_t { struct pkt_drops_t { - u32 packets; u64 bytes; + u32 packets; + u32 latest_drop_cause; u16 latest_flags; u8 latest_state; - u32 latest_drop_cause; } pkt_drops; u64 flow_rtt; - u8 network_events_idx; u8 network_events[MAX_NETWORK_EVENTS][MAX_EVENT_MD]; struct observed_intf_t { u8 direction; u32 if_index; } __attribute__((packed)) observed_intf[MAX_OBSERVED_INTERFACES]; + u8 network_events_idx; u8 nb_observed_intf; } additional_metrics; diff --git a/pkg/ebpf/bpf_arm64_bpfel.go b/pkg/ebpf/bpf_arm64_bpfel.go index a7bbfa2e..9024c3f4 100644 --- a/pkg/ebpf/bpf_arm64_bpfel.go +++ b/pkg/ebpf/bpf_arm64_bpfel.go @@ -15,9 +15,9 @@ import ( type BpfAdditionalMetrics struct { PktDrops BpfPktDropsT FlowRtt uint64 - NetworkEventsIdx uint8 NetworkEvents [4][8]uint8 ObservedIntf [4]BpfObservedIntfT + NetworkEventsIdx uint8 NbObservedIntf uint8 _ [2]byte } @@ -41,12 +41,11 @@ type BpfDnsFlowId struct { } type BpfDnsRecordT struct { + Latency uint64 Id uint16 Flags uint16 - _ [4]byte - Latency uint64 Errno uint8 - _ [7]byte + _ [3]byte } type BpfFilterActionT uint32 @@ -101,22 +100,20 @@ type BpfFlowIdT struct { type BpfFlowMetrics BpfFlowMetricsT type BpfFlowMetricsT struct { - Lock struct{ Val uint32 } + StartMonoTimeTs uint64 + EndMonoTimeTs uint64 + Bytes uint64 + Packets uint32 EthProtocol uint16 + Flags uint16 SrcMac [6]uint8 DstMac [6]uint8 - _ [2]byte IfIndexFirstSeen uint32 + Lock struct{ Val uint32 } DirectionFirstSeen uint8 - _ [3]byte - Packets uint32 - Bytes uint64 - StartMonoTimeTs uint64 - EndMonoTimeTs uint64 - Flags uint16 Errno uint8 Dscp uint8 - _ [4]byte + _ [1]byte DnsRecord BpfDnsRecordT } @@ -145,13 +142,12 @@ type BpfObservedIntfT struct { } type BpfPktDropsT struct { - Packets uint32 - _ [4]byte Bytes uint64 + Packets uint32 + LatestDropCause uint32 LatestFlags uint16 LatestState uint8 - _ [1]byte - LatestDropCause uint32 + _ [5]byte } type BpfTcpFlagsT uint32 diff --git a/pkg/ebpf/bpf_arm64_bpfel.o b/pkg/ebpf/bpf_arm64_bpfel.o index b2978e63230fda7c4fcbbd5a7f2ab1f6d290070d..36a43f15ff377af5ae8a997ad22eadddd2ca8f88 100644 GIT binary patch delta 24316 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 delta 24478 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 Ye$7$2Y#UC#SvGD%p-%bCHqVs*1L(Njpa1{> diff --git a/pkg/ebpf/bpf_s390_bpfeb.go b/pkg/ebpf/bpf_s390_bpfeb.go index 30ebc962..c4da99bb 100644 --- a/pkg/ebpf/bpf_s390_bpfeb.go +++ b/pkg/ebpf/bpf_s390_bpfeb.go @@ -15,9 +15,9 @@ import ( type BpfAdditionalMetrics struct { PktDrops BpfPktDropsT FlowRtt uint64 - NetworkEventsIdx uint8 NetworkEvents [4][8]uint8 ObservedIntf [4]BpfObservedIntfT + NetworkEventsIdx uint8 NbObservedIntf uint8 _ [2]byte } @@ -41,12 +41,11 @@ type BpfDnsFlowId struct { } type BpfDnsRecordT struct { + Latency uint64 Id uint16 Flags uint16 - _ [4]byte - Latency uint64 Errno uint8 - _ [7]byte + _ [3]byte } type BpfFilterActionT uint32 @@ -101,22 +100,20 @@ type BpfFlowIdT struct { type BpfFlowMetrics BpfFlowMetricsT type BpfFlowMetricsT struct { - Lock struct{ Val uint32 } + StartMonoTimeTs uint64 + EndMonoTimeTs uint64 + Bytes uint64 + Packets uint32 EthProtocol uint16 + Flags uint16 SrcMac [6]uint8 DstMac [6]uint8 - _ [2]byte IfIndexFirstSeen uint32 + Lock struct{ Val uint32 } DirectionFirstSeen uint8 - _ [3]byte - Packets uint32 - Bytes uint64 - StartMonoTimeTs uint64 - EndMonoTimeTs uint64 - Flags uint16 Errno uint8 Dscp uint8 - _ [4]byte + _ [1]byte DnsRecord BpfDnsRecordT } @@ -145,13 +142,12 @@ type BpfObservedIntfT struct { } type BpfPktDropsT struct { - Packets uint32 - _ [4]byte Bytes uint64 + Packets uint32 + LatestDropCause uint32 LatestFlags uint16 LatestState uint8 - _ [1]byte - LatestDropCause uint32 + _ [5]byte } type BpfTcpFlagsT uint32 diff --git a/pkg/ebpf/bpf_s390_bpfeb.o b/pkg/ebpf/bpf_s390_bpfeb.o index d138e92741932d73627767d886f0b91ee712fe61..ef7f0d52b541e773756b32976b939f7c22c77330 100644 GIT binary patch delta 25020 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 w6m}wX@;gbK3TWJL>~D64y3Cam10#y>7ru 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 ht$3%oVr(r-nv{*A6>#{y3lW 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 delta 24675 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 XO>@l2+J|e$THHQlN;pmXJTv|`hz1WQ