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

Effective Detection of Sleep-in-atomic-context Bugs in the Linux Kernel

  • Jia Ju Bai
  • , Julia Lawall
  • , Shi Min Hu*
  • *此作品的通讯作者
  • Tsinghua University
  • Sorbonne Université

科研成果: 期刊稿件文章同行评审

摘要

Atomic context is an execution state of the Linux kernel in which kernel code monopolizes a CPU core. In this state, the Linux kernel may only perform operations that cannot sleep, as otherwise a system hang or crash may occur. We refer to this kind of concurrency bug as a sleep-in-atomic-context (SAC) bug. In practice, SAC bugs are hard to find, as they do not cause problems in all executions. In this article, we propose a practical static approach named DSAC to effectively detect SAC bugs in the Linux kernel. DSAC uses three key techniques: (1) a summary-based analysis to identify the code that may be executed in atomic context, (2) a connection-based alias analysis to identify the set of functions referenced by a function pointer, and (3) a path-check method to filter out repeated reports and false bugs. We evaluate DSAC on Linux 4.17 and find 1,159 SAC bugs. We manually check all the bugs and find that 1,068 bugs are real. We have randomly selected 300 of the real bugs and sent them to kernel developers. 220 of these bugs have been confirmed, and 51 of our patches fixing 115 bugs have been applied.

源语言英语
文章编号10
期刊ACM Transactions on Computer Systems
36
4
DOI
出版状态已出版 - 6月 2020
已对外发布

指纹

探究 'Effective Detection of Sleep-in-atomic-context Bugs in the Linux Kernel' 的科研主题。它们共同构成独一无二的指纹。

引用此