skip to main content
10.1145/1808266.1808278acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

An effective method to control interrupt handler for data race detection

Published: 03 May 2010 Publication History

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.

References

[1]
Dwarf home. http://dwarfstd.org/.
[2]
Gdb: The GNU project debugger. http://www.gnu.org/software/gdb/.
[3]
SkyEye - open source simulator. http://www.skyeye.org/.
[4]
L. Albertsson. Entropy injection. SICS Technical Report, T2007(2), February 2007.
[5]
T. Ball, E. Bounimova, B. Cook, V. Levin, J. Lichtenberg, C. McGarvey, B. Ondrusek, S. K. Rajamani, and A. Ustuner. Thorough static analysis of device drivers. ACM SIGOPS Operating Systems Review, 44(4):73--85, October 2006.
[6]
J. Carreira, H. Madeira, and J. G. Silva. Xception: A technique for the experimental evaluation of dependability in modern computers. IEEE Transactions on Software Engineering, 24(2):125--136, February 1998.
[7]
F. M. David, E. M. Chan, J. C. Carlyle, and R. H. Campbell. Qinject: A virtual machine based fault injection framework. International Conference on Architectural Support for Programming Languages and Operating Systems (Poster Presentation), March 2008.
[8]
D. Engler and K. Ashcraft. Racerx: Effective, static detection of race conditions and deadlocks. ACM SIGOPS Operating Systems Review, 37(5):237--252, December 2003.
[9]
C. Flanagan and S. N. Freund. Fasttrack: efficient and precise dynamic race detection. In Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 121--133, June 2009.
[10]
M.-C. Hsueh, T. K. Tsai, and R. K. Iyer. Fault injection techniques and tools. IEEE Computer, 30(4):75--82, April 1997.
[11]
P. Joshi, C.-S. Park, K. Sen, and M. Naik. A randomized dynamic program analysis technique for detecting real deadlocks. In Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 110--120, June 2009.
[12]
N. G. Leveson. An investigation of the therac-25 accidents. IEEE Computer, 26(7):18--41, July 1993.
[13]
D. Marino, M. Musuvathi, and S. Narayanasamy. Literace: effective sampling for lightweight data-race detection. In Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 134--143, June 2009.
[14]
E. G. Mercer and M. D. Jones. Model checking machine code with the GNU debugger. In 12th International SPIN Workshop, pages 251--265, August 2005.
[15]
R. H. B. Netzer and B. P. Miller. What are race conditions?: Some issues and formalizations. ACM Letters on Programming Languages and Systems, 1(1):74--88, March 1992.
[16]
J. Regehr. Random testing of interrupt-driven software. In EMSOFT '05: Proceedings of the 5th ACM international conference on Embedded software, pages 290--298, September 2005.
[17]
J. Regehr and N. Cooprider. Interrupt verification via thread verification. Electronic Notes in Theoretical Computer Science, 174(9):139--150, June 2007.

Cited By

View all
  • (2024)Bounded Verification of Atomicity Violations for Interrupt-Driven Programs via Lazy SequentializationACM Transactions on Software Engineering and Methodology10.1145/370531134:3(1-33)Online publication date: 22-Nov-2024
  • (2024)Efficient data race detection for interrupt-driven programs via path feasibility analysisThe Journal of Supercomputing10.1007/s11227-024-06189-480:15(21699-21725)Online publication date: 14-Jun-2024
  • (2023)Precise Dynamic Data Race Prediction for Interrupt-Driven Embedded Software2023 IEEE 34th International Symposium on Software Reliability Engineering Workshops (ISSREW)10.1109/ISSREW60843.2023.00049(69-74)Online publication date: 9-Oct-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
AST '10: Proceedings of the 5th Workshop on Automation of Software Test
May 2010
154 pages
ISBN:9781605589701
DOI:10.1145/1808266
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 May 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. embedded systems
  2. fault injection
  3. interrupt-driven software
  4. race condition

Qualifiers

  • Research-article

Funding Sources

Conference

ICSE '10
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)1
Reflects downloads up to 08 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Bounded Verification of Atomicity Violations for Interrupt-Driven Programs via Lazy SequentializationACM Transactions on Software Engineering and Methodology10.1145/370531134:3(1-33)Online publication date: 22-Nov-2024
  • (2024)Efficient data race detection for interrupt-driven programs via path feasibility analysisThe Journal of Supercomputing10.1007/s11227-024-06189-480:15(21699-21725)Online publication date: 14-Jun-2024
  • (2023)Precise Dynamic Data Race Prediction for Interrupt-Driven Embedded Software2023 IEEE 34th International Symposium on Software Reliability Engineering Workshops (ISSREW)10.1109/ISSREW60843.2023.00049(69-74)Online publication date: 9-Oct-2023
  • (2022)Automatic Detection, Validation, and Repair of Race Conditions in Interrupt-Driven Embedded SoftwareIEEE Transactions on Software Engineering10.1109/TSE.2020.298917148:1(346-363)Online publication date: 1-Jan-2022
  • (2022)Interruption-driven resource competition defect model and testing methodology2022 IEEE 6th Advanced Information Technology, Electronic and Automation Control Conference (IAEAC )10.1109/IAEAC54830.2022.9930087(602-616)Online publication date: 3-Oct-2022
  • (2018)Debugging Nondeterministic Failures in Linux Programs through Replay AnalysisScientific Programming10.1155/2018/89390272018Online publication date: 1-Jan-2018
  • (2018)A hybrid approach to testing for nonfunctional faults in embedded systems using genetic algorithmsSoftware Testing, Verification and Reliability10.1002/stvr.168628:7Online publication date: 16-Aug-2018
  • (2017)Modular verification of interrupt-driven softwareProceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering10.5555/3155562.3155592(206-216)Online publication date: 30-Oct-2017
  • (2017)Automatic detection and validation of race conditions in interrupt-driven embedded softwareProceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3092703.3092724(113-124)Online publication date: 10-Jul-2017
  • (2017)Modular verification of interrupt-driven software2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE.2017.8115634(206-216)Online publication date: Oct-2017
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media