-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Original benchmarks from ldv-commits-races #23
Open
vesalvojdani
wants to merge
15
commits into
master
Choose a base branch
from
ldv-commits-races
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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: torvalds/linux@2e4ce49, torvalds/linux@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.