An effective method to control interrupt handler for data race detection

  • Authors:
  • Makoto Higashi;Tetsuo Yamamoto;Yasuhiro Hayase;Takashi Ishio;Katsuro Inoue

  • Affiliations:
  • Osaka University;Ritsumeikan University;Osaka University;Osaka University;Osaka University

  • Venue:
  • Proceedings of the 5th Workshop on Automation of Software Test
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Embedded software frequently uses interrupts for timer or I/O processing. If a memory area is used by both an interrupt handler and other routines at the same time, the embedded system has the potential to fail because of unexpected data in the memory. To detect the race conditions of memory, this paper proposes a method of interrupt testing on a CPU emulator. The method consists of two features: one is interrupt generation at the instruction points that possibly causes race conditions; the other is replacing input value from external device to control interrupt handlers. An interrupt is generated just after the program reads or writes data on memory for the purpose of covering all possibility of sharing memory between the interrupt handler and other routines. Sequence of input value from the external device is prepared by hand before program execution. We have applied our method to testing for a race condition of uClinux. The experience of detecting race conditions has shown the mechanism causes interrupts at necessary and sufficient timing compared with random interrupt testing. Also, it is easy to substitute values in memory to detect race conditions.