Merge pull request #1863 from pchaigno/remove-unnecessary-bpf-probe-reads
tools: remove unnecessary calls to bpf_probe_read
diff --git a/tools/runqlat.py b/tools/runqlat.py
index 86dff6b..9fd4064 100755
--- a/tools/runqlat.py
+++ b/tools/runqlat.py
@@ -168,11 +168,9 @@
struct task_struct *prev = (struct task_struct *)ctx->args[1];
struct task_struct *next = (struct task_struct *)ctx->args[2];
u32 pid, tgid;
- long state;
// ivcsw: treat like an enqueue event and store timestamp
- bpf_probe_read(&state, sizeof(long), &prev->state);
- if (state == TASK_RUNNING) {
+ if (prev->state == TASK_RUNNING) {
tgid = prev->tgid;
pid = prev->pid;
if (!(FILTER || pid == 0)) {
diff --git a/tools/runqslower.py b/tools/runqslower.py
index a28a823..7a1869c 100755
--- a/tools/runqslower.py
+++ b/tools/runqslower.py
@@ -145,11 +145,7 @@
{
// TP_PROTO(struct task_struct *p)
struct task_struct *p = (struct task_struct *)ctx->args[0];
- u32 tgid, pid;
-
- bpf_probe_read(&tgid, sizeof(tgid), &p->tgid);
- bpf_probe_read(&pid, sizeof(pid), &p->pid);
- return trace_enqueue(tgid, pid);
+ return trace_enqueue(p->tgid, p->pid);
}
RAW_TRACEPOINT_PROBE(sched_wakeup_new)
diff --git a/tools/tcpaccept.py b/tools/tcpaccept.py
index 51995a9..d52d209 100755
--- a/tools/tcpaccept.py
+++ b/tools/tcpaccept.py
@@ -107,16 +107,16 @@
if (sk_lingertime_offset - gso_max_segs_offset == 4)
// 4.10+ with little endian
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
- bpf_probe_read(&protocol, 1, (void *)((u64)&newsk->sk_gso_max_segs) - 3);
+ protocol = *(u8 *)((u64)&newsk->sk_gso_max_segs - 3);
else
// pre-4.10 with little endian
- bpf_probe_read(&protocol, 1, (void *)((u64)&newsk->sk_wmem_queued) - 3);
+ protocol = *(u8 *)((u64)&newsk->sk_wmem_queued - 3);
#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
// 4.10+ with big endian
- bpf_probe_read(&protocol, 1, (void *)((u64)&newsk->sk_gso_max_segs) - 1);
+ protocol = *(u8 *)((u64)&newsk->sk_gso_max_segs - 1);
else
// pre-4.10 with big endian
- bpf_probe_read(&protocol, 1, (void *)((u64)&newsk->sk_wmem_queued) - 1);
+ protocol = *(u8 *)((u64)&newsk->sk_wmem_queued - 1);
#else
# error "Fix your compiler's __BYTE_ORDER__?!"
#endif
diff --git a/tools/tcptracer.py b/tools/tcptracer.py
index 8290d40..5e97ee6 100755
--- a/tools/tcptracer.py
+++ b/tools/tcptracer.py
@@ -116,8 +116,7 @@
u16 sport = sockp->inet_sport;
u16 dport = skp->__sk_common.skc_dport;
#ifdef CONFIG_NET_NS
- possible_net_t skc_net = skp->__sk_common.skc_net;
- bpf_probe_read(&net_ns_inum, sizeof(net_ns_inum), &skc_net.net->ns.inum);
+ net_ns_inum = skp->__sk_common.skc_net.net->ns.inum;
#endif
##FILTER_NETNS##
@@ -144,8 +143,7 @@
u16 sport = sockp->inet_sport;
u16 dport = skp->__sk_common.skc_dport;
#ifdef CONFIG_NET_NS
- possible_net_t skc_net = skp->__sk_common.skc_net;
- bpf_probe_read(&net_ns_inum, sizeof(net_ns_inum), &skc_net.net->ns.inum);
+ net_ns_inum = skp->__sk_common.skc_net.net->ns.inum;
#endif
bpf_probe_read(&saddr, sizeof(saddr),
skp->__sk_common.skc_v6_rcv_saddr.in6_u.u6_addr32);
@@ -430,16 +428,12 @@
u32 net_ns_inum = 0;
u8 ipver = 0;
- bpf_probe_read(&dport, sizeof(dport), &newsk->__sk_common.skc_dport);
- bpf_probe_read(&lport, sizeof(lport), &newsk->__sk_common.skc_num);
+ dport = newsk->__sk_common.skc_dport;
+ lport = newsk->__sk_common.skc_num;
// Get network namespace id, if kernel supports it
#ifdef CONFIG_NET_NS
- possible_net_t skc_net = { };
- bpf_probe_read(&skc_net, sizeof(skc_net), &newsk->__sk_common.skc_net);
- bpf_probe_read(&net_ns_inum, sizeof(net_ns_inum), &skc_net.net->ns.inum);
-#else
- net_ns_inum = 0;
+ net_ns_inum = newsk->__sk_common.skc_net.net->ns.inum;
#endif
##FILTER_NETNS##
@@ -455,10 +449,8 @@
evt4.pid = pid >> 32;
evt4.ip = ipver;
- bpf_probe_read(&evt4.saddr, sizeof(evt4.saddr),
- &newsk->__sk_common.skc_rcv_saddr);
- bpf_probe_read(&evt4.daddr, sizeof(evt4.daddr),
- &newsk->__sk_common.skc_daddr);
+ evt4.saddr = newsk->__sk_common.skc_rcv_saddr;
+ evt4.daddr = newsk->__sk_common.skc_daddr;
evt4.sport = lport;
evt4.dport = ntohs(dport);