eunomia-bpf / bpftime

Userspace eBPF runtime for fast Uprobe & Syscall hook & Extensions with LLVM JIT
https://eunomia.dev/bpftime/
MIT License
687 stars 68 forks source link

runtime: make LLVM JIT Compiled by default #263

Closed NobinPegasus closed 3 months ago

NobinPegasus commented 3 months ago

Description

Fixes #262 (issue)

Type of change

How Has This Been Tested?

cmake -DCMAKE_PREFIX_PATH=/usr/include/llvm -DBPFTIME_LLVM_JIT=YES -DBPFTIME_ENABLE_UNIT_TESTING=YES -DCMAKE_BUILD_TYPE=Release -B build
cmake --build build --config RelWithDebInfo --target bpftime_runtime_tests
sudo ./build/runtime/unit-test/bpftime_runtime_tests

Log:

bpftime_runtime_tests is a Catch2 v3.4.0 host application.
Run with -? for options

-------------------------------------------------------------------------------
Test tail calling from userspace to kernel
-------------------------------------------------------------------------------
/workdir/bpftime/runtime/unit-test/tailcall/test_user_to_kernel_tailcall.cpp:18
...............................................................................

/workdir/bpftime/runtime/unit-test/tailcall/test_user_to_kernel_tailcall.cpp:26: FAILED:
  REQUIRE( map_fd >= 0 )
with expansion:
  -1 >= 0

===============================================================================
test cases:   15 |   14 passed | 1 failed
assertions: 4088 | 4087 passed | 1 failed

Test Configuration: I have used the docker image to rebuild using updated cmake and makeflie. Because the project is LLVM Version dependent.

root@3fe2301ad245:/workdir/bpftime# llvm-config --version
15.0.7
root@3fe2301ad245:/workdir/bpftime# clang --version
Ubuntu clang version 15.0.7
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
root@3fe2301ad245:/workdir/bpftime# cat /etc/os-release 
PRETTY_NAME="Ubuntu 23.04"
NAME="Ubuntu"
VERSION_ID="23.04"
VERSION="23.04 (Lunar Lobster)"
VERSION_CODENAME=lunar
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=lunar
LOGO=ubuntu-logo

Checklist

yunwei37 commented 3 months ago

Thanks!