mbox series

[PATCHv9,bpf-next,00/13] bpf: Add uprobe session support

Message ID 20241108134544.480660-1-jolsa@kernel.org (mailing list archive)
Headers show
Series bpf: Add uprobe session support | expand

Message

Jiri Olsa Nov. 8, 2024, 1:45 p.m. UTC
hi,
this patchset is adding support for session uprobe attachment and
using it through bpf link for bpf programs.

The session means that the uprobe consumer is executed on entry
and return of probed function with additional control:
  - entry callback can control execution of the return callback
  - entry and return callbacks can share data/cookie

Uprobe changes (on top of perf/core [1] are posted in here [2].
This patchset is based on bpf-next/master and will be merged once
we pull [2] in bpf-next/master.

v9 changes:
  - rebased on bpf-next/master with perf/core tag merged (thanks Peter!)

thanks,
jirka


[1] git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git perf/core
[2] https://lore.kernel.org/bpf/20241018202252.693462-1-jolsa@kernel.org/T/#ma43c549c4bf684ca1b17fa638aa5e7cbb46893e9
---
Jiri Olsa (13):
      bpf: Allow return values 0 and 1 for kprobe session
      bpf: Force uprobe bpf program to always return 0
      bpf: Add support for uprobe multi session attach
      bpf: Add support for uprobe multi session context
      libbpf: Add support for uprobe multi session attach
      selftests/bpf: Add uprobe session test
      selftests/bpf: Add uprobe session cookie test
      selftests/bpf: Add uprobe session recursive test
      selftests/bpf: Add uprobe session verifier test for return value
      selftests/bpf: Add kprobe session verifier test for return value
      selftests/bpf: Add uprobe session single consumer test
      selftests/bpf: Add uprobe sessions to consumer test
      selftests/bpf: Add threads to consumer test

 include/uapi/linux/bpf.h                                           |   1 +
 kernel/bpf/syscall.c                                               |   9 ++-
 kernel/bpf/verifier.c                                              |  10 +++
 kernel/trace/bpf_trace.c                                           |  57 +++++++++++----
 tools/include/uapi/linux/bpf.h                                     |   1 +
 tools/lib/bpf/bpf.c                                                |   1 +
 tools/lib/bpf/libbpf.c                                             |  19 ++++-
 tools/lib/bpf/libbpf.h                                             |   4 +-
 tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c         |   2 +
 tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c         | 337 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
 tools/testing/selftests/bpf/progs/kprobe_multi_verifier.c          |  31 ++++++++
 tools/testing/selftests/bpf/progs/uprobe_multi_consumers.c         |   6 +-
 tools/testing/selftests/bpf/progs/uprobe_multi_session.c           |  71 ++++++++++++++++++
 tools/testing/selftests/bpf/progs/uprobe_multi_session_cookie.c    |  48 ++++++++++++
 tools/testing/selftests/bpf/progs/uprobe_multi_session_recursive.c |  44 +++++++++++
 tools/testing/selftests/bpf/progs/uprobe_multi_session_single.c    |  44 +++++++++++
 tools/testing/selftests/bpf/progs/uprobe_multi_verifier.c          |  31 ++++++++
 17 files changed, 653 insertions(+), 63 deletions(-)
 create mode 100644 tools/testing/selftests/bpf/progs/kprobe_multi_verifier.c
 create mode 100644 tools/testing/selftests/bpf/progs/uprobe_multi_session.c
 create mode 100644 tools/testing/selftests/bpf/progs/uprobe_multi_session_cookie.c
 create mode 100644 tools/testing/selftests/bpf/progs/uprobe_multi_session_recursive.c
 create mode 100644 tools/testing/selftests/bpf/progs/uprobe_multi_session_single.c
 create mode 100644 tools/testing/selftests/bpf/progs/uprobe_multi_verifier.c

Comments

patchwork-bot+netdevbpf@kernel.org Nov. 8, 2024, 6:40 p.m. UTC | #1
Hello:

This series was applied to bpf/bpf-next.git (master)
by Andrii Nakryiko <andrii@kernel.org>:

On Fri,  8 Nov 2024 14:45:31 +0100 you wrote:
> hi,
> this patchset is adding support for session uprobe attachment and
> using it through bpf link for bpf programs.
> 
> The session means that the uprobe consumer is executed on entry
> and return of probed function with additional control:
>   - entry callback can control execution of the return callback
>   - entry and return callbacks can share data/cookie
> 
> [...]

Here is the summary with links:
  - [PATCHv9,bpf-next,01/13] bpf: Allow return values 0 and 1 for kprobe session
    https://git.kernel.org/bpf/bpf-next/c/1c9b65d7b569
  - [PATCHv9,bpf-next,02/13] bpf: Force uprobe bpf program to always return 0
    https://git.kernel.org/bpf/bpf-next/c/fb9618060bb7
  - [PATCHv9,bpf-next,03/13] bpf: Add support for uprobe multi session attach
    https://git.kernel.org/bpf/bpf-next/c/4c2c20b698ce
  - [PATCHv9,bpf-next,04/13] bpf: Add support for uprobe multi session context
    https://git.kernel.org/bpf/bpf-next/c/362ced90a9b9
  - [PATCHv9,bpf-next,05/13] libbpf: Add support for uprobe multi session attach
    https://git.kernel.org/bpf/bpf-next/c/894d0bd715f8
  - [PATCHv9,bpf-next,06/13] selftests/bpf: Add uprobe session test
    https://git.kernel.org/bpf/bpf-next/c/1932f3ffe604
  - [PATCHv9,bpf-next,07/13] selftests/bpf: Add uprobe session cookie test
    https://git.kernel.org/bpf/bpf-next/c/dce1b3b721b8
  - [PATCHv9,bpf-next,08/13] selftests/bpf: Add uprobe session recursive test
    https://git.kernel.org/bpf/bpf-next/c/9236020b0896
  - [PATCHv9,bpf-next,09/13] selftests/bpf: Add uprobe session verifier test for return value
    https://git.kernel.org/bpf/bpf-next/c/a773e1d169db
  - [PATCHv9,bpf-next,10/13] selftests/bpf: Add kprobe session verifier test for return value
    https://git.kernel.org/bpf/bpf-next/c/7dd198ccbe43
  - [PATCHv9,bpf-next,11/13] selftests/bpf: Add uprobe session single consumer test
    https://git.kernel.org/bpf/bpf-next/c/beab56332941
  - [PATCHv9,bpf-next,12/13] selftests/bpf: Add uprobe sessions to consumer test
    https://git.kernel.org/bpf/bpf-next/c/f343d91be2cb
  - [PATCHv9,bpf-next,13/13] selftests/bpf: Add threads to consumer test
    https://git.kernel.org/bpf/bpf-next/c/90aac4610851

You are awesome, thank you!