Open vesalvojdani opened 2 years ago
At the moment, I have been using
goblint -v
to get the preprocessing command and then ran that with-M
to get the list of included files and then copied all those files here.
The json-messages
output should also contain a list of all the files involved. That might be easier to automate as well if desired.
Since we can't lift the benchmarks directly (#3), we could try to extract the race commits from the original sources. Here are the relevant commits:
mhp
analysis does something interesting here, but seems to actually increase the number of "vulnerable" locations compare to the thread analysis. This is too messy; may look at it again at some point.down_interruptible
, but this is far too complicated anyway. Wait queues are replaced by semaphores and it's the kind of producer-consumer type semaphore where one function upon accepting a connection decreases and another function making the requests increases.(The following are not publicly available: https://github.com/torvalds/linux/commit/2e4ce49, https://github.com/torvalds/linux/commit/883f30e)
Preparing the include files
Most of the include files remain the same, but some are generated with the commands
make defconfig && make prepare
, and one has to make some tweaks for this to work with newer versions of gcc:compiler-gcc4.h
to whatever version is currently used.goto
keyword.git diff
w.r.t. the original kernel sources should be added to each benchmark (adaptations.patch
)At the moment, I have been using
goblint -v
to get the preprocessing command and then ran that with-M
to get the list of included files and then copied all those files here. Maybe there is a better way than to just upload them all here. The only files different from the kernel repo are in thegenerated
subdirectories.