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 drcachesim global trace duration limit that does not kill the process #4462

Closed
derekbruening opened this issue Sep 29, 2020 · 0 comments · Fixed by #4479
Closed

Add drcachesim global trace duration limit that does not kill the process #4462

derekbruening opened this issue Sep 29, 2020 · 0 comments · Fixed by #4479

Comments

@derekbruening
Copy link
Contributor

To limit the trace size for cases where adding start/stop calls into the code is not feasible or convenient, we have the -exit_after_tracing and -max_trace_refs options. However, the former kills the process, causing various job control and post-trace-action problems, while the latter is a per-thread limit, which is not useful for limiting the overall window.

We want either a -detach_after_tracing, which requires a client-triggered detach which is #2644, or a -max_global_trace_refs.

@derekbruening derekbruening self-assigned this Sep 29, 2020
derekbruening added a commit that referenced this issue Oct 2, 2020
Do not try to get the application value of the stolen register on the
jump barrier used for drreg parity in filtered drcachesim
instrumentation.

Enable thread filtering on non-x86: there is no missing support there.

Tested by locally enabling the tool.drcacheoff.burst_threadfilter test
(it is disabled for AArch64 because of the #2007 link failure in some
toolchains), working around #4468 with "-steal_register 25", and
confirming that the drreg failure disappears with the fix here.

This is needed for the forthcoming new global filter for drcachesim
(#4462), in addition to the thread filter feature.  An
enabled-on-AArch64 test should be added as part of that feature to
serve as a regression test here, if #2007 has not been resolved by
then to enable the thread filter test.

Issue: #4461, #4462
Fixes #4461
derekbruening added a commit that referenced this issue Oct 2, 2020
Do not try to get the application value of the stolen register on the
jump barrier used for drreg parity in filtered drcachesim
instrumentation.

Enable thread filtering on non-x86: there is no missing support there.

Tested by locally enabling the tool.drcacheoff.burst_threadfilter test
(it is disabled for AArch64 because of the #2007 link failure in some
toolchains), working around #4468 with "-steal_register 25", and
confirming that the drreg failure disappears with the fix here.

This is needed for the forthcoming new global filter for drcachesim
(#4462), in addition to the thread filter feature.  An
enabled-on-AArch64 test should be added as part of that feature to
serve as a regression test here, if #2007 has not been resolved by
then to enable the thread filter test.

Issue: #4461, #4462
Fixes #4461
derekbruening added a commit that referenced this issue Oct 7, 2020
Adds a new drcachesim memtrace option -max_global_trace_refs to supply
a global trace size limit that does not kill the process.  When the
maximum is reached, the tracer omits traces for new threads entirely.

Add an online and an offline test for the feature.

Adds documentation.

Fixes #4462
derekbruening added a commit that referenced this issue Oct 8, 2020
Adds a new drcachesim memtrace option -max_global_trace_refs to supply
a global trace size limit that does not kill the process.  When the
maximum is reached, the tracer omits traces for new threads entirely.

Adds an online and an offline test for the feature.

Adds documentation.

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

Successfully merging a pull request may close this issue.

1 participant