跳到主要导航 跳到搜索 跳到主要内容

AutoPA: Automatically generating active driver from original passive driver code

  • Tsinghua University

科研成果: 书/报告/会议事项章节会议稿件同行评审

摘要

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.

源语言英语
主期刊名CGO 2018 - Proceedings of the 2018 International Symposium on Code Generation and Optimization
出版商Association for Computing Machinery, Inc
288-299
页数12
ISBN(电子版)9781450356176
DOI
出版状态已出版 - 24 2月 2018
已对外发布
活动16th International Symposium on Code Generation and Optimization, CGO 2018 - Vienna, 奥地利
期限: 24 2月 201828 2月 2018

出版系列

姓名CGO 2018 - Proceedings of the 2018 International Symposium on Code Generation and Optimization
2018-February

会议

会议16th International Symposium on Code Generation and Optimization, CGO 2018
国家/地区奥地利
Vienna
时期24/02/1828/02/18

指纹

探究 'AutoPA: Automatically generating active driver from original passive driver code' 的科研主题。它们共同构成独一无二的指纹。

引用此