[PATCH perf/core 00/11] uprobes: Add unique uprobe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



hi,
this patchset adds unique uprobe and support to change userspace
task's registers from within bpf uprobe program.

We recently had several requests for tetragon to be able to change
user application function return value or divert its execution through
instruction pointer change.

v1 changes (from rfc [1]):
- added unique probe support
- added more tests

thanks,
jirka


[1] https://lore.kernel.org/bpf/20250801210238.2207429-1-jolsa@xxxxxxxxxx/
---
Jiri Olsa (11):
      uprobes: Add unique flag to uprobe consumer
      uprobes: Skip emulate/sstep on unique uprobe when ip is changed
      perf: Add support to attach standard unique uprobe
      bpf: Add support to attach uprobe_multi unique uprobe
      bpf: Allow uprobe program to change context registers
      libbpf: Add support to attach unique uprobe_multi uprobe
      libbpf: Add support to attach generic unique uprobe
      selftests/bpf: Add uprobe multi context registers changes test
      selftests/bpf: Add uprobe multi context ip register change test
      selftests/bpf: Add uprobe multi unique attach test
      selftests/bpf: Add uprobe unique attach test

 include/linux/bpf.h                                        |   1 +
 include/linux/trace_events.h                               |   2 +-
 include/linux/uprobes.h                                    |   1 +
 include/uapi/linux/bpf.h                                   |   3 +-
 kernel/events/core.c                                       |  12 ++++-
 kernel/events/uprobes.c                                    |  43 ++++++++++++++--
 kernel/trace/bpf_trace.c                                   |   7 +--
 kernel/trace/trace_event_perf.c                            |   4 +-
 kernel/trace/trace_probe.h                                 |   2 +-
 kernel/trace/trace_uprobe.c                                |   9 ++--
 tools/include/uapi/linux/bpf.h                             |   3 +-
 tools/lib/bpf/libbpf.c                                     |  36 +++++++++++---
 tools/lib/bpf/libbpf.h                                     |   8 ++-
 tools/testing/selftests/bpf/prog_tests/bpf_cookie.c        |   1 +
 tools/testing/selftests/bpf/prog_tests/uprobe.c            | 111 ++++++++++++++++++++++++++++++++++++++++-
 tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c | 248 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 tools/testing/selftests/bpf/progs/uprobe_multi.c           |  38 ++++++++++++++
 tools/testing/selftests/bpf/progs/uprobe_multi_unique.c    |  34 +++++++++++++
 18 files changed, 534 insertions(+), 29 deletions(-)
 create mode 100644 tools/testing/selftests/bpf/progs/uprobe_multi_unique.c




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux