Messages in this thread | | | Date | Sun, 1 Jun 2008 18:25:17 +0200 | From | Andi Kleen <> | Subject | Re: [PATCH][resubmit] x86: enable preemption in delay |
| |
> 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
| |