Project

General

Profile

Benchmarking C Software Verifiers With LDV Tools » History » Version 2

Pavel Shved, 11/24/2010 07:43 PM

1 1 Pavel Shved
h1. Benchmarking C Software Verifiers With LDV Tools
2
3
The core component of Linux Driver Verification tools is verification tool for C language.  Static analysis of driver sources with instrumented environment models and rules are eventually passed to such a verifier, which performs the most important part of the whole work.
4
5
No wonder that the speed and quality of the overall analysis heavily depends on how well and fast the verifier performs.  But the best verifier is yet to find!  There are several static C verifiers, which perform differently, and without experimenting it''s not clear which one is the best for our purpose.  Moreover, verifiers usually contain a number of tweaks and configuration opportunities, which should also be explored.  
6
7
So one of the goals of LDV program is to build a framework that aids us in answering such questions, as:
8
9
* Which configuration of a verifier works faster on a test driver set?
10
* Which verifier checks more drivers within a given time limit?
11
* How would it affect verification, if we supply verifier with more memory?
12
 
13
We developed special components that gather, analyze, visualize and compare statistics of verification of a lot of different drivers.
14 2 Pavel Shved
15
h2. Visualization and comparison
16
17
Here''s a sample experiment.  We assembled a test set with some "interesting" drivers (fixed and unfixed versions of those, in which we used to find bugs), this test set being in the standard shipment of LDV tools (it''s called @generic@), and run "CPAchecker":http://cpachecker.sosy-lab.org/ with different time limits.
18
19
h2. How to use LDV for benchmarking