Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 325662

Summary: [LTTng] Reduce the pushData()/getData() overhead
Product: z_Archived Reporter: Francois Chouinard <fchouinard>
Component: LinuxToolsAssignee: Francois Chouinard <fchouinard>
Status: CLOSED FIXED QA Contact: Francois Chouinard <fchouinard>
Severity: normal    
Priority: P3    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Bug Depends on:    
Bug Blocks: 325661    
Attachments:
Description Flags
New handleData() API fchouinard: iplog-

Description Francois Chouinard CLA 2010-09-17 18:23:26 EDT
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.
Comment 1 Francois Chouinard CLA 2010-09-17 18:25:13 EDT
Created attachment 179155 [details]
New handleData() API
Comment 2 Francois Chouinard CLA 2010-09-17 18:34:47 EDT
Comment on attachment 179155 [details]
New handleData() API

Patch committed. We get a ~15% execution time improvement in TMF and the LTTng back-end.
Comment 3 Francois Chouinard CLA 2010-10-21 15:04:32 EDT
Patch was committed in Helios and Indigo
Comment 4 Francois Chouinard CLA 2011-07-22 14:49:41 EDT
Delivered with 0.7