From 4f444a527e0b42be5d5a324c91714e0000d37019 Mon Sep 17 00:00:00 2001 From: Marcin Skarbek Date: Mon, 28 Aug 2017 17:39:50 +0200 Subject: [PATCH] zfs tools fix for zpl_read/zpl_write removal --- tools/zfsdist.py | 22 ++++++++++++++++++---- tools/zfsslower.py | 22 ++++++++++++++++++---- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/tools/zfsdist.py b/tools/zfsdist.py index 2d9ae217..9c6d3e0a 100755 --- a/tools/zfsdist.py +++ b/tools/zfsdist.py @@ -133,12 +133,26 @@ if debug: b = BPF(text=bpf_text) # common file functions -b.attach_kprobe(event="zpl_read", fn_name="trace_entry") -b.attach_kprobe(event="zpl_write", fn_name="trace_entry") +if BPF.get_kprobe_functions('zpl_iter'): + b.attach_kprobe(event="zpl_iter_read", fn_name="trace_entry") + b.attach_kprobe(event="zpl_iter_write", fn_name="trace_entry") +elif BPF.get_kprobe_functions('zpl_aio'): + b.attach_kprobe(event="zpl_aio_read", fn_name="trace_entry") + b.attach_kprobe(event="zpl_aio_write", fn_name="trace_entry") +else: + b.attach_kprobe(event="zpl_read", fn_name="trace_entry") + b.attach_kprobe(event="zpl_write", fn_name="trace_entry") b.attach_kprobe(event="zpl_open", fn_name="trace_entry") b.attach_kprobe(event="zpl_fsync", fn_name="trace_entry") -b.attach_kretprobe(event="zpl_read", fn_name="trace_read_return") -b.attach_kretprobe(event="zpl_write", fn_name="trace_write_return") +if BPF.get_kprobe_functions('zpl_iter'): + b.attach_kretprobe(event="zpl_iter_read", fn_name="trace_read_return") + b.attach_kretprobe(event="zpl_iter_write", fn_name="trace_write_return") +elif BPF.get_kprobe_functions('zpl_aio'): + b.attach_kretprobe(event="zpl_aio_read", fn_name="trace_read_return") + b.attach_kretprobe(event="zpl_aio_write", fn_name="trace_write_return") +else: + b.attach_kretprobe(event="zpl_read", fn_name="trace_read_return") + b.attach_kretprobe(event="zpl_write", fn_name="trace_write_return") b.attach_kretprobe(event="zpl_open", fn_name="trace_open_return") b.attach_kretprobe(event="zpl_fsync", fn_name="trace_fsync_return") diff --git a/tools/zfsslower.py b/tools/zfsslower.py index f5e8cbb4..1e61de74 100755 --- a/tools/zfsslower.py +++ b/tools/zfsslower.py @@ -276,12 +276,26 @@ def print_event(cpu, data, size): b = BPF(text=bpf_text) # common file functions -b.attach_kprobe(event="zpl_read", fn_name="trace_rw_entry") -b.attach_kprobe(event="zpl_write", fn_name="trace_rw_entry") +if BPF.get_kprobe_functions('zpl_iter'): + b.attach_kprobe(event="zpl_iter_read", fn_name="trace_rw_entry") + b.attach_kprobe(event="zpl_iter_write", fn_name="trace_rw_entry") +elif BPF.get_kprobe_functions('zpl_aio'): + b.attach_kprobe(event="zpl_aio_read", fn_name="trace_rw_entry") + b.attach_kprobe(event="zpl_aio_write", fn_name="trace_rw_entry") +else: + b.attach_kprobe(event="zpl_read", fn_name="trace_rw_entry") + b.attach_kprobe(event="zpl_write", fn_name="trace_rw_entry") b.attach_kprobe(event="zpl_open", fn_name="trace_open_entry") b.attach_kprobe(event="zpl_fsync", fn_name="trace_fsync_entry") -b.attach_kretprobe(event="zpl_read", fn_name="trace_read_return") -b.attach_kretprobe(event="zpl_write", fn_name="trace_write_return") +if BPF.get_kprobe_functions('zpl_iter'): + b.attach_kretprobe(event="zpl_iter_read", fn_name="trace_read_return") + b.attach_kretprobe(event="zpl_iter_write", fn_name="trace_write_return") +elif BPF.get_kprobe_functions('zpl_aio'): + b.attach_kretprobe(event="zpl_aio_read", fn_name="trace_read_return") + b.attach_kretprobe(event="zpl_aio_write", fn_name="trace_write_return") +else: + b.attach_kretprobe(event="zpl_read", fn_name="trace_read_return") + b.attach_kretprobe(event="zpl_write", fn_name="trace_write_return") b.attach_kretprobe(event="zpl_open", fn_name="trace_open_return") b.attach_kretprobe(event="zpl_fsync", fn_name="trace_fsync_return") -- 2.34.1