zfs tools fix for zpl_read/zpl_write removal
authorMarcin Skarbek <git@skarbek.name>
Mon, 28 Aug 2017 15:39:50 +0000 (17:39 +0200)
committerMarcin Skarbek <git@skarbek.name>
Mon, 28 Aug 2017 15:39:50 +0000 (17:39 +0200)
tools/zfsdist.py
tools/zfsslower.py

index 2d9ae2172fab5934010957fbae5c9fd2e19bf39f..9c6d3e0a64de32661c8f2fd3211d576cb27ee953 100755 (executable)
@@ -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")
 
index f5e8cbb4ee6f22495e58014c08b035275faef2b9..1e61de745bcc318e7297ec9bab14e9332057f339 100755 (executable)
@@ -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")