Skip to main content

Scalable Thread-Modular Approach for Data Race Detection

  • Conference paper
  • First Online:
Frontiers in Software Engineering Education (FISEE 2019)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 12271))

Included in the following conference series:

Abstract

Most of the state-of-the-art verifiers do not scale well on complicated software. Concurrency benchmarks from SV-COMP based on Linux device drivers cause significant difficulties for any software model checker tool.

We suggest a method, which is based on the Thread-Modular approach and Configurable Program Analysis theory. It overapproximates a potential thread iteration by a “worst case” assumption, that the threads may change the shared data in any way. The suggestion allows to avoid construction of a precise thread environment and simplifies the analysis.

For data race detection we use an extension of the Lockset algorithm based on compatibility of partial states. A BnB memory model allows to deal with complicated data structures without a precise alias analysis.

The approach was evaluated on benchmarks set, based on Linux device drivers. The approach allows verifying industrial software, as it was shown on the Linux drivers benchmarks. Predicate abstraction keeps false alarms rate on a reasonable level.

The research was carried out with funding from the Ministry of Science and Higher Education of the Russian Federation (the project unique identifier is RFMEFI60719X0295).

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    sv-benchmarks/c/ldv-linux-3.14-races/directory.

  2. 2.

    https://gitlab.com/sosy-lab/software/ldv-benchmarks.git, directory linux-4.2.6-races.

References

  1. Abdulla, P., Aronis, S., Jonsson, B., Sagonas, K.: Optimal dynamic partial order reduction. SIGPLAN Not. 49(1), 373–384 (2014)

    Article  Google Scholar 

  2. Godefroid, P.: Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem. Springer, Heidelberg (1996). https://doi.org/10.1007/3-540-60761-7

    Book  MATH  Google Scholar 

  3. Basler, G., Mazzucchi, M., Wahl, T., Kroening, D.: Symbolic counter abstraction for concurrent software. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 64–78. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02658-4_9

    Chapter  Google Scholar 

  4. Beyer, D.: Automatic verification of C and Java programs: SV-COMP 2019. In: Beyer, D., Huisman, M., Kordon, F., Steffen, B. (eds.) TACAS 2019. LNCS, vol. 11429, pp. 133–155. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-17502-3_9

    Chapter  Google Scholar 

  5. Henzinger, T.A., Jhala, R., Majumdar, R., Qadeer, S.: Thread-modular abstraction refinement. In: Hunt, W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 262–274. Springer, Heidelberg (2003). https://doi.org/10.1007/978-3-540-45069-6_27

    Chapter  Google Scholar 

  6. Gupta, A., Popeea, C., Rybalchenko, A.: Threader: a constraint-based verifier for multi-threaded programs. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 412–417. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22110-1_32

    Chapter  Google Scholar 

  7. Friedberger, K.: CPA-BAM: block-abstraction memoization with value analysis and predicate analysis. In: Chechik, M., Raskin, J.-F. (eds.) TACAS 2016. LNCS, vol. 9636, pp. 912–915. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-49674-9_58

    Chapter  Google Scholar 

  8. Andrianov, P., Friedberger, K., Mandrykin, M., Mutilin, V., Volkov, A.: CPA-BAM-BnB: block-abstraction memoization and region-based memory models for predicate abstractions. In: Legay, A., Margaria, T. (eds.) TACAS 2017. LNCS, vol. 10206, pp. 355–359. Springer, Heidelberg (2017). https://doi.org/10.1007/978-3-662-54580-5_22

    Chapter  Google Scholar 

  9. Clarke, E.M., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, pp. 154–169. Springer, Heidelberg (2000). https://doi.org/10.1007/10722167_15

    Chapter  Google Scholar 

  10. Graf, S., Saidi, H.: Construction of abstract state graphs with PVS. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 72–83. Springer, Heidelberg (1997). https://doi.org/10.1007/3-540-63166-6_10

    Chapter  Google Scholar 

  11. Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., Anderson, T.: Eraser: a dynamic data race detector for multi-threaded programs. SIGOPS Oper. Syst. Rev. 31(5), 27–37 (1997)

    Article  Google Scholar 

  12. Novikov, E., Zakharov, I.: Towards automated static verification of GNU C programs. In: Petrenko, A.K., Voronkov, A. (eds.) PSI 2017. LNCS, vol. 10742, pp. 402–416. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-74313-4_30

    Chapter  Google Scholar 

  13. Novikov, E., Zakharov, I.: Verification of operating system monolithic kernels without extensions. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11247, pp. 230–248. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03427-6_19

    Chapter  Google Scholar 

  14. Beyer, D., Henzinger, T.A., Théoduloz, G.: Configurable software verification: concretizing the convergence of model checking and program analysis. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 504–518. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-73368-3_51

    Chapter  MATH  Google Scholar 

  15. Beyer, D., Henzinger, T.A., Theoduloz, G.: Program analysis with dynamic precision adjustment. In: 2008 23rd IEEE/ACM International Conference on Automated Software Engineering, pp. 29–38, September 2008

    Google Scholar 

  16. Beyer, D., Keremoglu, M.E., Wendler, P.: Predicate abstraction with adjustable-block encoding. In: Formal Methods in Computer-Aided Design, FMCAD 2010 (2010)

    Google Scholar 

  17. Bornat, R.: Proving pointer programs in hoare logic. In: Backhouse, R., Oliveira, J. (eds.) MPC 2000. LNCS, vol. 1837, pp. 102–126. Springer, Heidelberg (2000). https://doi.org/10.1007/10722010_8

    Chapter  Google Scholar 

  18. Burstall, R.M.: Some techniques for proving correctness of programs which alter data structures. Mach. Intell. 7, 23–50 (1972)

    MATH  Google Scholar 

  19. Beyer, D., Löwe, S., Wendler, P.: Reliable benchmarking: requirements and solutions. Int. J. Softw. Tools Technol. Trans. 21(1), 1–29 (2017). https://doi.org/10.1007/s10009-017-0469-y

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Pavel Andrianov .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Andrianov, P., Mutilin, V. (2020). Scalable Thread-Modular Approach for Data Race Detection. In: Bruel, JM., Capozucca, A., Mazzara, M., Meyer, B., Naumchev, A., Sadovykh, A. (eds) Frontiers in Software Engineering Education. FISEE 2019. Lecture Notes in Computer Science(), vol 12271. Springer, Cham. https://doi.org/10.1007/978-3-030-57663-9_24

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-57663-9_24

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-57662-2

  • Online ISBN: 978-3-030-57663-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics