From d2878e6e9f7c39df654aba3c785af7285e71339e Mon Sep 17 00:00:00 2001 From: changtao Date: Sun, 14 Jul 2024 06:30:37 +0800 Subject: [PATCH] fix-biostack-use-tracepoints-instead-kprobe --- ...stack-use-tracepoints-instead-kprobe.patch | 32 +++++++++++++++++++ bpftrace.spec | 13 ++++++-- 2 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 backport-fix-biostack-use-tracepoints-instead-kprobe.patch diff --git a/backport-fix-biostack-use-tracepoints-instead-kprobe.patch b/backport-fix-biostack-use-tracepoints-instead-kprobe.patch new file mode 100644 index 0000000..7e087c8 --- /dev/null +++ b/backport-fix-biostack-use-tracepoints-instead-kprobe.patch @@ -0,0 +1,32 @@ +diff -Nuar bpftrace-0.19.1/tools/biostacks.bt bpftrace-0.19.1.new/tools/biostacks.bt +--- bpftrace-0.19.1/tools/biostacks.bt 2023-10-04 16:18:18.000000000 +0800 ++++ bpftrace-0.19.1.new/tools/biostacks.bt 2024-07-09 11:12:36.883882941 +0800 +@@ -18,20 +18,18 @@ + printf("Tracing block I/O with init stacks. Hit Ctrl-C to end.\n"); + } + +-kprobe:blk_account_io_start, +-kprobe:__blk_account_io_start ++tracepoint:block:block_io_start + { +- @reqstack[arg0] = kstack; +- @reqts[arg0] = nsecs; ++ @reqstack[args.dev, args.sector] = kstack; ++ @reqts[args.dev, args.sector] = nsecs; + } + +-kprobe:blk_start_request, +-kprobe:blk_mq_start_request +-/@reqts[arg0]/ ++tracepoint:block:block_rq_issue ++/@reqts[args.dev, args.sector]/ + { +- @usecs[@reqstack[arg0]] = hist(nsecs - @reqts[arg0]); +- delete(@reqstack[arg0]); +- delete(@reqts[arg0]); ++ @usecs[@reqstack[args.dev, args.sector]] = hist(nsecs - @reqts[args.dev, args.sector]); ++ delete(@reqstack[args.dev, args.sector]); ++ delete(@reqts[args.dev, args.sector]); + } + + END diff --git a/bpftrace.spec b/bpftrace.spec index 6fac9bd..19d5a01 100644 --- a/bpftrace.spec +++ b/bpftrace.spec @@ -1,15 +1,15 @@ Name: bpftrace Version: 0.19.1 -Release: 1 +Release: 3 Summary: High-level tracing language for Linux eBPF License: ASL 2.0 URL: https://github.com/iovisor/bpftrace Source0: %{url}/archive/refs/tags/v%{version}.tar.gz - +Patch0001: backport-fix-biostack-use-tracepoints-instead-kprobe.patch # Arches will be included as upstream support is added and dependencies are # satisfied in the respective arches -ExclusiveArch: x86_64 %{power64} aarch64 riscv64 +ExclusiveArch: x86_64 %{power64} aarch64 riscv64 loongarch64 BuildRequires: gcc-c++ bison flex cmake elfutils-libelf-devel BuildRequires: zlib-devel llvm-devel clang clang-tools-extra clang-devel llvm-test @@ -68,6 +68,13 @@ find %{buildroot}%{_datadir}/%{name}/tools -type f -exec \ %changelog +* Tue Jul 16 2024 changtao - 0.19.1-3 +- fix biostacks.bt for cannot attach kprobe because blk_account_io_start change to inline function +- for kernel 6.6.0 + +* Tue Feb 27 2024 Huang Yang - 0.19.1-2 +- add loongarch64 support + * Mon Jan 08 2024 Paul Thomas - 0.19.1-1 - update to version 0.19.1 -- Gitee