https://github.com/torvalds/linux
Revision defbb2c929cbe89dc92239b303cd33d3c85e9a83 authored by hawkes@sgi.com on 14 February 2006, 18:40:17 UTC, committed by Tony Luck on 15 February 2006, 21:37:04 UTC
The original ia64 udelay() was simple, but flawed for platforms without synchronized ITCs: a preemption and migration to another CPU during the while-loop likely resulted in too-early termination or very, very lengthy looping. The first fix (now in 2.6.15) broke the delay loop into smaller, non-preemptible chunks, reenabling preemption between the chunks. This fix is flawed in that the total udelay is computed to be the sum of just the non-premptible while-loop pieces, i.e., not counting the time spent in the interim preemptible periods. If an interrupt or a migration occurs during one of these interim periods, then that time is invisible and only serves to lengthen the effective udelay(). This new fix backs out the current flawed fix and returns to a simple udelay(), fully preemptible and interruptible. It implements two simple alternative udelay() routines: one a default generic version that uses ia64_get_itc(), and the other an sn-specific version that uses that platform's RTC. Signed-off-by: John Hawkes <hawkes@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
1 parent 4c2cd96
Tip revision: defbb2c929cbe89dc92239b303cd33d3c85e9a83 authored by hawkes@sgi.com on 14 February 2006, 18:40:17 UTC
[IA64] ia64: simplify and fix udelay()
[IA64] ia64: simplify and fix udelay()
Tip revision: defbb2c
File | Mode | Size |
---|---|---|
Documentation | ||
arch | ||
block | ||
crypto | ||
drivers | ||
fs | ||
include | ||
init | ||
ipc | ||
kernel | ||
lib | ||
mm | ||
net | ||
scripts | ||
security | ||
sound | ||
usr | ||
.gitignore | -rw-r--r-- | 424 bytes |
COPYING | -rw-r--r-- | 18.3 KB |
CREDITS | -rw-r--r-- | 87.5 KB |
Kbuild | -rw-r--r-- | 1.2 KB |
MAINTAINERS | -rw-r--r-- | 66.3 KB |
Makefile | -rw-r--r-- | 43.8 KB |
README | -rw-r--r-- | 15.1 KB |
REPORTING-BUGS | -rw-r--r-- | 3.0 KB |
Computing file changes ...