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

scx_rustland: lowlatency improvements #59

Merged
merged 4 commits into from
Dec 31, 2023

Commits on Dec 31, 2023

  1. scx_rustland: enable SCX_OPS_ENQ_LAST

    Make sure the scheduler is not activated if we are deadling with the
    last task running.
    
    This allows to consistency reduce scx_rustland CPU usage in systems that
    are mostly idle (and avoid unnecessary power consumption).
    
    Signed-off-by: Andrea Righi <[email protected]>
    Andrea Righi committed Dec 31, 2023
    Configuration menu
    Copy the full SHA
    49f2e7c View commit details
    Browse the repository at this point in the history
  2. scx_rustland: always use dispatch_on_cpu() when possible

    Use dispatch_on_cpu() when possible, so that all tasks dispatched by the
    user-space scheduler gets the same priority, instead of having some of
    them dispatched to the global DSQ and others dispatched to the per-CPU
    DSQ.
    
    Signed-off-by: Andrea Righi <[email protected]>
    Andrea Righi committed Dec 31, 2023
    Configuration menu
    Copy the full SHA
    405a113 View commit details
    Browse the repository at this point in the history
  3. scx_rustland: bypass user-space scheduler for short-lived kthreads

    Bypass the user-space scheduler for kthreads that still have more than
    half of their runtime budget.
    
    As they are likely to release the CPU soon, granting them a substantial
    priority boost can enhance the overall system performance.
    
    In the event that one of these kthreads turns into a CPU hog, it will
    deplete its runtime budget and therefore it will be scheduled like
    any other normal task through the user-space scheduler.
    
    Signed-off-by: Andrea Righi <[email protected]>
    Andrea Righi committed Dec 31, 2023
    Configuration menu
    Copy the full SHA
    a7677fd View commit details
    Browse the repository at this point in the history
  4. scx_rustland: show the CPU where the scheduler is running

    In the scheduler statistics reported periodically to stdout, instead of
    showing "pid=0" for the CPU where the scheduler is running (like an idle
    CPU), show "[self]".
    
    This helps to identify exactly where the user-space scheduler is running
    (when and where it migrates, etc.).
    
    Signed-off-by: Andrea Righi <[email protected]>
    Andrea Righi committed Dec 31, 2023
    Configuration menu
    Copy the full SHA
    1cdcb8a View commit details
    Browse the repository at this point in the history