User Event API datation

User Event API datation

Hi there,

Im
currently evaluating the Linux version of VTune Amplifier (build 186533), here is my setup:

-
Intel VTune Amplifier XE 2011 for Linux

-
Ubuntu
10.10

-
Core
i5 M560

-
Gcc
4.4.5

Ive tried
using User Event API to identify a few events in my multi-process application,
at first sight this seems to work fine, but when looking more closely at the
timeline, I noticed that events and cpu usage between two different processes
are sometime shifted.

I
reproduced this issue with a simple application, that execute the following:

-
Create
a unix domain socket pairs

-
Fork
into two processes

-
First
process execute:

o
Socket
read (blocking)

o
User
event RX

-
Second
process execute:

o
User
event TX

o
Send
data to socket

Using
Amplifier concurrency analysis (or lock and waits analysis), I observe that the
event RX happens before the event TX, which is clearly impossible (the
shift is about 100 microseconds). I couldnt reproduce the issue with two
threads instead of two processes, so I suspect the problem is related to
processes.

I attached
the source code reproducing the issue and a screenshot of amplifier showing the
problem.

Best
regards,

Stphan Rafin

5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hello Stephan,

I've compiled your sample on a similar setup, but with different CPU:
- Ubuntu 10.10 x64
- gcc 4.4.5
- Intel Xeon CPU E31280
- Intel VTune Amplifier XE 2011 update 5

The things seem to work fine, I couldn't reproduce your problem. The event sequence is the following:
child TX -> parent RX -> parent TX -> child RX

Are you able to try it on another machine? Also, could you please attach your result folder?

Regards,
Kirill

Hi Kirill,

Many thanks for your feedback.
First I am sorry but our trial version has just expired and we are unable to run additional tests on another computer for now. Yet here is the raw results archive (which is attached to this post).

I also have to be a little more precise regarding this "time shift"
In fact, the events are not always in reverse order : It seems that timestamps are not based on the exact same clock source between processes and we have a kind of jitter : From times to times the receive event appears before the send event (which is of course impossible) and some other times it is in a correct chronological order...

Again, Many thanks for your answer and support...
Best regards,

Stphan

PS : On your screenshot, you seem to use Amplifier on a windows OS (windows style looks like win7 or win vista) : I suppose you ran the test on ubuntu then displayed the results on windows : May the issue be related to display ?

Attachments: 

AttachmentSize
Download r008cc.tgz72.75 KB

You are right, I open the results from Ubuntu on Windows, this is more convenient for me. When I open your result on Windows, I see exactly what is on your screenshot, this is not some OS-specific display issue.

The time difference is quite small, yes, this can be due to some jitter. I'll talk to developers about this and come back to you if I get some news.

Any news regarding this datation issue ?

Login to leave a comment.