Re: [PATCH] ia64: disable preemption in udelay()

From: Bill Davidsen
Date: Thu Dec 22 2005 - 16:44:35 EST


Lee Revell wrote:
On Thu, 2005-12-15 at 18:12 -0800, John Hawkes wrote:

From: "Lee Revell" <rlrevell@xxxxxxxxxxx>

There are 10 drivers that udelay(10000) or more and a TON that
udelay(1000). Turning those all into 1ms+ non preemptible sections will
be very bad.

What about 100usec non-preemptible sections?


That will disappear into the noise, in normal usage these happen all the
time. 500usec non preemptible regions are rare (~1 hour to show up) and
1ms very rare (24 hours). My tests show that 300 usec or so is a good
place to draw the line if you don't want it to show up in latency tests.

I may be misreading the original post, but the problem is described as one where the TSC is not syncronised and a CPU switch takes place. Would the correct solution be to somehow set CPU affinity temporarily in such a way as to avoid disabling preempt at all?

The preempt doesn't seem to be the root problem, so it's unlikely to be the best solution...

--
-bill davidsen (davidsen@xxxxxxx)
"The secret to procrastination is to put things off until the
last possible moment - but no longer" -me
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/