AutoPA: Automatically generating active driver from original passive driver code

Jia Ju Bai, Yu Ping Wang, Shi Min Hu

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

3 Citations (Scopus)

Abstract

Original device drivers are often passive in common operating systems, and they should correctly handle synchronization when concurrently invoked by multiple external threads. However, many concurrency bugs have occurred in drivers due to incautious synchronization. To solve concurrency problems, active driver is proposed to replace original passive driver. An active driver has its own thread and does not need to handle synchronization, thus the occurrence probability of many concurrency bugs can be effectively reduced. But previous approaches of active driver have some limitations. The biggest limitation is that original passive driver code needs to be manually rewritten. In this paper, we propose a practical approach, AutoPA, to automatically generate efficient active driver from original passive driver code. AutoPA uses function analysis and code instrumentation to perform automated driver generation, and it uses an improved active driver architecture to reduce performance degradation. We have evaluated AutoPA on 20 Linux drivers. The results show that AutoPA can automatically and successfully generate usable active drivers from original driver code. And generated active drivers can work normally with or without the synchronization primitives in original driver code. To check the effect of AutoPA on driver reliability, we perform fault injection testing on the generated active drivers, and find that all injected concurrency faults are well tolerated and the drivers can work normally. And the performance of generated active drivers is not obviously degraded compared to original passive drivers.

Original languageEnglish
Title of host publicationCGO 2018 - Proceedings of the 2018 International Symposium on Code Generation and Optimization
PublisherAssociation for Computing Machinery, Inc
Pages288-299
Number of pages12
ISBN (Electronic)9781450356176
DOIs
Publication statusPublished - 24 Feb 2018
Externally publishedYes
Event16th International Symposium on Code Generation and Optimization, CGO 2018 - Vienna, Austria
Duration: 24 Feb 201828 Feb 2018

Publication series

NameCGO 2018 - Proceedings of the 2018 International Symposium on Code Generation and Optimization
Volume2018-February

Conference

Conference16th International Symposium on Code Generation and Optimization, CGO 2018
Country/TerritoryAustria
CityVienna
Period24/02/1828/02/18

Keywords

  • Automation
  • Code instrumentation
  • Concurrency reliability
  • Device driver
  • Program transformation

Fingerprint

Dive into the research topics of 'AutoPA: Automatically generating active driver from original passive driver code'. Together they form a unique fingerprint.

Cite this