Git Product home page Git Product logo

utsaslab / chipmunk Goto Github PK

View Code? Open in Web Editor NEW
18.0 18.0 2.0 206.28 MB

Tool for checking crash-consistency for persistent-memory file systems

License: Apache License 2.0

Makefile 0.25% Go 0.34% HTML 0.01% JavaScript 0.01% CSS 0.01% C++ 1.90% Python 0.13% Shell 0.20% C 95.71% Assembly 1.25% Dockerfile 0.01% Yacc 0.02% Ragel 0.01% Roff 0.04% Perl 0.12% Awk 0.01% sed 0.01% Lex 0.01% UnrealScript 0.01% SmPL 0.02%

chipmunk's People

Contributors

hayley-leblanc avatar omsaran avatar shankarapailoor avatar vijay03 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

omsaran skandbug

chipmunk's Issues

Test 8B chunks of metadata writes rather than 64B

Chipmunk currently permutes 64 byte chunks of metadata, but the actual atomic persistence granularity of Intel Optane PM is 8 bytes. Look into splitting up metadata writes further and how much time this would add to testing; might need additional heuristics to reduce the actual number of permutations.

Finish porting SplitFS testing code to this repo

Right now most of our SplitFS testing code is in a separate repo and the version here does not support SplitFS/user space code testing more broadly. The code is in a private repo but I can give access to someone who is interested in this.

Better bug report deduplication

We have some techniques for deduplicating bug reports (mostly in the Syzkaller reporter), but there are still a lot of duplicates.

Use the same scripts/infrastructure for running ACE and Syzkaller tests

Right now the ACE and Syzkaller tests have distinct test harnesses and separate workflows, which is complicated and increases the amount of effort if you want to run both. We should have a single workflow with an option to choose which one you want to run (plus additional options to specify ACE tests, etc.)

Workaround for `kallsyms_on_each_symbol`

kallsyms_on_each_symbol is no longer exported for use by kernel modules (https://lwn.net/Articles/813350/) but Chipmunk relies on it to find all instances of centralized persistence functions. The current workaround is to modify the tested kernel to export it, but we should find a better way to install kprobes on these functions.

Fix invalid ACE tests

Some tests generated by ACE attempt to invoke system calls in invalid ways (e.g., trying to move a directory into itself).

TODO: add a list of examples

Use ext4-DAX as the oracle for all file systems

Currently the oracle file system is an instance of the same file system being tested, but it would be better for the oracle to be a more mature file system so that (non-crash-consistency) bugs in the target file system cannot obscure crash-consistency bugs.

Refactor loggers

There is a lot of repeated code in the different logger modules (both within each module and across all of them) that could be eliminated via refactoring.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.