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 mad skills in:

modelchecking codeverification

This project is part of:

Hack Week 12

Activity

  • over 4 years ago: pluskalm liked Try to model check gfp_flags with cbmc
  • over 4 years ago: vitezslav_cizek liked Try to model check gfp_flags with cbmc
  • over 4 years ago: vbabka added keyword "modelchecking" to Try to model check gfp_flags with cbmc
  • over 4 years ago: vbabka added keyword "codeverification" to Try to model check gfp_flags with cbmc
  • over 4 years ago: vbabka added keyword "modelchecking" to Try to model check gfp_flags with cbmc
  • Show History

    Comments

    Be the first to comment!

    Similar Projects

    This project is one of its kind!