[XRay][compiler-rt] Support in-memory processing of FDR mode logs
authorDean Michael Berris <dberris@google.com>
Mon, 14 May 2018 03:35:01 +0000 (03:35 +0000)
committerDean Michael Berris <dberris@google.com>
Mon, 14 May 2018 03:35:01 +0000 (03:35 +0000)
commita2a0e1f3535e8166aa36025389549cb000d92a78
tree87ee6929f809bf3371d508e78d91123c0f9e668a
parent266b7ae55d870da2b223e9506ec1d20bb5098cc1
[XRay][compiler-rt] Support in-memory processing of FDR mode logs

Summary:
This change allows for handling the in-memory data associated with the
FDR mode implementation through the new `__xray_log_process_buffers`
API. With this change, we can now allow users to process the data
in-memory of the process instead of through writing files.

This for example allows users to stream the data of the FDR logging
implementation through network sockets, or through other mechanisms
instead of saving them to local files.

We introduce an FDR-specific flag, for "no_file_flush" which lets the
flushing logic skip opening/writing to files.

This option can be defaulted to `true` when building the compiler-rt
XRay runtime through the `XRAY_FDR_OPTIONS` preprocessor macro.

Reviewers: kpw, echristo, pelikan, eizan

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D46574

llvm-svn: 332208
compiler-rt/lib/xray/xray_buffer_queue.h
compiler-rt/lib/xray/xray_fdr_flags.inc
compiler-rt/lib/xray/xray_fdr_logging.cc
compiler-rt/lib/xray/xray_fdr_logging_impl.h
compiler-rt/test/xray/TestCases/Posix/fdr-mode-inmemory.cc [new file with mode: 0644]