75ada79f33
- Ditch the cross-CPU calibration stuff. It didn't work properly, and it's near impossible to synchronize the CPUs in a running system, because bus traffic will interfere with any calibration attempt, messing up the timings. - Only enable the TSC on CPUs where we are sure it does not drift. If we are On a known good CPU, give the TSC high timecounter quality, making it the default. - When booting CPUs, detect TSC skew and account for it. Most Intel MP systems have synchronized counters, but that need not be true if the system has a complicated bus structure. As far as I know, AMD systems do not have synchronized TSCs and so we need to handle skew. - While an AP is waiting to be set running, try and make the TSC drift by entering a reduced power state. If we detect drift, ensure that the TSC does not get a high timecounter quality. This should not happen and is only for safety. - Make cpu_counter() stuff LKM safe. |
||
---|---|---|
.. | ||
acpi_func.h | ||
acpi_machdep.h | ||
ansi.h | ||
aout_machdep.h | ||
apicvar.h | ||
asm.h | ||
bios32.h | ||
bootinfo.h | ||
bswap.h | ||
bus_private.h | ||
bus.h | ||
byte_swap.h | ||
cdefs.h | ||
cpu_counter.h | ||
cpu.h | ||
cpufunc.h | ||
cputypes.h | ||
cpuvar.h | ||
db_machdep.h | ||
disklabel.h | ||
elf_machdep.h | ||
endian_machdep.h | ||
endian.h | ||
float.h | ||
fpu.h | ||
frame_regs.h | ||
frame.h | ||
frameasm.h | ||
gdt.h | ||
i8259.h | ||
i82093reg.h | ||
i82093var.h | ||
i82489reg.h | ||
i82489var.h | ||
ieee.h | ||
ieeefp.h | ||
int_const.h | ||
int_fmtio.h | ||
int_limits.h | ||
int_mwgwtypes.h | ||
int_types.h | ||
intr.h | ||
intrdefs.h | ||
isa_machdep.h | ||
joystick.h | ||
kcore.h | ||
limits.h | ||
linux32_machdep.h | ||
loadfile_machdep.h | ||
lock.h | ||
Makefile | ||
math.h | ||
mcontext.h | ||
mpacpi.h | ||
mpbiosreg.h | ||
mpbiosvar.h | ||
mpconfig.h | ||
mtrr.h | ||
mutex.h | ||
netbsd32_machdep.h | ||
param.h | ||
pcb.h | ||
pci_machdep.h | ||
pic.h | ||
pio.h | ||
pmap.h | ||
pmc.h | ||
proc.h | ||
profile.h | ||
psl.h | ||
pte.h | ||
ptrace.h | ||
rbus_machdep.h | ||
reg.h | ||
rwlock.h | ||
segments.h | ||
setjmp.h | ||
signal.h | ||
specialreg.h | ||
stdarg.h | ||
sysarch.h | ||
trap.h | ||
tss.h | ||
types.h | ||
userret.h | ||
varargs.h | ||
vmparam.h | ||
wchar_limits.h |