Commit Graph

2 Commits

Author SHA1 Message Date
Michael Petlan 6e801c9a78 perf bpf: 8 byte align bpil data
Bugzilla: https://bugzilla.redhat.com/2123231

upstream
========
commit 579d6c6d77a7b55d74db8a506d5fc0c77fb1a5e1
Author: Ian Rogers <irogers@google.com>
Date: Mon Jun 13 18:47:14 2022 -0700

description
===========
bpil data is accessed assuming 64-bit alignment resulting in undefined
behavior as the data is just byte aligned. With an -fsanitize=undefined
build the following errors are observed:

  $ sudo perf record -a sleep 1
  util/bpf-event.c:310:22: runtime error: load of misaligned address 0x55f61084520f for type '__u64', which requires 8 byte alignment
  0x55f61084520f: note: pointer points here
   a8 fe ff ff 3c  51 d3 c0 ff ff ff ff 04  84 d3 c0 ff ff ff ff d8  aa d3 c0 ff ff ff ff a4  c0 d3 c0
               ^
  util/bpf-event.c:311:20: runtime error: load of misaligned address 0x55f61084522f for type '__u32', which requires 4 byte alignment
  0x55f61084522f: note: pointer points here
   ff ff ff ff c7  17 00 00 f1 02 00 00 1f  04 00 00 58 04 00 00 00  00 00 00 0f 00 00 00 63  02 00 00
               ^
  util/bpf-event.c:198:33: runtime error: member access within misaligned address 0x55f61084523f for type 'const struct bpf_func_info', which requires 4 byte alignment
  0x55f61084523f: note: pointer points here
   58 04 00 00 00  00 00 00 0f 00 00 00 63  02 00 00 3b 00 00 00 ab  02 00 00 44 00 00 00 14  03 00 00

Correct this by rouding up the data sizes and aligning the pointers.

Signed-off-by: Michael Petlan <mpetlan@redhat.com>
2022-09-21 07:23:14 +02:00
Michael Petlan 0d4b9186a3 perf bpf: Pull in bpf_program__get_prog_info_linear()
Bugzilla: https://bugzilla.redhat.com/2069073

upstream
========
commit 6ac22d036f86c4e2d38bea1108672f947f7facca
Author: Dave Marchevsky <davemarchevsky@fb.com>
Date: Mon Oct 11 01:20:30 2021 -0700

description
===========
To prepare for impending deprecation of libbpf's bpf_program__get_prog_info_linear(),
pull in the function and associated helpers into the perf codebase and migrate
existing uses to the perf copy.

Since libbpf's deprecated definitions will still be visible to perf, it is necessary
to rename perf's definitions.

Signed-off-by: Michael Petlan <mpetlan@redhat.com>
2022-05-16 11:35:09 +02:00