• DocumentCode
    3658656
  • Title

    Complete Runtime Tracing for Device Drivers Based on LLVM

  • Author

    Jia-Ju Bai;Hu-Qiu Liu;Yu-Ping Wang;Shi-Min Hu

  • Author_Institution
    Nat. Lab. for Inf. Sci. &
  • Volume
    2
  • fYear
    2015
  • fDate
    7/1/2015 12:00:00 AM
  • Firstpage
    200
  • Lastpage
    209
  • 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
    "Runtime","Kernel","Instruments","Linux","Joints","Testing","Monitoring"
  • Publisher
    ieee
  • Conference_Titel
    Computer Software and Applications Conference (COMPSAC), 2015 IEEE 39th Annual
  • Electronic_ISBN
    0730-3157
  • Type

    conf

  • DOI
    10.1109/COMPSAC.2015.24
  • Filename
    7273619