parca-dev / parca-agent

eBPF based always-on profiler auto-discovering targets in Kubernetes and systemd, zero code changes or restarts needed!
https://parca.dev/
Apache License 2.0
546 stars 67 forks source link

unwinding/dwarf: arm64 support #1797

Open javierhonduco opened 1 year ago

javierhonduco commented 1 year ago

Context

While we currently build arm64 containers for the Agent, we don't truly support BPF-based profiling anymore. This is due to a complete rework of the core BPF bits to unwind through code without frame pointers that focused on supporting x86_64.

We want to change this, as there's an ever-growing amount of developers using this architecture locally, see Apple Silicon, as well as in production (Graviton et al).

Roadmap

Enabling work

Adding frame pointer unwinding

DWARF-based unwinding (https://github.com/parca-dev/parca-agent/issues/1209)

Other things to look out for:

Testing

Related issues: https://github.com/parca-dev/parca-agent/issues/1211

maxbrunet commented 1 year ago

Maybe tests could run on Oracle's Free Tier? https://blogs.oracle.com/cloud-infrastructure/post/announcing-github-actions-arm-runners-for-the-arm-compute-platform-on-oracle-cloud-infrastructure

I also found BuildJet supports ARM if you have a small budget for it: https://buildjet.com/for-github-actions