Skip to content

bpf: Investigate the *best* value for wakeup_data_size #1660

@dave-tucker

Description

@dave-tucker

What would you like to be added?

This constant:
https://github.com/sustainable-computing-io/kepler/blob/main/bpf/kepler.bpf.c#L70

Declares how often we wake up to read the ringbuf.

The current math was as follows:

  1. My system (on average) processes around 600-700 context switches per second
  2. The sample period in Kepler is once every 3 seconds
  3. We need to read at least one batch of ringbuf events within that 3 second interval

So 1000 should have me read every 1.7ish seconds 😄

Why is this needed?

When kepler wakes up to read events it consumes CPU. Right now that's showing us as being somewhere between 1-3% mean CPU usage over time.
We should consider whether there is a better formula we could use to compute this magic number of 1000.

It could relate to the sample rate.

e.g 500 * SampleRate and perhaps even the 500 could come from something better than an educated guess.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingkind/featureNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions