Alan Cox wrote:
>
> > Couldn't that be solved in one of the following ways?
> >
> > 1) Disable pre-emption while reading TSC and CPU nr.
> > 2) Use affinity for processes pre-empted in kernel mode.
> > 3) Disable pre-emption for SMP systems.
>
> You can solve it by disabling pre-emption (and given its questionable
> value doing so permanently might not be a bad idea).
Questionable value of what? TSC or preemption?
> However if you simply
> disable pre-emption during udelay() calls then you've just screwed yourself
> by removing 99% of the use pre-emption had.
I wouldn't want to disable preemption during udelays.
Either I would disable and enable preemption on every
pass through the loop. Or I would just manually check
for every pass if I should give up the CPU. This
obviously requires more computation for every pass,
but being a busy waiting loop I don't see a problem.
Otherwise I would lock the process to a fixed CPU for
the duration of udelay.
>
> Given all the pain its probably better to not use the TSC
Do we have better alternatives for high resolution
time meassurements?
-- Kasper Dupont -- der bruger for meget tid på usenet. For sending spam use mailto:razor-report@daimi.au.dk - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Fri May 31 2002 - 22:00:13 EST