Hi, In the first patchset, my intension was to remove trace_probe_tmpl.h, just keep a unified process_fetch_insn and process_fetch_insn_bottom in trace_probe.c for all *probes. is_uprobe was the most important move to approach. If it was not accepted, the whole patchset couldn't stand. Then I change my goal to at least no warnings or errors when impelenting a new feature based on trace probe if it includes trace_probe_tmpl.h by provideing default behaviors. What's more, it also removes redundant code in kprobe and eprobe. --- v2: 1, reorganize patchset. v3: 1, mark nokprobe_inline for get_event_field. 2, remove warnings reported from kernel test robot. 3, fix errors reported from kernel test robot. v4: 1, reset changes in v3(2) and v3(3), they are not reasonable fix. 2, fixed errors by adding "#ifdef CONFIG_HAVE_REGS_AND_STACK_ACCESS_API". v5: 1, move process_fetch_insn to trace_probe_tmpl.h in another patch. Song Chen (3): kernel/trace: Introduce trace_probe_print_args and use it in *probes kernel/trace: Provide default impelentations defined in trace_probe_tmpl.h kernel/trace: extract common part in process_fetch_insn kernel/trace/trace_eprobe.c | 83 ++++--------------------------- kernel/trace/trace_events_synth.c | 6 +-- kernel/trace/trace_kprobe.c | 72 +++------------------------ kernel/trace/trace_probe.c | 27 ++++++++++ kernel/trace/trace_probe.h | 2 + kernel/trace/trace_probe_kernel.h | 30 ++++++++--- kernel/trace/trace_probe_tmpl.h | 48 ++++++++---------- kernel/trace/trace_uprobe.c | 13 ++--- 8 files changed, 96 insertions(+), 185 deletions(-) -- 2.25.1