Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

POC: Kernel notifier framework user space notifications - upstream Kernel changes #18

Open
maryamtahhan opened this issue Jul 26, 2023 · 0 comments

Comments

@maryamtahhan
Copy link
Collaborator

Implementing the POC made necessary the following kernel changes:

  1. Allowing kernel/module access to BPF maps by path similarly to how it has been allowed to programs.
  2. Exposing the following ringbuf functionality previously available only to eBPF callers via the helper interface (helper function names are being used for clarity, kernel side additions are prefixed with _ for POC purposes):
    a. bpf_ringbuf_reserve()
    b. bpf_ringbuf_commit()
    c. bpf_ringbuf_discard()
    d. bpf_ringbuf_output() - this can be implemented using a, b and c, so not essential. Added in order to not duplicate code.
    e. bpf_ringbuf_query() - not used in the POC
    f. bpf_user_ringbuf_drain() - should probably be dropped in future versions as it is very eBPF helper specific
  3. Adding the following new kernel functionality
    a. bpf_ringbuf_fetch_next() - fetch next record. The functionality is similar to bpf_user_ringbuf_drain, but without the callback semantics
    b. bpf_ringbuf_has_data() - may be dropped in the future - intended for wait conditions
    c. void ringbuf_wait_for_data() - not functional yet due to lack of wake up triggers

The goal of this task is to create a patchset for the changes to the kernel and submit them to the BPF mailing list for revew

@maryamtahhan maryamtahhan added this to the Phase 1 milestone Jul 26, 2023
@maryamtahhan maryamtahhan moved this to Todo in ekho Jul 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Status: Todo
Development

No branches or pull requests

1 participant