Commit 74e25edb authored by Jerome Marchand's avatar Jerome Marchand Committed by yonghong-song

tools: prepare block tools for the removing of legacy I/O path (#2070)

Recent -next kernels don't have blk_start_request() function
anymore. It has been removed in a recent cleanup. bio* tools should be
able to handle the lack of this probe.
parent 218f7482
...@@ -116,6 +116,7 @@ b = BPF(text=bpf_text) ...@@ -116,6 +116,7 @@ b = BPF(text=bpf_text)
if args.queued: if args.queued:
b.attach_kprobe(event="blk_account_io_start", fn_name="trace_req_start") b.attach_kprobe(event="blk_account_io_start", fn_name="trace_req_start")
else: else:
if BPF.get_kprobe_functions(b'blk_start_request'):
b.attach_kprobe(event="blk_start_request", fn_name="trace_req_start") b.attach_kprobe(event="blk_start_request", fn_name="trace_req_start")
b.attach_kprobe(event="blk_mq_start_request", fn_name="trace_req_start") b.attach_kprobe(event="blk_mq_start_request", fn_name="trace_req_start")
b.attach_kprobe(event="blk_account_io_completion", b.attach_kprobe(event="blk_account_io_completion",
......
...@@ -122,7 +122,8 @@ int trace_req_completion(struct pt_regs *ctx, struct request *req) ...@@ -122,7 +122,8 @@ int trace_req_completion(struct pt_regs *ctx, struct request *req)
} }
""", debug=0) """, debug=0)
b.attach_kprobe(event="blk_account_io_start", fn_name="trace_pid_start") b.attach_kprobe(event="blk_account_io_start", fn_name="trace_pid_start")
b.attach_kprobe(event="blk_start_request", fn_name="trace_req_start") if BPF.get_kprobe_functions(b'blk_start_request'):
b.attach_kprobe(event="blk_start_request", fn_name="trace_req_start")
b.attach_kprobe(event="blk_mq_start_request", fn_name="trace_req_start") b.attach_kprobe(event="blk_mq_start_request", fn_name="trace_req_start")
b.attach_kprobe(event="blk_account_io_completion", b.attach_kprobe(event="blk_account_io_completion",
fn_name="trace_req_completion") fn_name="trace_req_completion")
......
...@@ -173,7 +173,8 @@ if args.ebpf: ...@@ -173,7 +173,8 @@ if args.ebpf:
b = BPF(text=bpf_text) b = BPF(text=bpf_text)
b.attach_kprobe(event="blk_account_io_start", fn_name="trace_pid_start") b.attach_kprobe(event="blk_account_io_start", fn_name="trace_pid_start")
b.attach_kprobe(event="blk_start_request", fn_name="trace_req_start") if BPF.get_kprobe_functions(b'blk_start_request'):
b.attach_kprobe(event="blk_start_request", fn_name="trace_req_start")
b.attach_kprobe(event="blk_mq_start_request", fn_name="trace_req_start") b.attach_kprobe(event="blk_mq_start_request", fn_name="trace_req_start")
b.attach_kprobe(event="blk_account_io_completion", b.attach_kprobe(event="blk_account_io_completion",
fn_name="trace_req_completion") fn_name="trace_req_completion")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment