This repository demonstrates KUnit's
modified condition/decision coverage (MC/DC) of 5.15.y Linux kernel using
Clang source-based code coverage
and llvm-cov
. A patch set
for mainline kernel is also being prepared.
Follow the instructions here to get started.
Example text coverage report: link (login with any GitHub account required)
Example HTML coverage report:
Tentative repository structure:
linux-mcdc
|
├── ci/{linux-v5.15.153}
│ ├── 1_install_deps.sh
│ ├── 2_pull_source.sh
│ ├── 3_get_llvm.sh
│ ├── 4_build_kernel.sh
│ └── 5_boot_kernel_and_collect_coverage.sh
|
├── docs
│ ├── elisa-slides.pdf
│ └── measure-kernel-mcdc.md
|
├── patches
│ ├── README.md
│ └── {v0.4,v0.5,v0.6}
|
├── README.md
|
├── screenshot.png
|
└── scripts
├── build-llvm.sh
└── q
We gave an ELISA seminar titled "Making Linux Fly: Towards Certified Linux Kernel". [recording] [slides]
Please feel free to open Issues/PRs if you have any suggestions or questions. You can also send emails to:
- Steven H. VanderLeest <[email protected]>
- Wentao Zhang <[email protected]>
This project is a collaboration between The Boeing Company and University of Illinois Urbana-Champaign.