eunomia-bpf / bpftime

Userspace eBPF runtime for fast Uprobe & Syscall hook & Extensions
https://eunomia.dev/bpftime/
MIT License
744 stars 73 forks source link

Attempt to add arm64 support #151

Closed ShawnZhong closed 7 months ago

ShawnZhong commented 7 months ago

Description

Fixes # (issue)

Type of change

How Has This Been Tested?

Test Configuration:

Checklist

yunwei37 commented 7 months ago

Thanks a lot!

yunwei37 commented 7 months ago

@ShawnZhong @Officeyutong By the way, is it possible to make a GitHub Action for testing bpftime on arm64?

Officeyutong commented 7 months ago

@ShawnZhong @Officeyutong By the way, is it possible to make a GitHub Action for testing bpftime on arm64?

Many of features existing rely on x86, e.g user space syscall trace. We need a new syscall trace trampoline on arm64.

Officeyutong commented 7 months ago

@ShawnZhong @Officeyutong By the way, is it possible to make a GitHub Action for testing bpftime on arm64?

Running tests itself is relatively easier

yunwei37 commented 7 months ago

Many of features existing rely on x86, e.g user space syscall trace. We need a new syscall trace trampoline on arm64.

That's fine. At least we can get the uprobe and runtime work. We can get this PR work first, and then consider others(syscall trace, CI, syscall trace should be easier on arm)

Is there any other features rely on x86?

ShawnZhong commented 7 months ago

@ShawnZhong @Officeyutong By the way, is it possible to make a GitHub Action for testing bpftime on arm64?

It seems that Arm-based hosted runners are still in public beta as of January 2024: https://github.blog/changelog/2023-10-30-accelerate-your-ci-cd-with-arm-based-hosted-runners-in-github-actions/

One option is to use self-hosted runners, which requires some setup (and cost money)

My least favorable option is to run inside QEMU.

yunwei37 commented 7 months ago

Thanks a lot!

Officeyutong commented 7 months ago

Many of features existing rely on x86, e.g user space syscall trace. We need a new syscall trace trampoline on arm64.

That's fine. At least we can get the uprobe and runtime work. We can get this PR work first, and then consider others(syscall trace, CI, syscall trace should be easier on arm)

Is there any other features rely on x86?

Calling original syscall at prog array implementation was bound to x86, needs updating