Re: get_cycles() on i386

From: Linus Torvalds
Date: Tue Nov 04 2003 - 18:55:50 EST

On 4 Nov 2003, john stultz wrote:
> CONFIG_X86_TSC be the devil. Personally, I'd much prefer dropping the
> compile time option and using dynamic detection. Something like (not
> recently tested and i believe against 2.5.something, but you get the
> idea):

Some of the users are really timing-critical (eg scheduler).

How about just using the "alternative()" infrastructure that we already
have in 2.6.x for this? See <asm-i386/system.h> for details.

We don't have an "alternative_output()" available yet, but using that it
would look something like:

static inline unsigned long long get_cycle(void)
unsigned long long tsc;

"xorl %%eax,%%eax ; xorl %%edx,%%edx",
"=A" (tsc));
return tsc;

which should allow for "perfect" code (well, gcc tends to mess up 64-bit
stuff, but you get the idea).

We use the "alternative_input()" thing for prefetch() handling (see


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at