Atomic UP test results. using test-time-probe2.ko Clock speed : cpu MHz : 3000.077 Tracing inactive [ 125.787229] test init [ 125.787303] test results : time per probe [ 125.787306] number of loops : 20000 [ 125.787309] total time : 204413 [ 125.787312] test end [ 175.660402] test init [ 175.660475] test results : time per probe [ 175.660479] number of loops : 20000 [ 175.660482] total time : 203468 [ 175.660484] test end [ 179.337362] test init [ 179.337436] test results : time per probe [ 179.337440] number of loops : 20000 [ 179.337443] total time : 204757 [ 179.337446] test end Res : 10.21 cycles per loop Atomic UP, one trace, flight recorder. [ 357.983971] test init [ 357.988837] test results : time per probe [ 357.988843] number of loops : 20000 [ 357.988846] total time : 12349013 [ 357.988849] test end [ 358.718896] test init [ 358.723049] test results : time per probe [ 358.723053] number of loops : 20000 [ 358.723057] total time : 12332497 [ 358.723059] test end [ 359.422038] test init [ 359.426173] test results : time per probe [ 359.426179] number of loops : 20000 [ 359.426182] total time : 12332535 [ 359.426185] test end Res : 616.90 cycles per loop. 205.63 ns per loop Atomic SMP, one trace, flight. [ 111.694180] test init [ 111.700191] test results : time per probe [ 111.700198] number of loops : 20000 [ 111.700201] total time : 16925670 [ 111.700204] test end [ 112.285716] test init [ 112.291321] test results : time per probe [ 112.291326] number of loops : 20000 [ 112.291329] total time : 16766633 [ 112.291332] test end [ 112.880602] test init [ 112.884739] test results : time per probe [ 112.884743] number of loops : 20000 [ 112.884746] total time : 12358237 [ 112.884748] test end Res : 767.51 cycles per loop 255.83 ns per loop (205.63-255.83)/255.83 * 100% = 19.62 % Difference between cmpxchg 2967855/20000 = 148.39 cycles or 49.46 ns cmpxchg-up 540577/20000 = 27.02 cycles or 9.00 ns irq save/restore 12636562/20000 = 631.82 cycles 210.60 ns Mathieu Desnoyers, November 2006