Skip to content

Releases: pop-os/system76-scheduler

2.0.2

22 Aug 21:36
c403d01
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.0.1...2.0.2

2.0.1

01 May 19:27
837da2c
Compare
Choose a tag to compare

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

26 Apr 11:43
97a8617
Compare
Choose a tag to compare
  • 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, and bytelines 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/or background profile from the configuration file
  • Pipewire integration can also be disabled by removing the pipewire profile assignment

1.2.1

24 May 23:44
94a75a8
Compare
Choose a tag to compare

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

19 May 21:20
Compare
Choose a tag to compare

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
  • 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

04 May 20:38
Compare
Choose a tag to compare
  • Sets kernel preempt to full on the responsive profile, and voluntary on battery.
  • Adds more default priorities for common background processes
  • Fixes priority assignments from config being overridden by background and foreground priority adjustments

See Commit History

1.0.0

23 Mar 12:26
d508ff1
Compare
Choose a tag to compare