Created
July 25, 2019 21:43
-
-
Save fbs/2517bbde7c069b15c8eb43e5d7976016 to your computer and use it in GitHub Desktop.
bpftrace signed type v2 tool div
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Checking bashreadline | |
| Checking biolatency | |
| Checking biosnoop | |
| Change detected for script: biosnoop | |
| --- master_biosnoop 2019-07-25 21:42:10.027857087 +0000 | |
| +++ new_biosnoop 2019-07-25 21:42:10.071858153 +0000 | |
| @@ -403,7 +403,7 @@ | |
| %11 = getelementptr %printf_t.0, %printf_t.0* %printf_args, i32 0, i32 0 | |
| store i64 1, i64* %11 | |
| %get_ns24 = call i64 inttoptr (i64 5 to i64 ()*)() | |
| - %12 = sub i64 %get_ns24, 46449100788201 | |
| + %12 = sub i64 %get_ns24, 46449146119512 | |
| %13 = udiv i64 %12, 1000000 | |
| %14 = getelementptr %printf_t.0, %printf_t.0* %printf_args, i32 0, i32 1 | |
| store i64 %13, i64* %14 | |
| @@ -896,7 +896,7 @@ | |
| %5 = getelementptr inbounds %printf_t.0, %printf_t.0* %printf_args, i64 0, i32 0 | |
| store i64 1, i64* %5, align 8 | |
| %get_ns24 = call i64 inttoptr (i64 5 to i64 ()*)() | |
| - %6 = add i64 %get_ns24, -46449100788201 | |
| + %6 = add i64 %get_ns24, -46449146119512 | |
| %7 = udiv i64 %6, 1000000 | |
| %8 = getelementptr inbounds %printf_t.0, %printf_t.0* %printf_args, i64 0, i32 1 | |
| store i64 %7, i64* %8, align 8 | |
| Checking bitesize | |
| Checking capable | |
| bpftrace failed on script: capable | |
| Checking cpuwalk | |
| Checking dcsnoop | |
| Change detected for script: dcsnoop | |
| --- master_dcsnoop 2019-07-25 21:42:10.947879380 +0000 | |
| +++ new_dcsnoop 2019-07-25 21:42:11.283887522 +0000 | |
| @@ -325,7 +325,7 @@ | |
| %6 = getelementptr %printf_t.1, %printf_t.1* %printf_args, i32 0, i32 0 | |
| store i64 2, i64* %6 | |
| %get_ns = call i64 inttoptr (i64 5 to i64 ()*)() | |
| - %7 = sub i64 %get_ns, 46450019920670 | |
| + %7 = sub i64 %get_ns, 46450357718166 | |
| %8 = udiv i64 %7, 1000000 | |
| %9 = getelementptr %printf_t.1, %printf_t.1* %printf_args, i32 0, i32 1 | |
| store i64 %8, i64* %9 | |
| @@ -453,7 +453,7 @@ | |
| %7 = getelementptr %printf_t.2, %printf_t.2* %printf_args, i32 0, i32 0 | |
| store i64 3, i64* %7 | |
| %get_ns = call i64 inttoptr (i64 5 to i64 ()*)() | |
| - %8 = sub i64 %get_ns, 46450020016716 | |
| + %8 = sub i64 %get_ns, 46450357814249 | |
| %9 = udiv i64 %8, 1000000 | |
| %10 = getelementptr %printf_t.2, %printf_t.2* %printf_args, i32 0, i32 1 | |
| store i64 %9, i64* %10 | |
| @@ -661,7 +661,7 @@ | |
| %4 = getelementptr inbounds %printf_t.1, %printf_t.1* %printf_args, i64 0, i32 0 | |
| store i64 2, i64* %4, align 8 | |
| %get_ns = tail call i64 inttoptr (i64 5 to i64 ()*)() | |
| - %5 = add i64 %get_ns, -46450019920670 | |
| + %5 = add i64 %get_ns, -46450357718166 | |
| %6 = udiv i64 %5, 1000000 | |
| %7 = getelementptr inbounds %printf_t.1, %printf_t.1* %printf_args, i64 0, i32 1 | |
| store i64 %6, i64* %7, align 8 | |
| @@ -756,7 +756,7 @@ | |
| %5 = getelementptr inbounds %printf_t.2, %printf_t.2* %printf_args, i64 0, i32 0 | |
| store i64 3, i64* %5, align 8 | |
| %get_ns = call i64 inttoptr (i64 5 to i64 ()*)() | |
| - %6 = add i64 %get_ns, -46450020016716 | |
| + %6 = add i64 %get_ns, -46450357814249 | |
| %7 = udiv i64 %6, 1000000 | |
| %8 = getelementptr inbounds %printf_t.2, %printf_t.2* %printf_args, i64 0, i32 1 | |
| store i64 %7, i64* %8, align 8 | |
| Checking execsnoop | |
| Change detected for script: execsnoop | |
| --- master_execsnoop 2019-07-25 21:42:11.367889559 +0000 | |
| +++ new_execsnoop 2019-07-25 21:42:11.423890915 +0000 | |
| @@ -252,7 +252,7 @@ | |
| %3 = getelementptr %printf_t.0, %printf_t.0* %printf_args, i32 0, i32 0 | |
| store i64 1, i64* %3 | |
| %get_ns = call i64 inttoptr (i64 5 to i64 ()*)() | |
| - %4 = sub i64 %get_ns, 46450447066365 | |
| + %4 = sub i64 %get_ns, 46450505899448 | |
| %5 = udiv i64 %4, 1000000 | |
| %6 = getelementptr %printf_t.0, %printf_t.0* %printf_args, i32 0, i32 1 | |
| store i64 %5, i64* %6 | |
| @@ -497,7 +497,7 @@ | |
| %2 = getelementptr inbounds %printf_t.0, %printf_t.0* %printf_args, i64 0, i32 0 | |
| store i64 1, i64* %2, align 8 | |
| %get_ns = tail call i64 inttoptr (i64 5 to i64 ()*)() | |
| - %3 = add i64 %get_ns, -46450447066365 | |
| + %3 = add i64 %get_ns, -46450505899448 | |
| %4 = udiv i64 %3, 1000000 | |
| %5 = getelementptr inbounds %printf_t.0, %printf_t.0* %printf_args, i64 0, i32 1 | |
| store i64 %4, i64* %5, align 8 | |
| Checking gethostlatency | |
| Checking killsnoop | |
| Checking loads | |
| Checking mdflush | |
| Checking oomkill | |
| Checking opensnoop | |
| Change detected for script: opensnoop | |
| --- master_opensnoop 2019-07-25 21:42:13.915951301 +0000 | |
| +++ new_opensnoop 2019-07-25 21:42:14.007953531 +0000 | |
| @@ -462,7 +462,7 @@ | |
| call void @llvm.lifetime.start.p0i8(i64 -1, i8* %14) | |
| %15 = load i64, i64* %"$ret" | |
| %16 = icmp sgt i64 %15, 0 | |
| - %17 = zext i1 %16 to i64 | |
| + %17 = sext i1 %16 to i64 | |
| %true_cond = icmp ne i64 %17, 0 | |
| br i1 %true_cond, label %left, label %right | |
| @@ -502,7 +502,7 @@ | |
| call void @llvm.lifetime.start.p0i8(i64 -1, i8* %25) | |
| %26 = load i64, i64* %"$ret" | |
| %27 = icmp sgt i64 %26, 0 | |
| - %28 = zext i1 %27 to i64 | |
| + %28 = sext i1 %27 to i64 | |
| %true_cond6 = icmp ne i64 %28, 0 | |
| br i1 %true_cond6, label %left1, label %right2 | |
| @@ -670,7 +670,7 @@ | |
| call void @llvm.lifetime.start.p0i8(i64 -1, i8* %14) | |
| %15 = load i64, i64* %"$ret" | |
| %16 = icmp sgt i64 %15, 0 | |
| - %17 = zext i1 %16 to i64 | |
| + %17 = sext i1 %16 to i64 | |
| %true_cond = icmp ne i64 %17, 0 | |
| br i1 %true_cond, label %left, label %right | |
| @@ -710,7 +710,7 @@ | |
| call void @llvm.lifetime.start.p0i8(i64 -1, i8* %25) | |
| %26 = load i64, i64* %"$ret" | |
| %27 = icmp sgt i64 %26, 0 | |
| - %28 = zext i1 %27 to i64 | |
| + %28 = sext i1 %27 to i64 | |
| %true_cond6 = icmp ne i64 %28, 0 | |
| br i1 %true_cond6, label %left1, label %right2 | |
| Checking pidpersec | |
| Checking runqlat | |
| Change detected for script: runqlat | |
| --- master_runqlat 2019-07-25 21:42:14.395962933 +0000 | |
| +++ new_runqlat 2019-07-25 21:42:14.651969136 +0000 | |
| @@ -290,7 +290,7 @@ | |
| %5 = bitcast i32* %_tracepoint_sched_sched_wakeup.pid to i8* | |
| call void @llvm.lifetime.end.p0i8(i64 -1, i8* %5) | |
| %6 = getelementptr [8 x i8], [8 x i8]* %"@qtime_key", i64 0, i64 0 | |
| - %7 = zext i32 %4 to i64 | |
| + %7 = sext i32 %4 to i64 | |
| store i64 %7, i8* %6 | |
| %8 = bitcast i64* %"@qtime_val" to i8* | |
| call void @llvm.lifetime.start.p0i8(i64 -1, i8* %8) | |
| @@ -320,7 +320,7 @@ | |
| %5 = bitcast i32* %_tracepoint_sched_sched_wakeup_new.pid to i8* | |
| call void @llvm.lifetime.end.p0i8(i64 -1, i8* %5) | |
| %6 = getelementptr [8 x i8], [8 x i8]* %"@qtime_key", i64 0, i64 0 | |
| - %7 = zext i32 %4 to i64 | |
| + %7 = sext i32 %4 to i64 | |
| store i64 %7, i8* %6 | |
| %8 = bitcast i64* %"@qtime_val" to i8* | |
| call void @llvm.lifetime.start.p0i8(i64 -1, i8* %8) | |
| @@ -360,7 +360,7 @@ | |
| %5 = bitcast i64* %_tracepoint_sched_sched_switch.prev_state to i8* | |
| call void @llvm.lifetime.end.p0i8(i64 -1, i8* %5) | |
| %6 = icmp eq i64 %4, 0 | |
| - %7 = zext i1 %6 to i64 | |
| + %7 = sext i1 %6 to i64 | |
| %true_cond = icmp ne i64 %7, 0 | |
| br i1 %true_cond, label %if_stmt, label %else_stmt | |
| @@ -376,7 +376,7 @@ | |
| %12 = bitcast i32* %_tracepoint_sched_sched_switch.prev_pid to i8* | |
| call void @llvm.lifetime.end.p0i8(i64 -1, i8* %12) | |
| %13 = getelementptr [8 x i8], [8 x i8]* %"@qtime_key", i64 0, i64 0 | |
| - %14 = zext i32 %11 to i64 | |
| + %14 = sext i32 %11 to i64 | |
| store i64 %14, i8* %13 | |
| %15 = bitcast i64* %"@qtime_val" to i8* | |
| call void @llvm.lifetime.start.p0i8(i64 -1, i8* %15) | |
| @@ -400,7 +400,7 @@ | |
| %22 = bitcast i32* %_tracepoint_sched_sched_switch.next_pid to i8* | |
| call void @llvm.lifetime.end.p0i8(i64 -1, i8* %22) | |
| %23 = getelementptr [8 x i8], [8 x i8]* %"@qtime_key2", i64 0, i64 0 | |
| - %24 = zext i32 %21 to i64 | |
| + %24 = sext i32 %21 to i64 | |
| store i64 %24, i8* %23 | |
| %pseudo4 = call i64 @llvm.bpf.pseudo(i64 1, i64 1) | |
| %lookup_elem = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i64 %pseudo4, [8 x i8]* %"@qtime_key2") | |
| @@ -456,7 +456,7 @@ | |
| %40 = bitcast i32* %_tracepoint_sched_sched_switch.next_pid19 to i8* | |
| call void @llvm.lifetime.end.p0i8(i64 -1, i8* %40) | |
| %41 = getelementptr [8 x i8], [8 x i8]* %"@qtime_key18", i64 0, i64 0 | |
| - %42 = zext i32 %39 to i64 | |
| + %42 = sext i32 %39 to i64 | |
| store i64 %42, i8* %41 | |
| %pseudo21 = call i64 @llvm.bpf.pseudo(i64 1, i64 1) | |
| %delete_elem = call i64 inttoptr (i64 3 to i64 (i8*, i8*)*)(i64 %pseudo21, [8 x i8]* %"@qtime_key18") | |
| @@ -565,7 +565,7 @@ | |
| %probe_read = call i64 inttoptr (i64 4 to i64 (i8*, i64, i8*)*)(i32* nonnull %_tracepoint_sched_sched_wakeup.pid, i64 4, i8* %2) | |
| %4 = load i32, i32* %_tracepoint_sched_sched_wakeup.pid, align 4 | |
| call void @llvm.lifetime.end.p0i8(i64 -1, i8* nonnull %3) | |
| - %5 = zext i32 %4 to i64 | |
| + %5 = sext i32 %4 to i64 | |
| store i64 %5, i8* %1, align 8 | |
| %6 = bitcast i64* %"@qtime_val" to i8* | |
| call void @llvm.lifetime.start.p0i8(i64 -1, i8* nonnull %6) | |
| @@ -591,7 +591,7 @@ | |
| %probe_read = call i64 inttoptr (i64 4 to i64 (i8*, i64, i8*)*)(i32* nonnull %_tracepoint_sched_sched_wakeup_new.pid, i64 4, i8* %2) | |
| %4 = load i32, i32* %_tracepoint_sched_sched_wakeup_new.pid, align 4 | |
| call void @llvm.lifetime.end.p0i8(i64 -1, i8* nonnull %3) | |
| - %5 = zext i32 %4 to i64 | |
| + %5 = sext i32 %4 to i64 | |
| store i64 %5, i8* %1, align 8 | |
| %6 = bitcast i64* %"@qtime_val" to i8* | |
| call void @llvm.lifetime.start.p0i8(i64 -1, i8* nonnull %6) | |
| @@ -634,7 +634,7 @@ | |
| %probe_read1 = call i64 inttoptr (i64 4 to i64 (i8*, i64, i8*)*)(i32* nonnull %_tracepoint_sched_sched_switch.prev_pid, i64 4, i8* %6) | |
| %8 = load i32, i32* %_tracepoint_sched_sched_switch.prev_pid, align 4 | |
| call void @llvm.lifetime.end.p0i8(i64 -1, i8* nonnull %7) | |
| - %9 = zext i32 %8 to i64 | |
| + %9 = sext i32 %8 to i64 | |
| store i64 %9, i8* %5, align 8 | |
| %10 = bitcast i64* %"@qtime_val" to i8* | |
| call void @llvm.lifetime.start.p0i8(i64 -1, i8* nonnull %10) | |
| @@ -654,7 +654,7 @@ | |
| %probe_read3 = call i64 inttoptr (i64 4 to i64 (i8*, i64, i8*)*)(i32* nonnull %_tracepoint_sched_sched_switch.next_pid, i64 4, i8* %12) | |
| %14 = load i32, i32* %_tracepoint_sched_sched_switch.next_pid, align 4 | |
| call void @llvm.lifetime.end.p0i8(i64 -1, i8* nonnull %13) | |
| - %15 = zext i32 %14 to i64 | |
| + %15 = sext i32 %14 to i64 | |
| store i64 %15, i8* %11, align 8 | |
| %pseudo4 = call i64 @llvm.bpf.pseudo(i64 1, i64 1) | |
| %lookup_elem = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i64 %pseudo4, [8 x i8]* nonnull %"@qtime_key2") | |
| @@ -722,7 +722,7 @@ | |
| %probe_read20 = call i64 inttoptr (i64 4 to i64 (i8*, i64, i8*)*)(i32* nonnull %_tracepoint_sched_sched_switch.next_pid19, i64 4, i8* %12) | |
| %46 = load i32, i32* %_tracepoint_sched_sched_switch.next_pid19, align 4 | |
| call void @llvm.lifetime.end.p0i8(i64 -1, i8* nonnull %45) | |
| - %47 = zext i32 %46 to i64 | |
| + %47 = sext i32 %46 to i64 | |
| store i64 %47, i8* %44, align 8 | |
| %pseudo21 = call i64 @llvm.bpf.pseudo(i64 1, i64 1) | |
| %delete_elem = call i64 inttoptr (i64 3 to i64 (i8*, i8*)*)(i64 %pseudo21, [8 x i8]* nonnull %"@qtime_key18") | |
| Checking runqlen | |
| Change detected for script: runqlen | |
| --- master_runqlen 2019-07-25 21:42:14.923975729 +0000 | |
| +++ new_runqlen 2019-07-25 21:42:15.183982030 +0000 | |
| @@ -280,7 +280,7 @@ | |
| call void @llvm.lifetime.start.p0i8(i64 -1, i8* %19) | |
| %20 = load i32, i32* %"$len" | |
| %21 = zext i32 %20 to i64 | |
| - %22 = icmp sgt i64 %21, 0 | |
| + %22 = icmp ugt i64 %21, 0 | |
| %23 = zext i1 %22 to i64 | |
| %true_cond = icmp ne i64 %23, 0 | |
| br i1 %true_cond, label %left, label %right | |
| Checking statsnoop | |
| Change detected for script: statsnoop | |
| --- master_statsnoop 2019-07-25 21:42:15.275984259 +0000 | |
| +++ new_statsnoop 2019-07-25 21:42:15.355986197 +0000 | |
| @@ -549,7 +549,7 @@ | |
| call void @llvm.lifetime.start.p0i8(i64 -1, i8* %13) | |
| %14 = load i64, i64* %"$ret" | |
| %15 = icmp sge i64 %14, 0 | |
| - %16 = zext i1 %15 to i64 | |
| + %16 = sext i1 %15 to i64 | |
| %true_cond = icmp ne i64 %16, 0 | |
| br i1 %true_cond, label %left, label %right | |
| @@ -724,7 +724,7 @@ | |
| call void @llvm.lifetime.start.p0i8(i64 -1, i8* %13) | |
| %14 = load i64, i64* %"$ret" | |
| %15 = icmp sge i64 %14, 0 | |
| - %16 = zext i1 %15 to i64 | |
| + %16 = sext i1 %15 to i64 | |
| %true_cond = icmp ne i64 %16, 0 | |
| br i1 %true_cond, label %left, label %right | |
| @@ -899,7 +899,7 @@ | |
| call void @llvm.lifetime.start.p0i8(i64 -1, i8* %13) | |
| %14 = load i64, i64* %"$ret" | |
| %15 = icmp sge i64 %14, 0 | |
| - %16 = zext i1 %15 to i64 | |
| + %16 = sext i1 %15 to i64 | |
| %true_cond = icmp ne i64 %16, 0 | |
| br i1 %true_cond, label %left, label %right | |
| @@ -1074,7 +1074,7 @@ | |
| call void @llvm.lifetime.start.p0i8(i64 -1, i8* %13) | |
| %14 = load i64, i64* %"$ret" | |
| %15 = icmp sge i64 %14, 0 | |
| - %16 = zext i1 %15 to i64 | |
| + %16 = sext i1 %15 to i64 | |
| %true_cond = icmp ne i64 %16, 0 | |
| br i1 %true_cond, label %left, label %right | |
| Checking syncsnoop | |
| Checking syscount | |
| Checking tcpaccept | |
| Checking tcpconnect | |
| Checking tcpdrop | |
| bpftrace failed on script: tcpdrop | |
| Checking tcpretrans | |
| bpftrace failed on script: tcpretrans | |
| Checking vfscount | |
| Checking vfsstat | |
| Checking writeback | |
| Change detected for script: writeback | |
| --- master_writeback 2019-07-25 21:42:21.788142055 +0000 | |
| +++ new_writeback 2019-07-25 21:42:21.896144671 +0000 | |
| @@ -669,7 +669,7 @@ | |
| %51 = load i32, i32* %_tracepoint_writeback_writeback_written.reason | |
| %52 = bitcast i32* %_tracepoint_writeback_writeback_written.reason to i8* | |
| call void @llvm.lifetime.end.p0i8(i64 -1, i8* %52) | |
| - %53 = zext i32 %51 to i64 | |
| + %53 = sext i32 %51 to i64 | |
| %54 = and i64 %53, 4294967295 | |
| %55 = getelementptr [8 x i8], [8 x i8]* %"@reason_key", i64 0, i64 0 | |
| store i64 %54, i8* %55 | |
| Checking xfsdist | |
| vagrant@ubuntu-cosmic:~$ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| BPFTRACE=$(command -v bpftrace) | |
| BPFTRACE_MASTER=$(command -v bpftrace_master) | |
| TOOLDIR="/vagrant/tools/" | |
| TMPDIR=$(mktemp -d) | |
| [[ $? -ne 0 || -z $TMPDIR ]] && (echo "Failed to create tmp dir"; exit 10) | |
| [[ -z $BPFTRACE ]] && (echo "bpftrace not found"; exit 11) | |
| [[ -z $BPFTRACE_MASTER ]] && (echo "bpftrace_master not found"; exit 12) | |
| cd $TMPDIR | |
| function hash() { | |
| file="${1}" | |
| sha1sum "${1}" | awk '{print $1}' | |
| } | |
| for script in ${TOOLDIR}/*.bt; do | |
| s=$(basename ${script/.bt/}) | |
| echo "Checking $s" | |
| #$BPFTRACE_MASTER -dd "$script" 2>&1 | sed -n '/After opt/,$p' > "master_${s}" | |
| #$BPFTRACE -dd "${script}" 2>&1 | sed -n '/After opt/,$p' > "new_${s}" | |
| $BPFTRACE_MASTER -dd "$script" > "master_${s}" 2>&1 | |
| $BPFTRACE -dd "${script}" > "new_${s}" 2>&1 | |
| if [ $? -ne 0 ]; then | |
| echo "bpftrace failed on script: ${s}" | |
| continue | |
| fi | |
| if [[ $(hash "master_${s}") != $(hash "new_${s}") ]]; then | |
| echo "Change detected for script: ${s}" | |
| diff -b -u "master_${s}" "new_${s}" | |
| fi | |
| done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment