We’ve encountered an issue with sampling spin locks using oprofile in 64 bit environments running linux 2.6.18.
Under 32 bit where we have proper results, assembly code for _spin_lock_irqsave is significantly longer than the code under 64 bit. The latter includes a jump into .text.lock.spinlock which does all the hard work.
Could it be that oprofile fails to account time spent in a text section to the correct function? It doesn’t appear to be falsely accounted elsewhere.
Any insights will be appreciated.