Commit graph android_system_bpf/loader/Loader.cpp
Message SHA1
Fix C++23 build: add missing #include.
Change-Id: I21ab3f589ba1c9c0df4570264c9a25bc8c2ee427

Elliott Hughes   commited 2025-05-22 15:42:22 -04:00
7d08e8803d
Add -Wshadow to bpf_cc_defaults
Test: m
Change-Id: I08899d0c1bbdb05c3a2ef7df4b0debe748c25d94

Motomu Utsumi   commited 2025-03-21 16:27:05 +09:00
c52a98dde5
platform BpfLoader: drop support for uprobestats
this has moved to mainline via apex

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I77e6ae3248ce1aa1ee20c9ab834516053cac5d16

Maciej Żenczykowski   commited 2025-03-10 18:24:05 -07:00
c799e7610f
BpfLoader: remove unnecessary logging functionality
With the addition of aosp/3294153, we no longer need the c logging
functionality exposed to rust, so remove them

Bug: 359646531
Test: Manual
Change-Id: Ia6f61263f3315fe7dd3533556d9a5fdd2726a2b3
Signed-off-by: Neill Kapron <nkapron@google.com>

Neill Kapron   commited 2024-10-04 21:10:13 +00:00
ba0666388b
Merge "Adding memevents subdirectory for bpf" into main
Treehugger Robot   authored and   Gerrit Code Review   commited 2024-09-05 05:40:29 +00:00
ea44c94fbf
Adding memevents subdirectory for bpf
Create new memevents subdirectory to contain bpf related files for
libmemevents. Memevents-bpf are used to listen to kernel tracepoints
(BPF_PROG_TYPE_TRACEPOINT), and skfilter bpf progrs to inject mock data
for testing purposes (BPF_PROG_TYPE_SOCKET_FILTER).

Test: Verified memevents-bpf files are loaded in new subdir
Bug: 330396528
Change-Id: I57f7738f6a9eb18293cf9c51e0d1da2b2c1ebfe4
Signed-off-by: Carlos Galo <carlosgalo@google.com>

Carlos Galo   commited 2024-09-04 22:10:24 +00:00
0621b1e0a1
BpfLoader: adjust for change to bpf_map_def.h location
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Iebd599d12f502c3cb8e030d53aae5e95c19e21ef

Maciej Żenczykowski   commited 2024-08-21 13:21:16 -07:00
1b44455113
BpfLoader: split bpffs subdir creation out
Needs to be before program loading, this should eventually allow loading programs in parallel.

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I95933a5ffbe2230c19d0f91c167e1256ea2f3713

Maciej Żenczykowski   commited 2024-08-13 20:04:18 +00:00
7ff8310ea2
bpf: remove no longer used expected attach type
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I513d9b22bf57a19d1b33cd37bf3a6f3ae06d969f

Maciej Żenczykowski   commited 2024-08-12 17:41:26 +00:00
119ad75c4b
BpfLoader: split legacy bpfloader into 3 phases, simplify arguments
Should make integration with BpfLoader written in rust easier.

While at it add simple wrappers around ALOG{V,D,I,W,E}(),
which may come in handy as bpfloader runs early enough that
logging must be to the kernel dmesg ringbuffer instead...

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ia49c605bae63241b74d04e2e0f58fd089c23993d

Maciej Żenczykowski   authored and   Neill Kapron   commited 2024-08-07 21:20:02 +00:00
dd4bd2d655
bpfLoader as a lib - make it actually build/work
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Iff1c39de5ac8a07cdd16841c04db87ae874adc8f

Maciej Żenczykowski   commited 2024-08-06 15:43:56 -07:00
6d4d9d89c2
bpfloader: move BpfLoader.cpp into Loader.cpp
Prep work to make legacy BpfLoader usable as a library from rust.

Note: fixups to make this actually build will be in the next commit.

Generated via:
  cd //system/bpf/loader
  echo >> Loader.cpp
  cat BpfLoader.cpp >> Loader.cpp
  rm BpfLoader.cpp

Test: will not build, requires followup
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Id3a942bd0d217f3b689f165666b73e1f2834d33f

Maciej Żenczykowski   commited 2024-08-06 15:25:56 -07:00
e0f11527e4
BpfLoader: use BpfLoader as the LOG_TAG
The only non-test use of the library is the BpfLoader,
so it makes sense for everything to use the same tag.

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Iddc0472a39db292fef31b2e195b3ab919d884f7d

Maciej Żenczykowski   commited 2024-05-01 05:17:05 -07:00
e2f2b8228d
BpfLoader: exec mainline netbpfload for finalization
Move setting 'bpf.progs_loaded' property to 1 into mainline.

This doesn't terribly matter, but it gives mainline bpf loading
code a chance to run after platform and perform any required
finalization.

While at it also use distinctive error return values,
as these are often the only thing that init reports about
a bpfloader failure.

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: If502cf07c8ceed306c18821075a92f99437da4dd

Maciej Żenczykowski   commited 2024-04-30 23:53:07 -07:00
95c6fff6a2
BpfLoader: drastically reduce logging
Should speed up boot time - especially if serial console is enabled.

There's probably still enough information available to debug issues,
as any errors (which basically shouldn't happen) are still all
extensively logged.

Either way, as this now only loads platform bpf .o files, anyone seeing
boot time problems can simply flash a custom build with changes to the
platform BpfLoader to enable any extra logging as needed.

(Note that AFAICT normally ALOGV() is basically ignored)

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I5e404ae14c33ee319c07be42defdc270b15a54fe

Maciej Żenczykowski   commited 2024-04-30 22:37:04 -07:00
0eb98a22c3
Platform BpfLoader: remove dumpIns() and dumpAllCs()
I've *never* ended up using this information...

Test: builds
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I621d32fb235e9cd88989e99536485674c74fa884

Maciej Żenczykowski   commited 2024-03-11 04:01:21 +00:00
091206500d
Platform BpfLoader: remove support for per-map/prog dir & selinux context
For platform bpf .o files per-map/prog selinux context can simply
be added by genfscon selinux policy modifications.

(while per-map/prog pin dir really only exists to support the selinux context)

Test: TreeHugger
  Both before and after this patch 'adb shell find /sys/fs/bpf | wc -l' returns 103
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ic700db2870c16a04c9498e529519051a672a28c8

Maciej Żenczykowski   commited 2024-03-11 04:01:07 +00:00
c1647d764f
move libbpf_android into loader subdirectory
The only (real) user is the platform bpfloader binary.
This is a library purely to facilitate testing.

It's easier to develop / code-search if everything is in the same directory.

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Iebe8a5c4f8bb9ada220acec6ed8c1be0fc9d438c

Maciej Żenczykowski   commited 2024-03-11 04:00:13 +00:00
5c412c6c0e
Renamed from libbpf_android/Loader.cpp (Browse further)