Re: [PATCH][resubmit] x86: enable preemption in delay

Andi Kleen
2008-06-01T16:16:24Z

> static void delay_tsc(unsigned long loops)
> {
> - unsigned long bclock, now;
> + unsigned prev, prev_1, now;
> + unsigned left = loops;
> + unsigned prev_cpu, cpu;
> +
> + preempt_disable();
> + rdtscl(prev);

The unsigneds should be probably u64 and the rdtsc rdtscll.
Otherwise this will all overflow for longer waits on a very
fast systems (e.g. a 5Ghz system wraps 32bit in ~1.1 seconds)
Normally such delays shouldn't be that long, but why risk
overflow even in extreme cases?

-Andi