Skip to content

Add EEVDF scheduler support #3

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

simonchatts
Copy link
Contributor

Description

Resolves #2: modern Linux kernels use EEVDF (Earliest Eligible Virtual Deadline First) scheduler instead of CFS (Completely Fair Scheduler).

Although in theory the EEVDF scheduler could be backported, I've not seen anyone do this, so the switch here is a simple kernel version check: 6.6 or greater is taken to be EEVDF.

Type of Change

  • Bug Fix
  • New Feature
  • Breaking Change
  • Refactor
  • Documentation
  • Other (please describe)

Checklist

  • I have read the contributing guidelines
  • Existing issues have been referenced (where applicable)
  • I have verified this change is not present in other open pull requests
  • Functionality is documented
  • All code style checks pass
  • New code contribution is covered by automated tests
  • All new and existing tests pass

- Add kernel version detection from system metadata
- Implement scheduler detection (CFS vs EEVDF) based on kernel version 6.6+
- Update Stats class to handle optional vruntime data gracefully
- Modify Engine to conditionally parse vruntime based on scheduler type
- Add comprehensive tests for kernel version parsing and scheduler detection
- Maintain backward compatibility with CFS scheduler on older kernels
- Fix relative imports across modules

Resolves issue with perf-trace-viewer failing on modern Linux kernels
that use EEVDF (Earliest Eligible Virtual Deadline First) scheduler
instead of CFS (Completely Fair Scheduler).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support EEVDF
1 participant