svn commit: r211202 - in head/sys/amd64: acpica amd64
Jung-uk Kim
jkim at FreeBSD.org
Thu Aug 12 00:20:46 UTC 2010
Author: jkim
Date: Thu Aug 12 00:20:46 2010
New Revision: 211202
URL: http://svn.freebsd.org/changeset/base/211202
Log:
Reset switchtime and switchticks after resynchronizing the system clock.
This should fix weird runtime problem after resume on amd64. It also fixes
"calcru: runtime went backwards" warnings with bootverbose.
Modified:
head/sys/amd64/acpica/acpi_wakeup.c
head/sys/amd64/amd64/mp_machdep.c
Modified: head/sys/amd64/acpica/acpi_wakeup.c
==============================================================================
--- head/sys/amd64/acpica/acpi_wakeup.c Thu Aug 12 00:16:18 2010 (r211201)
+++ head/sys/amd64/acpica/acpi_wakeup.c Thu Aug 12 00:20:46 2010 (r211202)
@@ -278,11 +278,13 @@ acpi_sleep_machdep(struct acpi_softc *sc
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;
}
Modified: head/sys/amd64/amd64/mp_machdep.c
==============================================================================
--- head/sys/amd64/amd64/mp_machdep.c Thu Aug 12 00:16:18 2010 (r211201)
+++ head/sys/amd64/amd64/mp_machdep.c Thu Aug 12 00:20:46 2010 (r211202)
@@ -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 */
More information about the svn-src-head
mailing list