-
Notifications
You must be signed in to change notification settings - Fork 77
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
Generalize mutex-meet-tid privatization to arbitrary digest #1278
Conversation
Unfortunately, this is far from being general enough. I've been trying to get may-have-ever-been-locked digests working on the Unlike the lockset digests and thread ID digests, the observing Besides that, |
I have not looked into the implementation yet, so these are if you want "observations untainted by reality" 😉
No, it suffices here to get the digests, no need to access the actual traces.
I don't really understand what you mean by this: This is the same kind of information as are the thread ids: Things that additionally refine the values -- whether implemented as a map under the global (implementation) or as a in the paper (by having different unknowns).
In what way is this different from the thread id based splitting we already have?
Yes, this is a problem: Actually even the restricted publishing at unlock to only things I have written myself (as well as not reading from your own global invariant for unique threads) is a departure from the generic refinement framework. (See appendix G for the actual instance of |
Ah, yes, these are indeed problems one faces here. I am actually defining the term of being
I don't quite understand this point, as none of the digests should have their own unknowns -- instead they ought to refine the existing ones. But maybe we can discuss this in detail at the GobCon then. |
This discussion can continue in #1286. Although this PR clearly does a generalization, it might not be enough. |
@sim642 does it make sense for me to review this, i.e., is this something that is sound and we should have merged even if it does not generalize as much as we had hoped for? |
I think we should. It better distinguishes TIDs of digest and TIDs of thread returns in these privatizations. |
The current implementation of
PerMutexMeetTIDPriv
for both base and relational analyses hard-codes thread IDs as the digest framework. This generalizes them over a digest module.