I have bought Intel Xeon E3-1220 v2 processor.
I am testing Linux on this processor. I created a test to see the time it takes for the OS to handle the clock tick.
My test is as following: I create a thread with highest priority ( can be preempted only by interrupts), whose task is just to do a small calculation in a loop of 45000 times. Here is the code:
long LoopCounter = 45000;
while ( lLoopCounter > 0 )
Value = (( Value * 3 ) + 5);
This task takes 102 µs to be finished.
If a clock tick happens while the task is executing, then this task is interrupted for some time until the interrupt is handled. ( aka: in normal case, the task takes 112 µs and if a tick happens, then the task takes 120 µs, which means that 8 µs are spent by the OS to handle the clock tick interrupt). I did this procedure around 100 times and I saw that each 1 ms I got a clock interrupt as the OS clock tick is running at 1000 Hz. so the normal values should be 102 µs if no tick happens, and 110µs if a clock tick happens.
This was perfect test on Intel core i7-930 @2.8GHz.
If I do the test on processor Xeon E3-1220 v2 @ 3.1 GHz, the task takes shorter time ( 102 µs) as it is faster processor. it takes 110 µs if a tick happens.
The strange thing I see on this processor that sometimes I get values around 120 µs, which means that some kind of interrupt happened and preempted the task for 18 µs. If it was clock tick, then it should take 110 µs.
so the processor is generating some kind of interrupts.
If I do the test with loop of 5000 instead of 45000, I do not see anymore such strange values.
Synthesis: if I do a task which is looping 45000 times on intel xeon, I start to get strange interrupts, which is not the case on i7-930.
If I do the test with loop of 5000, the interrupts disappear.
what could be the issue?