So I definitely don't know enough to say anything about this, but I was using claude to try and work out a bug i have had on Budgie and now KDE where the screen freezes and nothing is responsive, most of the time the audio will continue uninterrupted.
Claude is recommending that scx_loader be disabled so that it always uses the kernel's default EEVDF scheduler. Here is the info it gave me:
scx-scheds: Missing BPF object files causing system freezes on boot
Forum: https://discuss.getsol.us
Category: Support (or Packaging Bug)
Summary
The scx-scheds package (version 1.0.20-3) is missing its BPF object files, causing all sched-ext schedulers to fail to load. scx_loader enters a crash-and-retry loop on every boot, which manifests as intermittent system freezes.
System
- Distro: Solus (kernel 6.18.12-329)
- Package: scx-scheds 1.0.20-3, scx-tools 1.0.20-2
- Hardware: Intel i7 (12 cores/threads), NVIDIA GeForce RTX 3070
- Desktop: KDE Plasma (X11)
The Problem
On every boot, scx_loader starts scx_flash as configured in /usr/share/defaults/scx_loader/config.toml. The scheduler immediately fails with:
runtime error (ops.init_task() failed (-12) for scsi_eh_3[414])
After this failure, scx_loader retries up to 5 times before giving up. This crash loop repeats multiple times per boot and appears to be the cause of intermittent system freezes.
Attempting to switch to scx_bpfland as an alternative produces a different but related error:
Error: Failed to load BPF program
Caused by:
No such file or directory (os error 2)
Root Cause
The BPF object files (.bpf.o) that the scheduler binaries depend on are completely absent from the system. This was confirmed by:
1. Filesystem-wide search finds no BPF objects:
sudo find / -name "*.bpf.o" 2>/dev/null
# Returns nothing
2. Package file listing shows only the binary, no BPF objects:
eopkg info --files scx-scheds | grep -i bpf
# Returns only:
/usr/bin/scx_bpfland, type: executable, size: 6943264
3. The cached package itself contains no BPF objects:
unzip -l /var/cache/eopkg/packages/scx-scheds-1.0.20-3-1-x86_64.eopkg | grep -i bpf
# Returns nothing
The binaries are present for all schedulers (scx_flash, scx_bpfland, scx_lavd, scx_rusty, etc.) but none of the corresponding .bpf.o skeleton files are packaged. Without these files, no sched-ext scheduler can function.
Workaround
Disable scx_loader entirely to stop the crash loop:
sudo systemctl disable --now scx_loader
The system then falls back to the kernel's default EEVDF scheduler, which is stable. The freezes stop.
Request
The scx-scheds package needs to include the BPF object files alongside the scheduler binaries. On other distributions these are typically installed to /usr/lib/scx/ or similar. The package as currently built ships non-functional scheduler binaries and actively causes system instability through the crash loop in scx_loader.
Relevant Logs
scx_loader crash loop (journalctl -u scx_loader -b):
Feb 27 21:09:36 scx_loader[3428]: Error: Failed to load BPF program
Feb 27 21:09:36 scx_loader[3428]: Caused by:
Feb 27 21:09:36 scx_loader[3428]: No such file or directory (os error 2)
Feb 27 21:09:36 scx_loader[3413]: [ERROR]: Failed to start scheduler (attempt 1/5)
# ... repeats through attempt 5/5
scx_flash crash dump:
scx_flash[834] triggered exit kind 1024:
runtime error (ops.init_task() failed (-12) for scsi_eh_3[414])
Backtrace:
scx_enable.isra.0+0x630/0xa40
bpf_struct_ops_link_create+0x134/0x190
__sys_bpf+0x940/0xd40