|
|
33c334 |
From 74e25edb248a62e437cdc1b4aaa8a0f44c112880 Mon Sep 17 00:00:00 2001
|
|
|
33c334 |
From: Jerome Marchand <jmarchan@redhat.com>
|
|
|
33c334 |
Date: Mon, 10 Dec 2018 08:54:50 +0100
|
|
|
33c334 |
Subject: [PATCH] tools: prepare block tools for the removing of legacy I/O
|
|
|
33c334 |
path (#2070)
|
|
|
33c334 |
|
|
|
33c334 |
Recent -next kernels don't have blk_start_request() function
|
|
|
33c334 |
anymore. It has been removed in a recent cleanup. bio* tools should be
|
|
|
33c334 |
able to handle the lack of this probe.
|
|
|
33c334 |
---
|
|
|
33c334 |
tools/biolatency.py | 3 ++-
|
|
|
33c334 |
tools/biosnoop.py | 3 ++-
|
|
|
33c334 |
tools/biotop.py | 3 ++-
|
|
|
33c334 |
3 files changed, 6 insertions(+), 3 deletions(-)
|
|
|
33c334 |
|
|
|
33c334 |
diff --git a/tools/biolatency.py b/tools/biolatency.py
|
|
|
33c334 |
index 3879af1..68aa577 100755
|
|
|
33c334 |
--- a/tools/biolatency.py
|
|
|
33c334 |
+++ b/tools/biolatency.py
|
|
|
33c334 |
@@ -116,7 +116,8 @@ b = BPF(text=bpf_text)
|
|
|
33c334 |
if args.queued:
|
|
|
33c334 |
b.attach_kprobe(event="blk_account_io_start", fn_name="trace_req_start")
|
|
|
33c334 |
else:
|
|
|
33c334 |
- b.attach_kprobe(event="blk_start_request", fn_name="trace_req_start")
|
|
|
33c334 |
+ if BPF.get_kprobe_functions(b'blk_start_request'):
|
|
|
33c334 |
+ b.attach_kprobe(event="blk_start_request", fn_name="trace_req_start")
|
|
|
33c334 |
b.attach_kprobe(event="blk_mq_start_request", fn_name="trace_req_start")
|
|
|
33c334 |
b.attach_kprobe(event="blk_account_io_completion",
|
|
|
33c334 |
fn_name="trace_req_completion")
|
|
|
33c334 |
diff --git a/tools/biosnoop.py b/tools/biosnoop.py
|
|
|
33c334 |
index 2b1e77d..d036c0b 100755
|
|
|
33c334 |
--- a/tools/biosnoop.py
|
|
|
33c334 |
+++ b/tools/biosnoop.py
|
|
|
33c334 |
@@ -122,7 +122,8 @@ int trace_req_completion(struct pt_regs *ctx, struct request *req)
|
|
|
33c334 |
}
|
|
|
33c334 |
""", debug=0)
|
|
|
33c334 |
b.attach_kprobe(event="blk_account_io_start", fn_name="trace_pid_start")
|
|
|
33c334 |
-b.attach_kprobe(event="blk_start_request", fn_name="trace_req_start")
|
|
|
33c334 |
+if BPF.get_kprobe_functions(b'blk_start_request'):
|
|
|
33c334 |
+ b.attach_kprobe(event="blk_start_request", fn_name="trace_req_start")
|
|
|
33c334 |
b.attach_kprobe(event="blk_mq_start_request", fn_name="trace_req_start")
|
|
|
33c334 |
b.attach_kprobe(event="blk_account_io_completion",
|
|
|
33c334 |
fn_name="trace_req_completion")
|
|
|
33c334 |
diff --git a/tools/biotop.py b/tools/biotop.py
|
|
|
33c334 |
index c6e1ca2..b2b5089 100755
|
|
|
33c334 |
--- a/tools/biotop.py
|
|
|
33c334 |
+++ b/tools/biotop.py
|
|
|
33c334 |
@@ -173,7 +173,8 @@ int trace_req_completion(struct pt_regs *ctx, struct request *req)
|
|
|
33c334 |
|
|
|
33c334 |
b = BPF(text=bpf_text)
|
|
|
33c334 |
b.attach_kprobe(event="blk_account_io_start", fn_name="trace_pid_start")
|
|
|
33c334 |
-b.attach_kprobe(event="blk_start_request", fn_name="trace_req_start")
|
|
|
33c334 |
+if BPF.get_kprobe_functions(b'blk_start_request'):
|
|
|
33c334 |
+ b.attach_kprobe(event="blk_start_request", fn_name="trace_req_start")
|
|
|
33c334 |
b.attach_kprobe(event="blk_mq_start_request", fn_name="trace_req_start")
|
|
|
33c334 |
b.attach_kprobe(event="blk_account_io_completion",
|
|
|
33c334 |
fn_name="trace_req_completion")
|
|
|
33c334 |
--
|
|
|
33c334 |
2.19.2
|
|
|
33c334 |
|