Skip to main content

Predicate Abstraction Based Configurable Method for Data Race Detection in Linux Kernel

  • Conference paper
  • First Online:
Tools and Methods of Program Analysis (TMPA 2017)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 779))

Included in the following conference series:

Abstract

The paper presents a configurable method for static data race detection. The method is based on a lightweight approach that implements Lockset algorithm with a simplified memory model. The paper contributes two heavyweight extensions which allow to adjust required precision of the analysis by choosing the balance between spent resources and a number of false alarms. The extensions are (1) counterexample guided refinement based on predicate abstraction and (2) thread analysis. The approach was implemented in the CPALockator tool and was applied to Linux kernel modules. Real races found by the tool have been approved and fixed by Linux kernel developers.

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

Similar content being viewed by others

References

  1. Alglave, J., Kroening, D., Tautschnig, M.: Partial orders for efficient bounded model checking of concurrent software. In: Sharygina, N., Veith, H. (eds.) CAV 2013. LNCS, vol. 8044, pp. 141–157. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39799-8_9

    Chapter  Google Scholar 

  2. Andrianov, P., Khoroshilov, A., Mutilin, V.: Lightweight static analysis for data race detection in operating system kernels. In: Proceedings of TMPA-2014, pp. 128–135 (2014)

    Google Scholar 

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

    Google Scholar 

  4. 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  Google Scholar 

  5. Clarke, E., 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 

  6. Craig, W.: Three uses of the herbrand-gentzen theorem in relating model theory and proof theory. J. Symbolic Logic 22(3), 269–285 (1957), https://www.cambridge.org/core/article/three-uses-of-the-herbrand-gentzen-theorem-in-relating-model-theory-and-proof-theory/7674DE501824D8FC294FB396CD5617DB

  7. 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 

  8. Henzinger, T.A., Jhala, R., Majumdar, R., McMillan, K.L.: Abstractions from proofs. SIGPLAN Not. 39(1), 232–244 (2004)

    Article  MATH  Google Scholar 

  9. Inverso, O., Tomasco, E., Fischer, B., La Torre, S., Parlato, G.: Bounded model checking of multi-threaded C programs via lazy sequentialization. In: Biere, A., Bloem, R. (eds.) CAV 2014. LNCS, vol. 8559, pp. 585–602. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-08867-9_39

    Google Scholar 

  10. Levenson, N.: Safeware: system safety and computers (1995)

    Google Scholar 

  11. Mutilin, V., Novikov, E., Khoroshilov, A.: Analysis of typical faults in Linux operating system drivers (in Russian). Proc. Inst. Syst. Program. RAS 22, 349–374 (2012)

    Article  Google Scholar 

  12. 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 

  13. Zakharov, I.S., Mutilin, V.S., Khoroshilov, A.V.: Pattern-based environment modeling for static verification of Linux kernel modules. Program. Comput. Softw. 41(3), 183–195 (2015)

    Article  MathSciNet  MATH  Google Scholar 

  14. Zakharov, I., Mandrykin, M., Mutilin, V., Novikov, E., Petrenko, A., Khoroshilov, A.: Configurable toolset for static verification of operating systems kernel modules. Program. Comput. Softw. 41(1), 49–64 (2015), http://dx.doi.org/10.1134/S0361768815010065

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

© 2018 Springer International Publishing AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Andrianov, P., Mutilin, V., Khoroshilov, A. (2018). Predicate Abstraction Based Configurable Method for Data Race Detection in Linux Kernel. In: Itsykson, V., Scedrov, A., Zakharov, V. (eds) Tools and Methods of Program Analysis. TMPA 2017. Communications in Computer and Information Science, vol 779. Springer, Cham. https://doi.org/10.1007/978-3-319-71734-0_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-71734-0_2

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-71733-3

  • Online ISBN: 978-3-319-71734-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics