Analyzing Persistent Memory Crash Consistency of WineFS with Vinter

  • Type:Bachelor Thesis
  • Date:13.10.2023
  • Supervisor:

    Prof. Dr. Frank Bellosa
    Lukas Werling

  • Graduand:Paul Wedeck
  • Links:PDF
  • Abstract
    Persistent memory (PM) is a recent storage technology. Contrary to classical storage devices, PM has a different persistency model that adds new challenges in ensuring that each persisted state is valid. This is especially relevant for file systems because they are supposed to remain consistent regardless of random crashes.
    WineFS is a novel PM file system. It attempts to retain a high performance for aged file systems. Based on the assumption that hugepages improve the file access performance, it features a novel memory allocator that attempts to minimize fragmentation and preferably serve allocation requests with hugepages. We used the testing framework Vinter to analyze WineFS for crash consistency. Vinter traces a test sequence and simulates crashes and their results at potentially interesting positions. Crash images are generated based on the persistency model of the platform, to ensure that each crash state could actually happen.
    To aid our analysis, we modified Vinter in several aspects. We added a mechanism to load precreated PM images and generate code coverage for the tested file system. Additionally, we achieved significant performance improvements using output compression and multi-threading. During our analysis, we discovered several minor and two potentially critical bugs and we propose fixes to all newly discovered bugs. We confirmed all previously reported crash consistency bugs in WineFS and validated that all proposed bug fixes resolve their respective bug in our test cases.

    BibTex:

    @bacholorthesis{wedeck23WineFSVinter,
      author = {Paul Wedeck},
      title = {Analyzing Persistent Memory Crash
    Consistency of WineFS with Vinter},
      type = {Bachelor Thesis},
      year = 2023,
      month = oct # "13",
      school = {Operating Systems Group, Karlsruhe Institute of Technology (KIT), Germany}
      }