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). Changes since v4: https://lore.kernel.org/linux-trace-devel/20210702142242.163989-1-rostedt@xxxxxxxxxxx/ - Rename tracefs_kprobe_type() to tracefs_kprobe_info() that not only returns the type, but also allows the user to get the strings for the type (before the ':') the addr, and the format. - Have tracefs_get_kprobes() take a type parameter to explicitly ask for a kprobes or kretprobes. - Added a helper function parse_kprobes() to remove the parsing of the kprobe_events file out of the main logic. - Updated the tracefs_utest to use the kprobe APIs instead of just writing to the kprobe file directly (This helped catch a lot of bugs). Steven Rostedt (VMware) (10): libtracefs: Implement tracefs_instances() libtracefs: Implement tracefs_kprobe_raw() libtracefs: Implement tracefs_kretprobe_raw() libtracefs: Implement tracefs_get_kprobes() libtracefs: Add helper function to parse kprobes libtracefs: Implement tracefs_kprobe_info() libtracefs: Implement tracefs_kprobe_clear_all() to remove all kprobes libtracefs: Implement tracefs_kprobe_clear_probe() libtracefs: Add man pages for kprobe functions libtracefs: Update the unit tests to use the kprobe API instead Documentation/libtracefs-kprobes.txt | 297 ++++++++++++++++ include/tracefs.h | 17 + src/Makefile | 1 + src/tracefs-instance.c | 76 +++++ src/tracefs-kprobes.c | 485 +++++++++++++++++++++++++++ utest/tracefs-utest.c | 195 +++++++++-- 6 files changed, 1042 insertions(+), 29 deletions(-) create mode 100644 Documentation/libtracefs-kprobes.txt create mode 100644 src/tracefs-kprobes.c -- 2.30.2