From 32a4fd3f900004415ac9066b7e7843f1b8d65fd9 Mon Sep 17 00:00:00 2001 From: Mark Drayton Date: Wed, 13 Jul 2016 18:24:56 +0100 Subject: [PATCH] fileslower: try probing vfs_write if __vfs_write is missing --- tools/fileslower.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/fileslower.py b/tools/fileslower.py index 50856db2f7be..20c963500b89 100755 --- a/tools/fileslower.py +++ b/tools/fileslower.py @@ -187,9 +187,14 @@ def signal_ignore(signal, frame): # the parent functions, at the cost of more overhead, instead. # Ultimately, we should be using [V]FS tracepoints. b.attach_kprobe(event="__vfs_read", fn_name="trace_read_entry") -b.attach_kprobe(event="__vfs_write", fn_name="trace_write_entry") b.attach_kretprobe(event="__vfs_read", fn_name="trace_read_return") -b.attach_kretprobe(event="__vfs_write", fn_name="trace_write_return") +try: + b.attach_kprobe(event="__vfs_write", fn_name="trace_write_entry") + b.attach_kretprobe(event="__vfs_write", fn_name="trace_write_return") +except: + # older kernels don't have __vfs_write so try vfs_write instead + b.attach_kprobe(event="vfs_write", fn_name="trace_write_entry") + b.attach_kretprobe(event="vfs_write", fn_name="trace_write_return") TASK_COMM_LEN = 16 # linux/sched.h DNAME_INLINE_LEN = 32 # linux/dcache.h