* Alan Cox <[EMAIL PROTECTED]> wrote: > > there strong counter-arguments against doing the clean thing and > > adding an udelay(2) (or udelay(1)) to replace those _p() uses in ISA > > drivers? > > #1 udelay has to be for the worst case bus clock (6MHz) while the > #device may be at 10Mhz or even 12MHz ISA. So it slows it down stuff > unneccessarily- and stuff that really really is slow enough as is.
udelay is supposed to be reliable. If someone runs a new kernel and has no TSC (which might happen even on modern hardware or with notsc) _and_ finds that udelay is not calibrated well enough then that's a kernel bug we want to fix. > #2 Most of the ancient wind up relics with ISA bus don't have a tsc so > their udelay value is kind of iffy. iffy in what way? Again, we might be hiding real udelay bugs. > #3 Not changing it is the lowest risk for a lot of the old ISA code > #that never occurs on newer boxes Not changing the kernel _at all_ is what is the "lowest risk" option. If the kernel is changed, it should be tested - and if we have a buggy udelay, that should be fixed - because it could cause many other bugs in other drivers. yes, there are always risks in changing something, but using udelay is a common-sense consolidation of code. > > _will_ change a bit, no matter what we do. Alignments change, the > > compiler output will change (old compilers get deprecated so a new > > compiler might have to be picked), cache effects change - and this > > is inevitable. The important thing is to not eliminate the delays - > > but we sure dont have to keep them cycle accurate (we couldnt even > > if we wanted to). The only way to get the _exact same_ behavior is > > to not change the kernel at all. > > ISA bus cycles are *slow*, the subtle processor cache and gcc > triggered timing changes are lost in the noise. gcc triggered timing changes can easily add up to a LOT more - especially if a loop is involved and especially on older hardware. Remember, 1 microsecond is just a handful of instructions on real old hardware. The kernel's timings are _not_ immutable, never were, never will be. Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/