From 8d78edd8319b03448bf648774971ff0aea38966b Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 29 Jun 2018 07:47:44 +0200 Subject: [PATCH] tools: remove unnecessary calls to bpf_probe_read Most of these calls have been rendered useless by a9f96c0 ("Recognize context member dereferences despite array accesses (#1828)"). --- tools/runqlat.py | 4 +--- tools/runqslower.py | 6 +----- tools/tcpaccept.py | 8 ++++---- tools/tcptracer.py | 22 +++++++--------------- 4 files changed, 13 insertions(+), 27 deletions(-) diff --git a/tools/runqlat.py b/tools/runqlat.py index 86dff6b33c7a..9fd40642beb9 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 a28a823387cc..7a1869cf1ce6 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 51995a996b35..d52d20974b3a 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 8290d40311c3..5e97ee68533f 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);