diff options
author | jkim <jkim@FreeBSD.org> | 2010-08-13 22:08:42 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2010-08-13 22:08:42 +0000 |
commit | e677a6e72133800e3371572917a0833defd37d06 (patch) | |
tree | 9a5a5cb6af6238bbe605fff7dd30d937db123f54 | |
parent | fe93fcde05c2eaca0f659de9d00824e896039d21 (diff) | |
download | FreeBSD-src-e677a6e72133800e3371572917a0833defd37d06.zip FreeBSD-src-e677a6e72133800e3371572917a0833defd37d06.tar.gz |
Reset switchtime to zero rather than the current CPU ticker (TSC) value.
It is more appropriate in this context because TSC MSR is reset to zero
when the CPU is restarted from S3 and above. Move acpi_resync_clock() back
to where it was before r211202. It does not make a difference any more.
-rw-r--r-- | sys/amd64/acpica/acpi_wakeup.c | 4 | ||||
-rw-r--r-- | sys/amd64/amd64/mp_machdep.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/sys/amd64/acpica/acpi_wakeup.c b/sys/amd64/acpica/acpi_wakeup.c index bff8045..9afb36c 100644 --- a/sys/amd64/acpica/acpi_wakeup.c +++ b/sys/amd64/acpica/acpi_wakeup.c @@ -278,13 +278,13 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state) for (;;) ia32_pause(); } else { - acpi_resync_clock(sc); - PCPU_SET(switchtime, cpu_ticks()); + PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); #ifdef SMP if (wakeup_cpus != 0) acpi_wakeup_cpus(sc, wakeup_cpus); #endif + acpi_resync_clock(sc); ret = 0; } diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c index 7ea4d7d..034ae77 100644 --- a/sys/amd64/amd64/mp_machdep.c +++ b/sys/amd64/amd64/mp_machdep.c @@ -1366,7 +1366,7 @@ cpususpend_handler(void) wbinvd(); atomic_set_int(&stopped_cpus, cpumask); } else { - PCPU_SET(switchtime, cpu_ticks()); + PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); } |