@inproceedings{6afa970b2b3448058b7cdafc6de3c9d6,
title = "Complete Runtime Tracing for Device Drivers Based on LLVM",
abstract = "Device drivers often suffer from much more bugs than the kernel, so testing device drivers becomes more and more important and necessary. In software testing, runtime tracing is an important technique to monitor real executing procedures of the program. Meanwhile, runtime information can also assist the programmer to make more accurate analysis of the program, like verifying the correctness of code execution and detecting bugs. However, due to kernel-mode execution and high complexity of kernel code, completely tracing drivers is hard, which causes real execution paths can not be clearly identified. In order to provide more powerful support for software testing of device drivers, we propose a method named Driver Trace, to do complete runtime tracing at the function level. Driver Trace utilizes instrumentation technique for runtime tracing, which is implemented based on LLVM compiler infrastructure. When the target driver works, Driver Trace records complete runtime information of function calls, like function names, return values and parameter pointers, and the information is recorded in a log file for future analysis. We have successfully implemented Driver Trace on 10 real device drivers in Linux 3.16.4 and made the evaluation as well. The experimental results show that Driver Trace provides an effective method of runtime tracing for device drivers with the modest overhead. Moreover, using an automated analysis of the runtime information recorded by Driver Trace, we also find 6 violations about resource usages in these 10 device drivers.",
keywords = "Device drivers, Instrumentation, LLVM, Runtime tracing, Testing",
author = "Bai, {Jia Ju} and Liu, {Hu Qiu} and Wang, {Yu Ping} and Hu, {Shi Min}",
note = "Publisher Copyright: {\textcopyright} 2015 IEEE.; 39th IEEE Annual Computer Software and Applications Conference, COMPSAC 2015 ; Conference date: 01-07-2015 Through 05-07-2015",
year = "2015",
month = sep,
day = "21",
doi = "10.1109/COMPSAC.2015.24",
language = "English",
series = "Proceedings - International Computer Software and Applications Conference",
publisher = "IEEE Computer Society",
pages = "200--209",
editor = "Gang Huang and Jingwei Yang and Ahamed, {Sheikh Iqbal} and Pao-Ann Hsiung and Chang, {Carl K.} and William Chu and Ivica Crnkovic",
booktitle = "Proceedings - 2015 IEEE 39th Annual Computer Software and Applications Conference, COMPSAC 2015",
address = "United States",
}