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

Refactor select_cpu + enqueue for proper synchronization and handle of !wakeup #438

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Commits on Jul 17, 2024

  1. scx_mitosis: Automated reformatting

    Missed this in some previous commits. Just running clang-format.
    
    Signed-off-by: Dan Schatzberg <[email protected]>
    dschatzberg committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    147e877 View commit details
    Browse the repository at this point in the history
  2. scx_mitosis: handle enqueue() on !wakeup

    If we're not on the wakeup path, we may see enqueue() invoked without
    select_cpu() which will require an idle cpu lookup. In order to fix
    this, we refactor the idle_cpu lookup in select_cpu so it can be invoked
    from enqueue().
    
    Signed-off-by: Dan Schatzberg <[email protected]>
    dschatzberg committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    8db7af6 View commit details
    Browse the repository at this point in the history
  3. scx_mitosis: add RCU-like synchronization

    scx_mitosis relied on the implicit assumption that after a sched tick,
    all outstanding scheduling events had completed but this might not
    actually be correct. This feels like a natural use-case for RCU, but
    there is no way to directly make use of RCU in BPF. Instead, this commit
    implements an RCU-like synchronization mechanism.
    
    Signed-off-by: Dan Schatzberg <[email protected]>
    dschatzberg committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    9ab7689 View commit details
    Browse the repository at this point in the history