1. 27 Jan, 2022 1 commit
    • Andrii Nakryiko's avatar
      selftests/bpf: fix uprobe offset calculation in selftests · ff943683
      Andrii Nakryiko authored
      Fix how selftests determine relative offset of a function that is
      uprobed. Previously, there was an assumption that uprobed function is
      always in the first executable region, which is not always the case
      (libbpf CI hits this case now). So get_base_addr() approach in isolation
      doesn't work anymore. So teach get_uprobe_offset() to determine correct
      memory mapping and calculate uprobe offset correctly.
      
      While at it, I merged together two implementations of
      get_uprobe_offset() helper, moving powerpc64-specific logic inside (had
      to add extra {} block to avoid unused variable error for insn).
      
      Also ensured that uprobed functions are never inlined, but are still
      static (and thus local to each selftest), by using a no-op asm volatile
      block internally. I didn't want to keep them global __weak, because some
      tests use uprobe's ref counter offset (to test USDT-like logic) which is
      not compatible with non-refcounted uprobe. So it's nicer to have each
      test uprobe target local to the file and guaranteed to not be inlined or
      skipped by the compiler (which can happen with static functions,
      especially if compiling selftests with -O2).
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Link: https://lore.kernel.org/r/20220126193058.3390292-1-andrii@kernel.orgSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      ff943683
  2. 26 Jan, 2022 11 commits
  3. 25 Jan, 2022 13 commits
  4. 24 Jan, 2022 15 commits