Speakers
Description
Modified condition/decision coverage (MC/DC) is a fine-grained code coverage
metric required by many safety-critical industrial standards, including
aerospace, automotive, medical and rail. It is challenging to measure MC/DC of
targets as complex as Linux kernel. We will discuss our effort on measuring
MC/DC of Linux and the opportunities it would open up. The main challenges are
toolchain support (both LLVM and GCC added MC/DC capability just recently) and
kernel support for persistent coverage profile data. We have been working on
quality assurance of LLVM MC/DC implementation using both the Linux kernel and
other real-world software projects. We have also developed kernel support for
MC/DC measurement, by reusing a part of an early patch set originally intended
for profile-guided optimizations. We will present our early results on MC/DC of
Linux and avenues towards rigorous kernel testability from existing test
harnesses like KUnit and kselftest.
Repo: https://github.com/xlab-uiuc/linux-mcdc