Community
Participate
Working Groups
Currently, the data flow between the producer/consumer components goes through a data queue. This is great for multi-thread applications running on multi-core systems. However, in the case of LTTng, we have to live with the constraint that only one event can be live at any time. This forces us to use data blocks of size '1' ... and the queuing scheme introduces a lot of overhead. By removing pushData() and getData() and passing the events directly in handleData(), we could streamline things a little. Also it will allow to *not* systematically parse the events and do it only as needed. This is an improvement for single and dual-core systems but will show its limitation on more powerful systems.
Created attachment 179155 [details] New handleData() API
Comment on attachment 179155 [details] New handleData() API Patch committed. We get a ~15% execution time improvement in TMF and the LTTng back-end.
Patch was committed in Helios and Indigo
Delivered with 0.7