Skip to content
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

add client thread synchronization support: condition variables in particular #279

Closed
derekbruening opened this issue Nov 27, 2014 · 3 comments

Comments

@derekbruening
Copy link
Contributor

From derek.br...@gmail.com on April 01, 2010 14:49:29

issue #41 adds client threads but there is no synch support other than DR
locks. there are issues with client threads interacting with DR's synchall
so we need to make sure we provide solutions that have good safe spots and
work well with synchall (xref PR 231301).

Original issue: http://code.google.com/p/dynamorio/issues/detail?id=279

@derekbruening
Copy link
Contributor Author

From derek.br...@gmail.com on January 31, 2011 19:11:15

This issue was closed by revision r567 .

Status: Fixed

@derekbruening
Copy link
Contributor Author

From bruen...@google.com on February 29, 2012 10:38:53

this was incorrectly closed: that was Dr. Memory issue #279 that was fixed by r567

Status: Accepted
Owner: ---

@derekbruening
Copy link
Contributor Author

I'm labeling as GoodContrib but this will take knowledge of DR's synch constraints and invariants to properly add so it will not be trivial.

@derekbruening derekbruening self-assigned this Feb 15, 2017
derekbruening added a commit that referenced this issue Feb 15, 2017
Adds condition-variable-type event objects that threads can wait on and
signal to the API.  The implementation is just a wrapper around the
internal event_t interfaces.

Adds a test to the client.thread test by converting its prior hacky use of
bools and yielding to proper events.

Fixes #279
derekbruening added a commit that referenced this issue Feb 16, 2017
Adds condition-variable-type event objects that threads can wait on and
signal to the API.  The implementation is just a wrapper around the
internal event_t interfaces.

Adds a test to the client.thread test by converting its prior hacky use of
bools and yielding to proper events.

Fixes #279
mikelui added a commit to VANDAL/dynamorio-sigil2 that referenced this issue Feb 23, 2017
This change improves performance and reduces memory bandwidth contention.
Access to the shared memory is handled by a ticket lock that maintains
the order of threads waiting, in an attempt to reduce skew between
thread events. A custom futex implementation had to be used because
DynamoRIO does not provide a conditional variable implementation,
and the use of the pthread library is not allowed in DR clients.

DynamoRIO#279
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant