Frequently Asked Questions
This page collects common questions and answers encountered when using Gthulhu and Qumun.
Installation Related Questions
Q: How can I confirm my kernel supports sched_ext?
A: You can check using the following methods:
# Method 1: Check kernel configuration
grep -r "CONFIG_SCHED_CLASS_EXT" /boot/config-$(uname -r)
# Method 2: Check /proc/config.gz
zcat /proc/config.gz | grep "CONFIG_SCHED_CLASS_EXT"
# Method 3: Check sched_ext directory
ls /sys/kernel/sched_ext/ 2>/dev/null
If the output contains CONFIG_SCHED_CLASS_EXT=y, your kernel supports sched_ext.
Q: What should I do when getting "libbpf not found" error during compilation?
A: This is usually because libbpf is not properly installed. Please follow these steps to resolve:
# Ubuntu/Debian
sudo apt install libbpf-dev
# CentOS/RHEL/Fedora
sudo dnf install libbpf-devel
# Or manually compile libbpf
git clone https://github.com/libbpf/libbpf.git
cd libbpf/src
make
sudo make install
Q: Why is Clang 17+ required?
A: Clang 17+ provides more complete BPF support, including:
- Better BPF CO-RE (Compile Once, Run Everywhere) support
 - Latest BPF instruction set support
 - More stable BPF program compilation
 
If your system doesn't have Clang 17+, you can install it like this:
# Ubuntu/Debian
sudo apt install clang-17
# Set environment variables
export CC=clang-17
export CXX=clang++-17
Runtime Related Questions
Q: Getting "Operation not permitted" error when running
A: This is a permission issue. BPF program loading requires root privileges:
# Correct way to run
sudo ./main
# Or use Docker
docker run --privileged=true --pid host --rm gthulhu:latest /gthulhu/main
Q: What to do if the system becomes slow after starting the scheduler?
A: This might be due to the following reasons:
- 
Scheduling parameters not suitable for your workload:
 - 
Insufficient memory:
 - 
BPF program performance issues:
 
Solutions:
- Stop the scheduler: sudo pkill -f "./main"
- Check system logs: dmesg | tail -50
- Adjust scheduling parameters or report the issue
Q: How to stop the scheduler?
A: You can stop the scheduler using the following methods:
# Method 1: Ctrl+C (if running in foreground)
^C
# Method 2: Send SIGTERM signal
sudo pkill -TERM -f "./main"
# Method 3: Send SIGINT signal
sudo pkill -INT -f "./main"
# Method 4: Force kill (not recommended)
sudo pkill -KILL -f "./main"
Performance Related Questions
Q: How to monitor scheduler performance?
A: You can use various tools to monitor scheduler performance:
- 
System tools:
 - 
BPF tools:
 - 
Built-in scheduler monitoring:
 
Q: What advantages does the scheduler have compared to CFS?
A: Main advantages of Gthulhu scheduler:
| Feature | CFS | Gthulhu | 
|---|---|---|
| Latency Optimization | Basic | Specialized | 
| Task Classification | Unified processing | Automatic classification | 
| CPU Topology Awareness | Limited | Complete support | 
| Dynamic Adjustment | Static parameters | Real-time adjustment | 
| User-space Extension | Not supported | Fully supported | 
Q: How to adjust scheduler parameters?
A: Currently supported adjustment methods:
- 
Environment variables:
 - 
Compile-time parameters (modify
main.bpf.c): - 
Runtime API (planned):
 
Debugging Related Questions
Q: How to enable debug mode?
A: You can enable debugging through the following methods:
- 
Environment variables:
 - 
BPF tracing:
 - 
System logs:
 
Q: What to do when encountering BPF verifier errors?
A: BPF verifier errors usually indicate program issues:
- 
Check error messages:
 - 
Common issues:
 - Unbounded loops: Ensure all loops have clear exit conditions
 - Memory out of bounds: Check array accesses are within range
 - 
Pointer usage: Ensure pointers are NULL-checked before use
 - 
Verify BPF program:
 
Q: How to report issues?
A: If you encounter problems, please follow these steps:
- 
Collect system information:
 - 
Collect error logs:
 - 
Submit GitHub Issue:
 - Go to Gthulhu Issues
 - Choose appropriate issue template
 - Attach system information and error logs
 - Describe reproduction steps
 
Development Related Questions
Q: How to participate in development?
A: Welcome to participate in development! Please refer to:
- View contributing guide: contributing.md
 - 
Understand code structure:
 - 
Set up development environment:
 
Q: How to add custom scheduling policies?
A: You can customize through the following methods:
- 
Modify BPF program (
main.bpf.c): - 
Modify Go program (
main.go): - 
Use Qumun API:
 
Compatibility Issues
Q: Which Linux distributions are supported?
A: Theoretically supports all distributions with the following conditions:
- Kernel version: 6.12+
 - sched_ext support: Enabled
 - Architecture: x86_64
 
Tested distributions: - Ubuntu 24.04+ - Fedora 39+ - Arch Linux (latest)
Planned support: - CentOS/RHEL 9+ - openSUSE Tumbleweed - Debian 13+
Q: Can it run in containers?
A: Yes, but requires special permissions:
# Docker execution
docker run --privileged=true --pid host --rm gthulhu:latest
# Podman execution
podman run --privileged --pid host --rm gthulhu:latest
# Kubernetes execution (requires special configuration)
# Please refer to examples/kubernetes/ directory
Q: Does it conflict with other schedulers?
A: Gthulhu will replace the system default scheduler, therefore:
- Cannot run simultaneously with other sched_ext schedulers
 - Will not affect real-time scheduling classes (SCHED_FIFO, SCHED_RR)
 - Will replace CFS scheduler functionality
 
Problem not resolved?
If your problem is not answered here, please:
- Check GitHub Issues
 - Search existing problems and solutions
 - If not found, please create a new issue