Re: It hurts when I shoot myself in the foot

Kasper Dupont (kasperd@daimi.au.dk)
Fri, 24 May 2002 18:39:56 +0200


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/