Is it possible you can explain what "sample after" value is by giving examples with and without enabling calibrate sample after value? say, I have 3 events specified in the event based sampling; how the "sample after" values will affect the results of sampling? It was not very clear to me just to read the explanation of the help file. Thanks.
The sample after value controls how often VTune generates an interrupt to sample the program counter, process ID, and thread ID. The lower you set the sample after value the higher VTune's overhead will be. For example, if you are collecting loads retired and you set the sample after value to 5000, every 5000 loads retired, the processor will generate an interrupt and VTune will read the prog counter etc. If you use calibration VTune will run your program twice. On the first run it will see how many events occurred during the session. On the second run it will set the sample after value so the processor only generates an average of 1000 interrupts per second. The sample after value is set by calibration on a per event basis. We think this number is a good balance between valid data and overhead. Hope this helps!
You mentioned "The sample after value is set by calibration on a per event basis."; so can I specify more than one events during a event sampling test run? Am I going to get more than one 'sample after value" for each event assuming that I enabled the calibration?
Is there documentation about what events are "exact"? I thought itanium system fixed instruction skid problem. Now it seems it is partially fixed.
Also, the line taking a lot of CPU cycles is the first assembly line of the procedure. There is no prior line to analyze. Basically it is trying to get the address of var2. Compiler code looks like below.
and Vtune code is this.
foo: addl r30 = -2077280, r1
Could it ever be expensive to find the value for @gprel(var2#)? What's involved in getting @gprel(var2#)?
Yes, calibration will still function, although it will be based on whatever was running during the calibration run. Just go ahead and start your program, then start the VTune Analzyer manually. You will need to make sure that a "duration" is specified for the sampling activity. That will determine the length of the calibration run.