Blame SOURCES/tools-prepare-block-tools-for-the-removing-of-legacy.patch

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