Re: Measuring time

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Mar 24, 2007 at 08:25:10PM +0200, bora.sahin@xxxxxxxxxxxx wrote:

> I want to meause the time between irq_enter and my consumer driver read 
> routine. How can I do that or which toool should I use?

That's a very specific question so standard tools don't seem to be
applicable.  I suggest you simple use the CPU's count register to meassure
the time.  It can be used like:

#include <linux/kernel.h>
#include <asm/mipsregs.h>

void foo(void)
{
	unsigned int start, end;

	start = read_c0_counter();
	printk("Goodbye, cruel world ...\n");
	end = read_c0_counter();

	printk("Time for printk: %d\n", end - start);
}

Note that some very old MIPS processors don't have such a counter.  Also
in some cores the counter will increment once per cycle on others it will
increment every 2nd cycle and on yet others such as the RM5230 this is
configurable.  So you may want to check your processor manual.

The cp0 counter is the timer of choice for this meassurement because it's
very high resolution and can can be accessed with low overhead making
it ideal for the very short time you want to meassure.

Cheers,

  Ralf


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux