]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Use atomic load & store for TSC frequency. It may be overkill for amd64 but
authorJung-uk Kim <jkim@FreeBSD.org>
Thu, 7 Apr 2011 23:28:28 +0000 (23:28 +0000)
committerJung-uk Kim <jkim@FreeBSD.org>
Thu, 7 Apr 2011 23:28:28 +0000 (23:28 +0000)
commit3453537fa54255e670f22aaf57e45ab40a14f55e
tree664d6632a866948517ff612d5ccfb37cd5bf91db
parentcb379161b1e700f2ce5d6985085983b77410475c
Use atomic load & store for TSC frequency.  It may be overkill for amd64 but
safer for i386 because it can be easily over 4 GHz now.  More worse, it can
be easily changed by user with 'machdep.tsc_freq' tunable (directly) or
cpufreq(4) (indirectly).  Note it is intentionally not used in performance
critical paths to avoid performance regression (but we should, in theory).
Alternatively, we may add "virtual TSC" with lower frequency if maximum
frequency overflows 32 bits (and ignore possible incoherency as we do now).
16 files changed:
sys/amd64/amd64/legacy.c
sys/amd64/amd64/machdep.c
sys/amd64/amd64/prof_machdep.c
sys/cddl/dev/dtrace/amd64/dtrace_subr.c
sys/cddl/dev/dtrace/i386/dtrace_subr.c
sys/compat/linprocfs/linprocfs.c
sys/contrib/altq/altq/altq_subr.c
sys/dev/acpica/acpi_cpu.c
sys/i386/i386/legacy.c
sys/i386/i386/machdep.c
sys/i386/i386/perfmon.c
sys/i386/isa/prof_machdep.c
sys/pc98/pc98/machdep.c
sys/x86/cpufreq/est.c
sys/x86/isa/clock.c
sys/x86/x86/tsc.c