diff options
-rw-r--r-- | sys/amd64/acpica/acpi_wakeup.c | 4 | ||||
-rw-r--r-- | sys/amd64/amd64/mp_machdep.c | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/sys/amd64/acpica/acpi_wakeup.c b/sys/amd64/acpica/acpi_wakeup.c index 0e85937..bff8045 100644 --- a/sys/amd64/acpica/acpi_wakeup.c +++ b/sys/amd64/acpica/acpi_wakeup.c @@ -278,11 +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(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 c5efc48..3646ef0 100644 --- a/sys/amd64/amd64/mp_machdep.c +++ b/sys/amd64/amd64/mp_machdep.c @@ -1369,6 +1369,9 @@ cpususpend_handler(void) if (savectx(susppcbs[cpu])) { wbinvd(); atomic_set_int(&stopped_cpus, cpumask); + } else { + PCPU_SET(switchtime, cpu_ticks()); + PCPU_SET(switchticks, ticks); } /* Wait for resume */ |