Skip to content

feat(bpf): move bpf worker from tokio to sync thread#278

Draft
Molter73 wants to merge 3 commits intomainfrom
mauro/feat/sync-bpf-worker
Draft

feat(bpf): move bpf worker from tokio to sync thread#278
Molter73 wants to merge 3 commits intomainfrom
mauro/feat/sync-bpf-worker

Conversation

@Molter73
Copy link
Contributor

Description

Some performance tests that we have done lately show that the tokio worker threads are chugging because our workload is very CPU intensive. In this case the recommendation is to use regular threads to prevent wasting cycles on the tokio scheduler.

This change is a first step to push tokio down to the absolute minimum requirement (pretty much just needed for the gRPC output at the moment) by switching the bpf worker to a dedicated thread that will read and parse events coming from the kernel.

Most of the code was written by Gemini, I reviewed it and switched it from its proposed use of the polling crate (that was failing and only receiving a single event) to using epoll which is closer to the Linux epoll interface.

Checklist

  • Investigated and inspected CI test results
  • Updated documentation accordingly

Automated testing

  • Added unit tests
  • Added integration tests
  • Added regression tests

If any of these don't apply, please comment below.

Testing Performed

TODO: performance testing.
CI should be enough.

Some performance tests that we have done lately show that the tokio
worker threads are chugging because our workload is very CPU intensive.
In this case the recommendation is to use regular threads to prevent
wasting cycles on the tokio scheduler.

This change is a first step to push tokio down to the absolute minimum
requirement (pretty much just needed for the gRPC output at the moment)
by switching the bpf worker to a dedicated thread that will read and
parse events coming from the kernel.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant