On Thu, Jan 16, 2003 at 06:48:09PM +0200, Gilad Benjamini wrote:
> Hi,
> I am porting code from a x86 platform.
> That code uses rdtsc and cpu_khz to compute
> the time difference between two events. Jiffies aren't good enough in this
> case.
>
> Looking through header files I can find a few MIPS replacements.
> What is the "right" one to use ?
>
> What is the best way to change the code so it can compile
> and run on both platforms ?
>
I assume you are doing this inside kernel for some performance
measurement.
In mvsita kernel we introduced an abstraction layer which consists
of the following:
readclock_init()
readclock()
clock_to_usecs()
For MIPS in general, we use the following implementation:
#define readclock_init()
#define readclock(low) do { \
db_assert(mips_cpu.options & MIPS_CPU_COUNTER); \
low = read_32bit_cp0_register(CP0_COUNT); \
} while (0)
#define clock_to_usecs(clocks) ((clocks) / ((mips_counter_frequency / 1000000)))
In mvl kernel we always calibrate mips_counter_frequency even if it
is not specified by board code. This is different from the current
linux-mips.org tree.
Jun
|