A case for static analysis of linux to find faults in interrupt request handlers

Takeshi Yoshimura, Kenji Kono

Research output: Contribution to journalArticle

Abstract

Bugs in operating system kernels threaten system reliability and availability. Static analysis of device drivers is one of the most useful methods to find and fix bugs in operating systems. Unfortunately, existing tools focus on bug patterns that come from developers’ ad hoc beliefs and experiences, although the developers have a chance to utilize many past bug reports. The objective of this paper is to uncover particular types of real bugs in a widely used operating system. Specifically, this paper presents a case for finding six real bugs in Linux when obtaining 160 bug reports about interrupt request line (IRQ) handlers in past Linux. The 160 bug reports enable us to recognize nine patterns of mishandling IRQ handlers, and our analyzer, which is based on the recognized patterns, successfully detects the uncovered bugs.

Original languageEnglish
Pages (from-to)573-582
Number of pages10
JournalJournal of Information Processing
Volume24
Issue number3
DOIs
Publication statusPublished - 2016

Fingerprint

Static analysis
Availability
Linux

Keywords

  • Dependability
  • Operating system
  • Static analysis
  • Symbolic execution

ASJC Scopus subject areas

  • Computer Science(all)

Cite this

A case for static analysis of linux to find faults in interrupt request handlers. / Yoshimura, Takeshi; Kono, Kenji.

In: Journal of Information Processing, Vol. 24, No. 3, 2016, p. 573-582.

Research output: Contribution to journalArticle

@article{0bedb9dc56134a1eb448d562e0688ec5,
title = "A case for static analysis of linux to find faults in interrupt request handlers",
abstract = "Bugs in operating system kernels threaten system reliability and availability. Static analysis of device drivers is one of the most useful methods to find and fix bugs in operating systems. Unfortunately, existing tools focus on bug patterns that come from developers’ ad hoc beliefs and experiences, although the developers have a chance to utilize many past bug reports. The objective of this paper is to uncover particular types of real bugs in a widely used operating system. Specifically, this paper presents a case for finding six real bugs in Linux when obtaining 160 bug reports about interrupt request line (IRQ) handlers in past Linux. The 160 bug reports enable us to recognize nine patterns of mishandling IRQ handlers, and our analyzer, which is based on the recognized patterns, successfully detects the uncovered bugs.",
keywords = "Dependability, Operating system, Static analysis, Symbolic execution",
author = "Takeshi Yoshimura and Kenji Kono",
year = "2016",
doi = "10.2197/ipsjjip.24.573",
language = "English",
volume = "24",
pages = "573--582",
journal = "Journal of Information Processing",
issn = "0387-5806",
publisher = "Information Processing Society of Japan",
number = "3",

}

TY - JOUR

T1 - A case for static analysis of linux to find faults in interrupt request handlers

AU - Yoshimura, Takeshi

AU - Kono, Kenji

PY - 2016

Y1 - 2016

N2 - Bugs in operating system kernels threaten system reliability and availability. Static analysis of device drivers is one of the most useful methods to find and fix bugs in operating systems. Unfortunately, existing tools focus on bug patterns that come from developers’ ad hoc beliefs and experiences, although the developers have a chance to utilize many past bug reports. The objective of this paper is to uncover particular types of real bugs in a widely used operating system. Specifically, this paper presents a case for finding six real bugs in Linux when obtaining 160 bug reports about interrupt request line (IRQ) handlers in past Linux. The 160 bug reports enable us to recognize nine patterns of mishandling IRQ handlers, and our analyzer, which is based on the recognized patterns, successfully detects the uncovered bugs.

AB - Bugs in operating system kernels threaten system reliability and availability. Static analysis of device drivers is one of the most useful methods to find and fix bugs in operating systems. Unfortunately, existing tools focus on bug patterns that come from developers’ ad hoc beliefs and experiences, although the developers have a chance to utilize many past bug reports. The objective of this paper is to uncover particular types of real bugs in a widely used operating system. Specifically, this paper presents a case for finding six real bugs in Linux when obtaining 160 bug reports about interrupt request line (IRQ) handlers in past Linux. The 160 bug reports enable us to recognize nine patterns of mishandling IRQ handlers, and our analyzer, which is based on the recognized patterns, successfully detects the uncovered bugs.

KW - Dependability

KW - Operating system

KW - Static analysis

KW - Symbolic execution

UR - http://www.scopus.com/inward/record.url?scp=84968845940&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84968845940&partnerID=8YFLogxK

U2 - 10.2197/ipsjjip.24.573

DO - 10.2197/ipsjjip.24.573

M3 - Article

AN - SCOPUS:84968845940

VL - 24

SP - 573

EP - 582

JO - Journal of Information Processing

JF - Journal of Information Processing

SN - 0387-5806

IS - 3

ER -