Hello Steve, thank you for your answer,
On 07/24/2018 04:25 PM, Steven Rostedt wrote: > On Tue, 24 Jul 2018 10:23:16 -0400 > Steven Rostedt <rost...@goodmis.org> wrote: > >>> >>> Would work in the direction of adding a global trace_pipe_raw be considered >>> for inclusion? >> >> The design of the lockless ring buffer requires not to be preempted, >> and that the data cannot be written to from more than one location. To >> do so, we make a per CPU buffer, and disable preemption when writing. >> This means that we have only one writer at a time. It can handle >> interrupts and NMIs, because they will finish before they return and >> this doesn't break the algorithm. But having writers from multiple CPUs >> would require locking or other heaving synchronization operations that >> will greatly reduce the speed of writing to the buffers (not to mention >> the cache thrashing). > I understand, it is not a simple matter then. > And why would you need a single buffer? I am interested in all events that have to do with a specific task, regardless of the CPU they appear on. Having an already post-processed stream of binary data would be awesome I think. > Note, we are working on making > libtracecmd.so that will allow applications to read the buffers and the > library will take care of the interleaving of the raw data. This should > hopefully be ready in about three months or so. > > -- Steve That would be great! So the library could handle this kind of preprocessing, and create a single stream of sorted timestamps/events with the binary data? Thanks a lot, Claudio