文件最后提交记录最后更新时间
.ocamlformat: 0.21 -> 0.24.1 Signed-off-by: Hao Lian <hi@haolian.org> 3 年前
Updated perf decoding to process event types and periods and use event names for classification `perf script` has support to pass the field `event` which actually outputs the type of the event. This actually helps improve classification by not just matching the perf line against regex and instead parsing the name of the event. And this also helps us recognize the new sampled events which we would not be able to differentiate otherwise. This commit just reworks the decoding to support parsing these event names and also the periods that can be outputted. Additionally all the tests are updated to support this. Signed-off-by: Aaron Lamoreaux <alamoreaux@janestreet.com> 3 年前
Fix stairstepping OCaml traces when exceptions are involved This commit fixes two bugs: * `caml_raise_exn` modifies the stack and then `ret`s into an `entertrap`, so we need to also do `entertrap` fixups on returns. * Trap callstacks would often have the symbol of the parent frame re-inferred, which would result in doubling up of that frame. We fix this by seeding the trap callstack with a synthetic frame, which we make sure to delete before outputting trace events. A more principled approach would be to have `Callstack` know about traps directly and avoid creating new `Callstack.t`s for them, but that work is deferred to someday that isn't today. Signed-off-by: Tudor Brindus <tbrindus@janestreet.com> 2 年前
Allow magic-trace with run perf with sampling if Intel PT is unavailable. Signed-off-by: Aaron Lamoreaux <alamoreaux@janestreet.com> 3 年前
Added decoding/trace writing tests for sampling extra events The goal of this PR is to allow support to sample other events from perf, e.g. `branch-misses`, `cache-misses`. Although this is a nice feature, the goal is also to already have support for processing these events through sampling, so that when we have PEBS-via-PT available, we can also have these events in the processor trace stream. Now the user can pass `-events` along with a comma separated list of either names like `branch-misses` or sexps which allow the user to control the event period. These will then show up on separate tracks along with the actual trace as arrows representing every sample. I also drafted a [new wiki page](https://github.com/Lamoreauxaj/magic-trace/wiki/Sampling-extra-events) and referenced in the help docs for `-events` which would need to be updated along with this PR. This commit solely adds new tests which include both branch-misses and cache-misses as well as the Intel PT stream or a stacktrace sampled stream. Signed-off-by: Aaron Lamoreaux <alamoreaux@janestreet.com> 3 年前
Merge `core` and `src` directories The split made sense back when we were pursuing a direct backend, but now it only serves to confuse. Signed-off-by: Tudor Brindus <tbrindus@janestreet.com> 1 年前
add -events-output flag and output callstacks along events Signed-off-by: Fredrik Ekholm <fekholm@janestreet.com> 3 年前
Add proper abort handling for Intel Transactional Synchronization Extensions (TSX) This also makes a minor change which corrects error printing, where a flush was intended (%!) but the % accidentally omitted. Closes #284. Signed-off-by: Brian Nigito <bnigito@janestreet.com> 1 年前
Notice and handle decode errors in perf traces This makes spans look good when we flush on decode errors. This embeds a fairly large refactor of trace_writer.ml because it was impossible to figure out what was going on without it. Testing: Loaded up a trace with 115 (!) decode errors and it actually looked pretty good. 4 年前
Merge `core` and `src` directories The split made sense back when we were pursuing a direct backend, but now it only serves to confuse. Signed-off-by: Tudor Brindus <tbrindus@janestreet.com> 1 年前
Fix stairstepping OCaml traces when exceptions are involved This commit fixes two bugs: * `caml_raise_exn` modifies the stack and then `ret`s into an `entertrap`, so we need to also do `entertrap` fixups on returns. * Trap callstacks would often have the symbol of the parent frame re-inferred, which would result in doubling up of that frame. We fix this by seeding the trap callstack with a synthetic frame, which we make sure to delete before outputting trace events. A more principled approach would be to have `Callstack` know about traps directly and avoid creating new `Callstack.t`s for them, but that work is deferred to someday that isn't today. Signed-off-by: Tudor Brindus <tbrindus@janestreet.com> 2 年前
Added decoding/trace writing tests for sampling extra events The goal of this PR is to allow support to sample other events from perf, e.g. `branch-misses`, `cache-misses`. Although this is a nice feature, the goal is also to already have support for processing these events through sampling, so that when we have PEBS-via-PT available, we can also have these events in the processor trace stream. Now the user can pass `-events` along with a comma separated list of either names like `branch-misses` or sexps which allow the user to control the event period. These will then show up on separate tracks along with the actual trace as arrows representing every sample. I also drafted a [new wiki page](https://github.com/Lamoreauxaj/magic-trace/wiki/Sampling-extra-events) and referenced in the help docs for `-events` which would need to be updated along with this PR. This commit solely adds new tests which include both branch-misses and cache-misses as well as the Intel PT stream or a stacktrace sampled stream. Signed-off-by: Aaron Lamoreaux <alamoreaux@janestreet.com> 3 年前
Added decoding/trace writing tests for sampling extra events The goal of this PR is to allow support to sample other events from perf, e.g. `branch-misses`, `cache-misses`. Although this is a nice feature, the goal is also to already have support for processing these events through sampling, so that when we have PEBS-via-PT available, we can also have these events in the processor trace stream. Now the user can pass `-events` along with a comma separated list of either names like `branch-misses` or sexps which allow the user to control the event period. These will then show up on separate tracks along with the actual trace as arrows representing every sample. I also drafted a [new wiki page](https://github.com/Lamoreauxaj/magic-trace/wiki/Sampling-extra-events) and referenced in the help docs for `-events` which would need to be updated along with this PR. This commit solely adds new tests which include both branch-misses and cache-misses as well as the Intel PT stream or a stacktrace sampled stream. Signed-off-by: Aaron Lamoreaux <alamoreaux@janestreet.com> 3 年前
Added decoding/trace writing tests for sampling extra events The goal of this PR is to allow support to sample other events from perf, e.g. `branch-misses`, `cache-misses`. Although this is a nice feature, the goal is also to already have support for processing these events through sampling, so that when we have PEBS-via-PT available, we can also have these events in the processor trace stream. Now the user can pass `-events` along with a comma separated list of either names like `branch-misses` or sexps which allow the user to control the event period. These will then show up on separate tracks along with the actual trace as arrows representing every sample. I also drafted a [new wiki page](https://github.com/Lamoreauxaj/magic-trace/wiki/Sampling-extra-events) and referenced in the help docs for `-events` which would need to be updated along with this PR. This commit solely adds new tests which include both branch-misses and cache-misses as well as the Intel PT stream or a stacktrace sampled stream. Signed-off-by: Aaron Lamoreaux <alamoreaux@janestreet.com> 3 年前
Added decoding/trace writing tests for sampling extra events The goal of this PR is to allow support to sample other events from perf, e.g. `branch-misses`, `cache-misses`. Although this is a nice feature, the goal is also to already have support for processing these events through sampling, so that when we have PEBS-via-PT available, we can also have these events in the processor trace stream. Now the user can pass `-events` along with a comma separated list of either names like `branch-misses` or sexps which allow the user to control the event period. These will then show up on separate tracks along with the actual trace as arrows representing every sample. I also drafted a [new wiki page](https://github.com/Lamoreauxaj/magic-trace/wiki/Sampling-extra-events) and referenced in the help docs for `-events` which would need to be updated along with this PR. This commit solely adds new tests which include both branch-misses and cache-misses as well as the Intel PT stream or a stacktrace sampled stream. Signed-off-by: Aaron Lamoreaux <alamoreaux@janestreet.com> 3 年前
Merge `core` and `src` directories The split made sense back when we were pursuing a direct backend, but now it only serves to confuse. Signed-off-by: Tudor Brindus <tbrindus@janestreet.com> 1 年前
Fix stairstepping OCaml traces when exceptions are involved This commit fixes two bugs: * `caml_raise_exn` modifies the stack and then `ret`s into an `entertrap`, so we need to also do `entertrap` fixups on returns. * Trap callstacks would often have the symbol of the parent frame re-inferred, which would result in doubling up of that frame. We fix this by seeding the trap callstack with a synthetic frame, which we make sure to delete before outputting trace events. A more principled approach would be to have `Callstack` know about traps directly and avoid creating new `Callstack.t`s for them, but that work is deferred to someday that isn't today. Signed-off-by: Tudor Brindus <tbrindus@janestreet.com> 2 年前
Add a test for musl hello world, statically linked It's a pretty small test and covers lots of basic functionality. I've confirmed in the trace viewer that this trace looks good. 4 年前
Updated perf decoding to process event types and periods and use event names for classification `perf script` has support to pass the field `event` which actually outputs the type of the event. This actually helps improve classification by not just matching the perf line against regex and instead parsing the name of the event. And this also helps us recognize the new sampled events which we would not be able to differentiate otherwise. This commit just reworks the decoding to support parsing these event names and also the periods that can be outputted. Additionally all the tests are updated to support this. Signed-off-by: Aaron Lamoreaux <alamoreaux@janestreet.com> 3 年前
Fix stairstepping OCaml traces when exceptions are involved This commit fixes two bugs: * `caml_raise_exn` modifies the stack and then `ret`s into an `entertrap`, so we need to also do `entertrap` fixups on returns. * Trap callstacks would often have the symbol of the parent frame re-inferred, which would result in doubling up of that frame. We fix this by seeding the trap callstack with a synthetic frame, which we make sure to delete before outputting trace events. A more principled approach would be to have `Callstack` know about traps directly and avoid creating new `Callstack.t`s for them, but that work is deferred to someday that isn't today. Signed-off-by: Tudor Brindus <tbrindus@janestreet.com> 2 年前
Add tests based on saved perf script traces This gives us the ability to copy and paste perf script output to write regression tests. 4 年前
Updated perf decoding to process event types and periods and use event names for classification `perf script` has support to pass the field `event` which actually outputs the type of the event. This actually helps improve classification by not just matching the perf line against regex and instead parsing the name of the event. And this also helps us recognize the new sampled events which we would not be able to differentiate otherwise. This commit just reworks the decoding to support parsing these event names and also the periods that can be outputted. Additionally all the tests are updated to support this. Signed-off-by: Aaron Lamoreaux <alamoreaux@janestreet.com> 3 年前
Updated perf decoding to process event types and periods and use event names for classification `perf script` has support to pass the field `event` which actually outputs the type of the event. This actually helps improve classification by not just matching the perf line against regex and instead parsing the name of the event. And this also helps us recognize the new sampled events which we would not be able to differentiate otherwise. This commit just reworks the decoding to support parsing these event names and also the periods that can be outputted. Additionally all the tests are updated to support this. Signed-off-by: Aaron Lamoreaux <alamoreaux@janestreet.com> 3 年前
Fix stairstepping OCaml traces when exceptions are involved This commit fixes two bugs: * `caml_raise_exn` modifies the stack and then `ret`s into an `entertrap`, so we need to also do `entertrap` fixups on returns. * Trap callstacks would often have the symbol of the parent frame re-inferred, which would result in doubling up of that frame. We fix this by seeding the trap callstack with a synthetic frame, which we make sure to delete before outputting trace events. A more principled approach would be to have `Callstack` know about traps directly and avoid creating new `Callstack.t`s for them, but that work is deferred to someday that isn't today. Signed-off-by: Tudor Brindus <tbrindus@janestreet.com> 2 年前
Allow magic-trace with run perf with sampling if Intel PT is unavailable. Signed-off-by: Aaron Lamoreaux <alamoreaux@janestreet.com> 3 年前
Added decoding/trace writing tests for sampling extra events The goal of this PR is to allow support to sample other events from perf, e.g. `branch-misses`, `cache-misses`. Although this is a nice feature, the goal is also to already have support for processing these events through sampling, so that when we have PEBS-via-PT available, we can also have these events in the processor trace stream. Now the user can pass `-events` along with a comma separated list of either names like `branch-misses` or sexps which allow the user to control the event period. These will then show up on separate tracks along with the actual trace as arrows representing every sample. I also drafted a [new wiki page](https://github.com/Lamoreauxaj/magic-trace/wiki/Sampling-extra-events) and referenced in the help docs for `-events` which would need to be updated along with this PR. This commit solely adds new tests which include both branch-misses and cache-misses as well as the Intel PT stream or a stacktrace sampled stream. Signed-off-by: Aaron Lamoreaux <alamoreaux@janestreet.com> 3 年前
Merge `core` and `src` directories The split made sense back when we were pursuing a direct backend, but now it only serves to confuse. Signed-off-by: Tudor Brindus <tbrindus@janestreet.com> 1 年前
Implement proper exception handling for OCaml programs This is accomplished by having an OCaml compiler patch that tracks where it emits pushtrap, poptrap, and entertrap directives. We can then walk them as we execute the program to figure out the state of the OCaml exception stack. The old stacktrace-based approach is maintained for binaries that are compiled without this section. Signed-off-by: Tudor Brindus <tbrindus@janestreet.com> 3 年前
Updated perf decoding to process event types and periods and use event names for classification `perf script` has support to pass the field `event` which actually outputs the type of the event. This actually helps improve classification by not just matching the perf line against regex and instead parsing the name of the event. And this also helps us recognize the new sampled events which we would not be able to differentiate otherwise. This commit just reworks the decoding to support parsing these event names and also the periods that can be outputted. Additionally all the tests are updated to support this. Signed-off-by: Aaron Lamoreaux <alamoreaux@janestreet.com> 3 年前
Fix stairstepping OCaml traces when exceptions are involved This commit fixes two bugs: * `caml_raise_exn` modifies the stack and then `ret`s into an `entertrap`, so we need to also do `entertrap` fixups on returns. * Trap callstacks would often have the symbol of the parent frame re-inferred, which would result in doubling up of that frame. We fix this by seeding the trap callstack with a synthetic frame, which we make sure to delete before outputting trace events. A more principled approach would be to have `Callstack` know about traps directly and avoid creating new `Callstack.t`s for them, but that work is deferred to someday that isn't today. Signed-off-by: Tudor Brindus <tbrindus@janestreet.com> 2 年前
Add proper abort handling for Intel Transactional Synchronization Extensions (TSX) This also makes a minor change which corrects error printing, where a flush was intended (%!) but the % accidentally omitted. Closes #284. Signed-off-by: Brian Nigito <bnigito@janestreet.com> 1 年前
Notice and handle decode errors in perf traces This makes spans look good when we flush on decode errors. This embeds a fairly large refactor of trace_writer.ml because it was impossible to figure out what was going on without it. Testing: Loaded up a trace with 115 (!) decode errors and it actually looked pretty good. 4 年前
Updated perf decoding to process event types and periods and use event names for classification `perf script` has support to pass the field `event` which actually outputs the type of the event. This actually helps improve classification by not just matching the perf line against regex and instead parsing the name of the event. And this also helps us recognize the new sampled events which we would not be able to differentiate otherwise. This commit just reworks the decoding to support parsing these event names and also the periods that can be outputted. Additionally all the tests are updated to support this. Signed-off-by: Aaron Lamoreaux <alamoreaux@janestreet.com> 3 年前
Merge `core` and `src` directories The split made sense back when we were pursuing a direct backend, but now it only serves to confuse. Signed-off-by: Tudor Brindus <tbrindus@janestreet.com> 1 年前
Merge `core` and `src` directories The split made sense back when we were pursuing a direct backend, but now it only serves to confuse. Signed-off-by: Tudor Brindus <tbrindus@janestreet.com> 1 年前
Fix stairstepping OCaml traces when exceptions are involved This commit fixes two bugs: * `caml_raise_exn` modifies the stack and then `ret`s into an `entertrap`, so we need to also do `entertrap` fixups on returns. * Trap callstacks would often have the symbol of the parent frame re-inferred, which would result in doubling up of that frame. We fix this by seeding the trap callstack with a synthetic frame, which we make sure to delete before outputting trace events. A more principled approach would be to have `Callstack` know about traps directly and avoid creating new `Callstack.t`s for them, but that work is deferred to someday that isn't today. Signed-off-by: Tudor Brindus <tbrindus@janestreet.com> 2 年前
Add Go-specific hacks to make demo.go trace See the comment in trace_writer.ml for more details about what this entails. The gist of what I've done here is review every call to `gogo` within demo.go and make sure the stack returns to the right spot. Fixes #100 4 年前
Updated perf decoding to process event types and periods and use event names for classification `perf script` has support to pass the field `event` which actually outputs the type of the event. This actually helps improve classification by not just matching the perf line against regex and instead parsing the name of the event. And this also helps us recognize the new sampled events which we would not be able to differentiate otherwise. This commit just reworks the decoding to support parsing these event names and also the periods that can be outputted. Additionally all the tests are updated to support this. Signed-off-by: Aaron Lamoreaux <alamoreaux@janestreet.com> 3 年前
Accept expect-test changes due to updated version of `Quickcheck` Signed-off-by: Kevin Svetlitski <ksvetlitski@janestreet.com> 5 个月前
v0.15~preview.126.09+236 4 年前
Fix stairstepping OCaml traces when exceptions are involved This commit fixes two bugs: * `caml_raise_exn` modifies the stack and then `ret`s into an `entertrap`, so we need to also do `entertrap` fixups on returns. * Trap callstacks would often have the symbol of the parent frame re-inferred, which would result in doubling up of that frame. We fix this by seeding the trap callstack with a synthetic frame, which we make sure to delete before outputting trace events. A more principled approach would be to have `Callstack` know about traps directly and avoid creating new `Callstack.t`s for them, but that work is deferred to someday that isn't today. Signed-off-by: Tudor Brindus <tbrindus@janestreet.com> 2 年前
add -events-output flag and output callstacks along events Signed-off-by: Fredrik Ekholm <fekholm@janestreet.com> 3 年前