Skip to content

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).
@EtienneBasilik
Copy link

Can you make this fix available? It is not under the main branch... I am running Linux 6.12 with PREEMPT_RT and am having the same issue with vruntime. Thanks!

@simonchatts simonchatts merged commit 335727a into cisco-open:main Aug 22, 2025
1 check passed
@simonchatts
Copy link
Contributor Author

@EtienneBasilik done! Thanks for your patience.

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

3 participants