From: "Steven Rostedt (VMware)" <rostedt@xxxxxxxxxxx> Add a tracefs_kprobe_raw() to facilitate adding kprobe events. It's denoted as "raw" because it still requires knowing the complex format of a kprobe, but at least it helps with other formats: p:[[system/]event] addr fmt The user only needs to know the "fmt" part above, and not worry about what file to open, or how to open it. Also add a tracefs_kprobe_clear() to clear all kprobes and a tracefs_kprobe_clear_probe() to clear an individual kprobe. Both have a "force" parameter, that if set, will then try to disable the kprobe in all instances (including the top) and then remove the kprobe(s). (Man pages still coming after this). Changes since v1: - Added a tracefs_instances() to get the names of all instances - Rewrote the tracefs_kprobe_clear*() to use the tracefs_instances, which simplified the code tremendously. - Do not fail on failed: allocating various memory, disabling events, finding instances, etc, in the tracefs_kprobe_clear*() because it may still succeed, if the failed part were not what was causing it to not succeed. Steven Rostedt (VMware) (4): libtracefs: Implement tracefs_instances() libtracefs: Implement tracefs_kprobe_raw() libtracefs: Implement tracefs_kprobe_clear() to remove all kprobes libtracefs: Implement tracefs_kprobe_clear_probe() include/tracefs.h | 6 ++ src/Makefile | 1 + src/tracefs-instance.c | 78 +++++++++++++++ src/tracefs-kprobes.c | 215 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 300 insertions(+) create mode 100644 src/tracefs-kprobes.c -- 2.30.2