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

Optimized Tracing and Restoring Replay Support #261

Merged
merged 16 commits into from
Jul 23, 2018

Conversation

daumayr
Copy link
Contributor

@daumayr daumayr commented Jul 23, 2018

This PR contains the second half of the changes to the tracing implementation.
The changes include a move away from ByteBuffer, instead byte arrays and unsafe are used.
Furthermore, Truffle Nodes are used for tracing to achieve lower overhead.

daumayr and others added 11 commits July 23, 2018 10:34
Don’t write currentActor in every actorContext recording

This seems just in the wrong place, and just writes itself, even if not necessary.

Signed-off-by: Stefan Marr <git@stefan-marr.de>
This one is needed for all buffer changes

Remove recordActorCreation, was replaced by node

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Reduce code duplication in received message handling

Move more of the old tracing also intro the received call targets

Factor our redundant code

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
This avoids many recurring specializations in the tracing nodes we need.

Signed-off-by: Stefan Marr <git@stefan-marr.de>
[Fix] id tracing, remove unneeded code

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
ByteBuffer didn’t do much useful things, and cost another indirection for tracing. Let’s see whether this makes any difference.

Signed-off-by: Stefan Marr <git@stefan-marr.de>
@@ -302,9 +302,6 @@ private void execute(final EventualMessage msg,
if (VmSettings.KOMPOS_TRACING) {
KomposTrace.scopeEnd(DynamicScopeType.TURN);
}
if (VmSettings.ACTOR_TRACING) {
ActorExecutionTrace.recordMessage(msg);
}
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this removal correct?

Copy link
Contributor Author

@daumayr daumayr Jul 23, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, messages are now traced in ReceivedRootNode.

@smarr smarr force-pushed the Tracing-and-Replay-Infrastructure branch from 109d8d8 to a1479ab Compare July 23, 2018 10:36
@smarr smarr added this to the v0.7.0 milestone Jul 23, 2018
@smarr smarr added the enhancement Improves the implementation with something noteworthy label Jul 23, 2018
Copy link
Owner

@smarr smarr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you.
Looks good to me.

Will merge once the benchmarks completed.

@smarr smarr changed the title Tracing and replay infrastructure Optimized Tracing and Restoring Replay Support Jul 23, 2018
@smarr smarr merged commit 4f4f693 into smarr:dev Jul 23, 2018
@daumayr daumayr deleted the Tracing-and-Replay-Infrastructure branch July 24, 2018 06:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improves the implementation with something noteworthy
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants