Paul McKenney's blog article inspired me to try apply his approach to kernel's memory allocation flags (gfp_flags) and how their combinations affect the decisions and actions taken during page allocation. Recent upstream development around these flags leads me to believe that the complexity is too high for me to reason about them and change the code without unintended changes in semantics. So it might be worth to let the computer do the hard work.

If it works out, the approach should allow to verify that changing the code doesn't result in corner cases where some flag combinations don't work as intended. Then we can attempt to e.g. reduce the number of flags and perform other cleanups without fear of breaking everything.

Of course with model checking, the not-so-surprising outcome would be that even the computer cannot handle such code complexity. Then we will at least know that even for humans it's not worth trying...

Looking for hackers with the skills:

modelchecking codeverification

This project is part of:

Hack Week 12

Activity

  • over 10 years ago: pluskalm liked this project.
  • over 10 years ago: vitezslav_cizek liked this project.
  • over 10 years ago: vbabka added keyword "modelchecking" to this project.
  • over 10 years ago: vbabka added keyword "modelchecking" to this project.
  • over 10 years ago: vbabka added keyword "codeverification" to this project.
  • over 10 years ago: vbabka started this project.
  • over 10 years ago: vbabka originated this project.

  • Comments

    Be the first to comment!

    Similar Projects

    Looking at Rust if it could be an interesting programming language by jsmeix

    Get some basic understanding of Rust security related features from a general point of view.

    This Hack Week project is not to learn Rust to become a Rust programmer. This might happen later but it is not the goal of this Hack Week project.

    The goal of this Hack Week project is to evaluate if Rust could be an interesting programming language.

    An interesting programming language must make it easier to write code that is correct and stays correct when over time others maintain and enhance it than the opposite.