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

Set the scheduling policy individually per thread #135

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

Commits on Nov 30, 2021

  1. bees: Handle bees threads scheduling policy individually

    Instead of launching the whole process under one single scheduling
    policy, let's better set these individually per thread.
    
    The crawler, writeback, and prefetch threads will use SCHED_IDLE as we
    only want them to use CPU when we have it available.
    
    The progress and status threads use SCHED_OTHER as we want them to spool
    their updates per best-effort.
    
    Signed-off-by: Kai Krakow <kai@kaishome.de>
    kakra committed Nov 30, 2021
    Configuration menu
    Copy the full SHA
    94bcafd View commit details
    Browse the repository at this point in the history
  2. crucible: Handle threads scheduling policy individually

    This refines the crawler threads which are actually two parts:
    
    The subvolume crawler threads will use SCHED_BATCH if available to
    better utilize CPU caches during number crunching: The kernel will give
    those threads time slices of 1.5s and will only migrate them to another
    core if really needed (e.g., if another process needs the core).
    
    The crawler master will use SCHED_IDLE as we only want it to use CPU
    when we have it available. It is only there to generate new work for its
    sibling threads.
    
    Signed-off-by: Kai Krakow <kai@kaishome.de>
    kakra committed Nov 30, 2021
    Configuration menu
    Copy the full SHA
    e795d87 View commit details
    Browse the repository at this point in the history
  3. crucible: Schedule loadavg calculator as fast as possible

    We want the loadavg calculation to be almost real-time. If SCHED_ISO is
    not supported, it will use whatever the service was started with
    (SCHED_OTHER by default).
    
    Signed-off-by: Kai Krakow <kai@kaishome.de>
    kakra committed Nov 30, 2021
    Configuration menu
    Copy the full SHA
    054708d View commit details
    Browse the repository at this point in the history