[LinuxBIOS] Is there sched_clock equivalent in LB?
eric at zyxod.com
Thu Apr 27 05:37:06 CEST 2006
Daniel Parthey wrote:
>Eric Poulsen schrieb:
>>I was going to hack LB a bit, and add a timestamp, just like you see in
>>the newer Linux kernels, to look for potential bottlenecks specific to
>>my MLB. The kernel printk uses sched_clock() to get the current time.
>>Is there an equivalent call in LB? I've looked through the code base
>>for files / code that has *clock* or *time* or something similar, but
>>without much luck.
>I suppose MLB means VIA EPIA ML Board?
I had meant Main Logic Board, but I guess it works both ways.
>On Intel compatible Pentium (or higher) boards like VIA EPIA, you could
>read the Time Stamp Counter (TSC) CPU register which tells you the number
>of cycles from the last machine reset. Use the "cpuid" assembler command
>as a barrier (to prevent out-of-order command execution) in combination
>with the "rdtsc" assembler command to read the time time stamp counter.
>The linux kernel sourcecode contains examples for this.
My Intel assembly is 15 years rusty -- I'd have better luck doing this
on a PIC. My co-worker hacks Intel assembly -- I'll get him to help me.
>If you manage to get some inline assembler code into linuxbios,
>you could take two time stamp counter (TSC) values and store them somewhere.
>You can convert the number of ticks into real time units afterwards,
>you could either use the processor speed from /proc/cpuinfo or determine
>the number of processor cycles per second on your processor yourself.
>Disable automatic CPU clock adjust to have the CPU run at constant speed.
More information about the coreboot