Releases: pop-os/system76-scheduler
Releases · pop-os/system76-scheduler
2.0.2
What's Changed
- add hyprland to default list of desktop environments by @russelltg in #101
- fix: sched_setscheduler() gets EINVAL for normal policies by @taoky in #105
- fix execsnoop example by @Umio-Yasuno in #113
- Correct SetForegroundProcess method name in README by @FriederHannenheim in #117
- Fix: remove sched=(fifo)49 from sound-server assignments by @gcentauri in #118
New Contributors
- @russelltg made their first contribution in #101
- @Umio-Yasuno made their first contribution in #113
- @FriederHannenheim made their first contribution in #117
- @gcentauri made their first contribution in #118
Full Changelog: 2.0.1...2.0.2
2.0.1
Fixes
- daemon: Early return on a kernel lacking SCHED_DEBUG which causes the service to not start
- daemon: Spawns the pipewire monitoring sub-process with
/proc/self/exe
- pipewire: Prevents duplicate threads being spawned to monitor the same pipewire socket
Improvements
- Significant reduction in total memory and CPU consumption
- Much faster access to process info from a PID lookup
- Reduced heap allocations in hot paths for new process assignments
- Added a garbage collection method to be called periodically
Chores
- config: Added schedtool to exceptions
- config: Added gamescope and some game launchers
- daemon: Some additional debug and trace logs
- just: Auto-detect path of execsnoop
- just: Use lld linker if available
- nix: Adds Nix flake
Full Changelog: 2.0.0...2.0.1
2.0.0
- Pipewire integration, which auto-assigns and retains a higher priority profile to PIDs connected to Pipewire
- Many performance optimizations
- Eliminates most memory allocation by reusing buffers when reading files or building paths
- Avoids performing UTF-8 string checks when not necessary, by using the
bstr
,atoi
, andbytelines
crates.
- Disables the kernel's autogroup feature by default so that nice priorities function properly
- Migrated from RON to KDL for configuration files
- Configuration files now have very flexible rules with many new options
- Now supports setting scheduler policies like SCHED_FIFO and SCHED_IDLE
- Assignments can be made based on conditions such as cgroups or parent processs
- Default configuration now automatically detects most system services without needing to explicitly name them
- The CFS profile service can be disabled in the config
- The process scheduler service can also be disabled
- The refresh rate of the process scheduler's PID monitoring service can be configured
- Foreground process assignments can be disabled by removing the
foreground
and/orbackground
profile from the configuration file - Pipewire integration can also be disabled by removing the
pipewire
profile assignment
1.2.1
Summary
- Fix high CPU usage when execsnoop-bpfcc fails to launch
- Adds configuration option to disable execsnoop even if it installed
- Adds pipewire processes to configuration to fix rtkit demotions on resume from suspend
See Commit History
1.2.0
Summary
- Process assignment configuration files now supports defining I/O classes and priorities
- New subcommand on command line for reloading the configuration files
- Support setting priorities to Flatpak processes
- Support setting priorities by the exe or process name
- Set process priority in realtime with
execsnoop-bpfcc
- The
EXECSNOOP_PATH
env must be defined when compiling to point to its path - The feature is of course conditional on the binary being found on the system
- If not installed, there won't be any realtime adjustments to newly-created processes
- The
- Added support for defining exceptions to the process adjustment rules
- Requires execsnoop to unset inherited priorities in realtime
- Adds SteamVR processes to default config
See Commit History
1.1.0
- Sets kernel preempt to
full
on the responsive profile, andvoluntary
on battery. - Adds more default priorities for common background processes
- Fixes priority assignments from config being overridden by background and foreground priority adjustments