This is an automated email from the ASF dual-hosted git repository.
liuhan pushed a commit to branch reduce-handle-connect-time
in repository https://gitbox.apache.org/repos/asf/skywalking-rover.git
The following commit(s) were added to refs/heads/reduce-handle-connect-time by
this push:
new 98d711a remove test code
98d711a is described below
commit 98d711adb09ad2da41f496f52db445938471bf31
Author: mrproliu <[email protected]>
AuthorDate: Mon Dec 30 12:18:34 2024 +0800
remove test code
---
bpf/accesslog/common/connection.h | 5 ++---
bpf/accesslog/common/data_args.h | 2 --
bpf/accesslog/syscalls/connect.c | 7 ++-----
bpf/accesslog/syscalls/connect_conntrack.c | 32 ------------------------------
bpf/accesslog/syscalls/connect_conntrack.h | 9 +--------
pkg/accesslog/collector/connection.go | 3 ---
pkg/accesslog/events/connect.go | 2 +-
pkg/accesslog/events/data.go | 2 +-
pkg/accesslog/events/events_test.go | 2 +-
pkg/process/finders/kubernetes/finder.go | 2 +-
pkg/tools/btf/linker.go | 5 +++--
pkg/tools/ip/conntrack.go | 18 +++++++----------
12 files changed, 19 insertions(+), 70 deletions(-)
diff --git a/bpf/accesslog/common/connection.h
b/bpf/accesslog/common/connection.h
index 0a75214..834737a 100644
--- a/bpf/accesslog/common/connection.h
+++ b/bpf/accesslog/common/connection.h
@@ -200,7 +200,6 @@ static __always_inline void submit_new_connection(void*
ctx, bool success, __u32
event->conntrack_upstream_iph = (__u64)conntrack->iph;
event->conntrack_upstream_ipl = (__u64)conntrack->ipl;
event->conntrack_upstream_port = conntrack->port;
- bpf_printk("update conntrack, conid: %lld, port: %d", conid,
conntrack->port);
}
event->success = success;
@@ -287,7 +286,7 @@ static __inline struct active_connection_t*
get_or_create_active_conn(void *ctx,
if (conn != NULL) {
return conn;
}
- submit_new_connection(ctx, true, func_name, tgid, fd, 0, 0, NULL, NULL,
NULL, role, 0);
+ submit_new_connection(ctx, true, func_name, tgid, fd, 0, NULL, NULL, NULL,
role);
return bpf_map_lookup_elem(&active_connection_map, &conid);
}
@@ -301,7 +300,7 @@ static __inline void submit_connection_when_not_exists(void
*ctx, __u64 id, stru
if (conn != NULL) {
return;
}
- submit_new_connection(ctx, true, func_name, tgid, connect_args->fd,
connect_args->start_nacs, connect_args->randomid, connect_args->addr, NULL,
&connect_args->remote, role, connect_args->has_remote);
+ submit_new_connection(ctx, true, func_name, tgid, connect_args->fd,
connect_args->start_nacs, connect_args->addr, NULL, &connect_args->remote,
role);
}
static __inline void notify_close_connection(void* ctx, __u64 conid, struct
active_connection_t* con, __u64 start_time, __u64 end_time, int ret) {
diff --git a/bpf/accesslog/common/data_args.h b/bpf/accesslog/common/data_args.h
index e19d0bc..33eeea6 100644
--- a/bpf/accesslog/common/data_args.h
+++ b/bpf/accesslog/common/data_args.h
@@ -93,7 +93,6 @@ static __inline __u64 generate_socket_data_id(__u64 id, __u32
fd, __u32 func_nam
__u64 key = ((__u64)tgid << 32) | fd;
if (check) {
if (tgid_should_trace(tgid) == false) {
- bpf_printk("---test11111");
return 0;
}
}
@@ -103,7 +102,6 @@ static __inline __u64 generate_socket_data_id(__u64 id,
__u32 fd, __u32 func_nam
bpf_map_update_elem(&socket_data_id_generate_map, &key, &tmp,
BPF_NOEXIST);
data_id = bpf_map_lookup_elem(&socket_data_id_generate_map, &key);
if (!data_id) {
- bpf_printk("---test222222222");
return 0;
}
}
diff --git a/bpf/accesslog/syscalls/connect.c b/bpf/accesslog/syscalls/connect.c
index d3db9c8..406829a 100644
--- a/bpf/accesslog/syscalls/connect.c
+++ b/bpf/accesslog/syscalls/connect.c
@@ -33,14 +33,14 @@ static __inline void process_connect(void *ctx, __u64 id,
struct connect_args_t
struct sock *sock = connect_args->sock;
struct socket *s = _(sock->sk_socket);
submit_new_connection(ctx, success, SOCKET_OPTS_TYPE_CONNECT, tgid,
connect_args->fd, connect_args->start_nacs,
- connect_args->randomid, connect_args->addr, s, &connect_args->remote,
0, connect_args->has_remote);
+ connect_args->addr, s, &connect_args->remote, 0);
}
static __inline void process_accept(void *ctx, __u64 id, struct accept_args_t
*accept_args, long ret) {
int fd = (int) ret;
__u32 tgid = id >> 32;
struct socket *s = accept_args->socket;
- submit_new_connection(ctx, true, SOCKET_OPTS_TYPE_ACCEPT, tgid, fd,
accept_args->start_nacs, 0, accept_args->addr, s, NULL, 0, 0);
+ submit_new_connection(ctx, true, SOCKET_OPTS_TYPE_ACCEPT, tgid, fd,
accept_args->start_nacs, accept_args->addr, s, NULL, 0);
}
SEC("tracepoint/syscalls/sys_enter_connect")
@@ -54,9 +54,7 @@ int tracepoint_enter_connect(struct syscall_trace_enter *ctx)
{
connect_args.fd = (__u32)ctx->args[0];
connect_args.addr = (struct sockaddr *)ctx->args[1];
connect_args.start_nacs = bpf_ktime_get_ns();
- connect_args.randomid = bpf_get_prandom_u32();
bpf_map_update_elem(&conecting_args, &id, &connect_args, 0);
- bpf_printk("start sys connect: %lld, %lld", id, connect_args.randomid);
return 0;
}
@@ -68,7 +66,6 @@ int tracepoint_exit_connect(struct syscall_trace_exit *ctx) {
connect_args = bpf_map_lookup_elem(&conecting_args, &id);
if (connect_args) {
process_connect(ctx, id, connect_args, ctx->ret);
- bpf_printk("--finish sys connect: %lld, %lld", id,
connect_args->randomid);
}
bpf_map_delete_elem(&conecting_args, &id);
diff --git a/bpf/accesslog/syscalls/connect_conntrack.c
b/bpf/accesslog/syscalls/connect_conntrack.c
index 63d434c..8f1f5cb 100644
--- a/bpf/accesslog/syscalls/connect_conntrack.c
+++ b/bpf/accesslog/syscalls/connect_conntrack.c
@@ -94,28 +94,23 @@ static __always_inline int nf_conn_aware(struct pt_regs*
ctx, struct nf_conn *ct
// already contains the remote address
if (connect_args->has_remote && &(connect_args->remote) != NULL) {
- bpf_printk("---test2222, %lld, %lld", id, connect_args->randomid);
return 0;
}
__u32 status;
if (bpf_probe_read(&status, sizeof(status), &(ct->status)) != 0) {
- bpf_printk("---test3333, %lld, %lld", id, connect_args->randomid);
return 0; // Invalid ct pointer
}
if (!(status & IPS_CONFIRMED)) {
- bpf_printk("---test4444, %lld, %lld", id, connect_args->randomid);
return 0;
}
if (!(status & IPS_NAT_MASK)) {
- bpf_printk("---test5555, %lld, %lld", id, connect_args->randomid);
return 0;
}
struct nf_conntrack_tuple_hash tuplehash[IP_CT_DIR_MAX];
if (bpf_probe_read(&tuplehash, sizeof(tuplehash), &(ct->tuplehash)) != 0) {
- bpf_printk("---test6666, %lld, %lld", id, connect_args->randomid);
return 0; // Invalid ct pointer
}
@@ -123,7 +118,6 @@ static __always_inline int nf_conn_aware(struct pt_regs*
ctx, struct nf_conn *ct
conntrack_tuple_t reply_conn = {};
if (!nf_conntrack_tuple_to_conntrack_tuple(connect_args, &reply_conn,
&reply)) {
- bpf_printk("---test7777, %lld, %lld", id, connect_args->randomid);
return 0;
}
@@ -134,7 +128,6 @@ static __always_inline int nf_conn_aware(struct pt_regs*
ctx, struct nf_conn *ct
connect_args->remote = remote;
connect_args->has_remote = 1;
bpf_map_update_elem(&conecting_args, &id, connect_args, 0);
- bpf_printk("---test success!!!!!!!!!!!!!!!!!!!!, %lld, %lld", id,
connect_args->randomid);
return 0;
}
@@ -152,29 +145,4 @@ int nf_confirm(struct pt_regs* ctx) {
SEC("kprobe/ctnetlink_fill_info")
int nf_ctnetlink_fill_info(struct pt_regs* ctx) {
return nf_conn_aware(ctx, (struct nf_conn*)PT_REGS_PARM5(ctx));
-}
-
-SEC("kprobe/__nf_ct_refresh_acct")
-int nf_ct_refresh_acct(struct pt_regs *ctx) {
- struct nf_conn *ct = (struct nf_conn *) PT_REGS_PARM1(ctx);
- __u64 pid = bpf_get_current_pid_tgid();
- bpf_map_update_elem(&conntrack_refreshing, &pid, &ct, BPF_ANY);
- return 0;
-}
-
-// Bottom half of the update sampler. Extract accounting data from the nf_conn.
-SEC("kretprobe/__nf_ct_refresh_acct")
-int nf_ct_refresh_acct_ret(struct pt_regs *ctx) {
- __u64 pid = bpf_get_current_pid_tgid();
- struct nf_conn **ctp;
- ctp = bpf_map_lookup_elem(&conntrack_refreshing, &pid);
- if (ctp == 0) {
- bpf_printk("nf_ct_refresh_acct_ret: ctp is null");
- return 0;
- }
- struct nf_conn *ct = *ctp;
- bpf_map_delete_elem(&conntrack_refreshing, &pid);
- int ret = nf_conn_aware(ctx, ct);
- bpf_printk("nf_ct_refresh_acct_ret: %p, ret: %d", ct, ret);
- return ret;
}
\ No newline at end of file
diff --git a/bpf/accesslog/syscalls/connect_conntrack.h
b/bpf/accesslog/syscalls/connect_conntrack.h
index 4b3024c..06e5072 100644
--- a/bpf/accesslog/syscalls/connect_conntrack.h
+++ b/bpf/accesslog/syscalls/connect_conntrack.h
@@ -96,11 +96,4 @@ struct nf_conn {
struct nf_conntrack_tuple_hash tuplehash[IP_CT_DIR_MAX];
long unsigned int status;
__u32 mark;
-} __attribute__((preserve_access_index));
-
-struct {
- __uint(type, BPF_MAP_TYPE_PERCPU_HASH);
- __uint(max_entries, 5000);
- __type(key, __u64);
- __type(value, sizeof(struct nf_conn *));
-} conntrack_refreshing SEC(".maps");
\ No newline at end of file
+} __attribute__((preserve_access_index));
\ No newline at end of file
diff --git a/pkg/accesslog/collector/connection.go
b/pkg/accesslog/collector/connection.go
index 5cc2176..7550a0d 100644
--- a/pkg/accesslog/collector/connection.go
+++ b/pkg/accesslog/collector/connection.go
@@ -23,7 +23,6 @@ import (
"fmt"
"net"
"os"
- "time"
"github.com/docker/go-units"
@@ -51,8 +50,6 @@ var connectionLogger = logger.GetLogger("access_log",
"collector", "connection")
var connectionCollectInstance = NewConnectionCollector()
-var connectionAnalyzeRetryTime = time.Second * 3
-
type ConnectCollector struct {
eventQueue *btf.EventQueue
}
diff --git a/pkg/accesslog/events/connect.go b/pkg/accesslog/events/connect.go
index ab10338..daf6458 100644
--- a/pkg/accesslog/events/connect.go
+++ b/pkg/accesslog/events/connect.go
@@ -18,9 +18,9 @@
package events
import (
- "github.com/apache/skywalking-rover/pkg/tools/btf"
"time"
+ "github.com/apache/skywalking-rover/pkg/tools/btf"
"github.com/apache/skywalking-rover/pkg/tools/host"
)
diff --git a/pkg/accesslog/events/data.go b/pkg/accesslog/events/data.go
index 7d759e4..85bbd76 100644
--- a/pkg/accesslog/events/data.go
+++ b/pkg/accesslog/events/data.go
@@ -19,8 +19,8 @@ package events
import (
"fmt"
- "github.com/apache/skywalking-rover/pkg/tools/btf"
+ "github.com/apache/skywalking-rover/pkg/tools/btf"
"github.com/apache/skywalking-rover/pkg/tools/enums"
)
diff --git a/pkg/accesslog/events/events_test.go
b/pkg/accesslog/events/events_test.go
index 70348a0..ee3144d 100644
--- a/pkg/accesslog/events/events_test.go
+++ b/pkg/accesslog/events/events_test.go
@@ -21,11 +21,11 @@ import (
"bytes"
"encoding/binary"
"encoding/hex"
- "github.com/apache/skywalking-rover/pkg/tools/btf"
"reflect"
"strings"
"testing"
+ "github.com/apache/skywalking-rover/pkg/tools/btf"
"github.com/stretchr/testify/assert"
)
diff --git a/pkg/process/finders/kubernetes/finder.go
b/pkg/process/finders/kubernetes/finder.go
index 8396590..5b22fb4 100644
--- a/pkg/process/finders/kubernetes/finder.go
+++ b/pkg/process/finders/kubernetes/finder.go
@@ -22,7 +22,6 @@ import (
"context"
"fmt"
"hash/fnv"
- "k8s.io/apimachinery/pkg/util/rand"
"os"
"regexp"
"strconv"
@@ -41,6 +40,7 @@ import (
"k8s.io/apimachinery/pkg/fields"
"k8s.io/apimachinery/pkg/util/cache"
+ "k8s.io/apimachinery/pkg/util/rand"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
diff --git a/pkg/tools/btf/linker.go b/pkg/tools/btf/linker.go
index 690a89f..3abb43b 100644
--- a/pkg/tools/btf/linker.go
+++ b/pkg/tools/btf/linker.go
@@ -22,13 +22,14 @@ import (
"encoding/binary"
"errors"
"fmt"
- "golang.org/x/arch/arm64/arm64asm"
- "golang.org/x/arch/x86/x86asm"
"io"
"os"
"runtime"
"sync"
+ "golang.org/x/arch/arm64/arm64asm"
+ "golang.org/x/arch/x86/x86asm"
+
"github.com/apache/skywalking-rover/pkg/tools/elf"
"github.com/apache/skywalking-rover/pkg/tools/process"
diff --git a/pkg/tools/ip/conntrack.go b/pkg/tools/ip/conntrack.go
index bc410c7..9c2bf37 100644
--- a/pkg/tools/ip/conntrack.go
+++ b/pkg/tools/ip/conntrack.go
@@ -19,20 +19,18 @@ package ip
import (
"fmt"
- "github.com/florianl/go-conntrack"
- "golang.org/x/sys/unix"
"net"
"syscall"
- "time"
+
+ "github.com/florianl/go-conntrack"
+
+ "golang.org/x/sys/unix"
"github.com/apache/skywalking-rover/pkg/logger"
)
var (
log = logger.GetLogger("tools", "ip")
-
- // monitorExpireTime is the time to expire the conntrack session
- monitorExpireTime = time.Second * 20
)
var numberStrategies = []struct {
@@ -44,7 +42,7 @@ var numberStrategies = []struct {
}}
type ConnTrack struct {
- nfct *conntrack.Nfct
+ tracker *conntrack.Nfct
}
func NewConnTrack() (*ConnTrack, error) {
@@ -53,9 +51,7 @@ func NewConnTrack() (*ConnTrack, error) {
return nil, err
}
- return &ConnTrack{
- nfct: nfct,
- }, nil
+ return &ConnTrack{tracker: nfct}, nil
}
func (c *ConnTrack) UpdateRealPeerAddress(addr *SocketPair) error {
@@ -69,7 +65,7 @@ func (c *ConnTrack) UpdateRealPeerAddress(addr *SocketPair)
error {
tuple.Proto.Number = &(info.proto)
// using get to query protocol
- session, e := c.nfct.Get(conntrack.Conntrack, family,
conntrack.Con{Origin: tuple})
+ session, e := c.tracker.Get(conntrack.Conntrack, family,
conntrack.Con{Origin: tuple})
if e != nil {
// try to get the reply session, if the info not exists
or from accept events, have error is normal
return fmt.Errorf("cannot get the conntrack session,
type: %s, family: %d, origin src: %s:%d, origin dest: %s:%d, error: %v",
info.name,