diffkemp
diffkemp copied to clipboard
Static analysis of semantic differences in kernel versions
If a semantic preserving change consists of moving a section of code into a separate function and replacing the section with a call to the function, and at the same...
When building the RHEL 8.4 and 8.5 kernels (`4.18.0-305.el8` and `linux-4.18.0-348.el8`, respectively) with the current version, DiffKemp hangs and is waiting for input while building the first function (`__alloc_disk_node`). Upon...
We now have two commands for creating snapshots that use Clang to build the analysed project: `build` and `build-kernel`. Each of these uses a different approach to run LLVM passes:...
`simplifycfg` pass (used for simplifying/merging basic blocks) which is part of passes which are used in `build-kernel` command sometimes represents combined condition with `&&` using `select` instruction instead of `and`...
As part of the CI, we run unit tests with ASan turned on. It would be nice to include a Valgrind run as well to catch additional memory issues such...
A large portion of test runtime is spent on building kernel sources into LLVM IR. This doesn't add much value to the tests b/c the building has very few different...
Since #178, DiffKemp supports user-defined patterns of changes that should be considered semantically equal. Their usage is not very intuitive, though, so it would be nice to document the current...
The README has become quite long so it makes sense to split it into several documents (preferably in a `docs/` folder). This consists of several parts: - [x] #296 -...
DiffKemp has become quite complex so it would be great to document its overall architecture with a brief description of each part.
It would be nice to have some sort of a quick start guide which would contain basics steps for building and running DiffKemp for various common scenarios and setting up...