Print suspend-to-idle debug info in a more concise matter.
authorkettenis <kettenis@openbsd.org>
Thu, 8 Aug 2024 07:02:38 +0000 (07:02 +0000)
committerkettenis <kettenis@openbsd.org>
Thu, 8 Aug 2024 07:02:38 +0000 (07:02 +0000)
ok mlarkin@, deraadt@

sys/arch/amd64/amd64/cpu.c
sys/arch/i386/i386/cpu.c
sys/dev/acpi/acpi_x86.c
sys/dev/acpi/acpivar.h

index 898c230..26f9684 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: cpu.c,v 1.191 2024/07/21 19:41:31 bluhm Exp $ */
+/*     $OpenBSD: cpu.c,v 1.192 2024/08/08 07:02:38 kettenis Exp $      */
 /* $NetBSD: cpu.c,v 1.1 2003/04/26 18:39:26 fvdl Exp $ */
 
 /*-
@@ -1464,6 +1464,7 @@ wbinvd_on_all_cpus(void)
 #endif
 
 int cpu_suspended;
+int cpu_wakeups;
 
 #ifdef SUSPEND
 
@@ -1480,9 +1481,6 @@ int
 cpu_suspend_primary(void)
 {
        struct cpu_info *ci = curcpu();
-       int count = 0;
-
-       printf("suspend\n");
 
        /* Mask clock interrupts. */
        local_pic.pic_hwmask(&local_pic, 0);
@@ -1500,7 +1498,7 @@ cpu_suspend_primary(void)
 
        while (cpu_suspended) {
                cpu_suspend_cycle();
-               count++;
+               cpu_wakeups++;
        }
 
        intr_disable();
@@ -1509,7 +1507,6 @@ cpu_suspend_primary(void)
        /* Unmask clock interrupts. */
        local_pic.pic_hwunmask(&local_pic, 0);
 
-       printf("resume %d\n", count);
        return 0;
 }
 
index 9e891cb..d6ee841 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: cpu.c,v 1.115 2024/05/29 12:21:33 kettenis Exp $      */
+/*     $OpenBSD: cpu.c,v 1.116 2024/08/08 07:02:38 kettenis Exp $      */
 /* $NetBSD: cpu.c,v 1.1.2.7 2000/06/26 02:04:05 sommerfeld Exp $ */
 
 /*-
@@ -927,3 +927,4 @@ wbinvd_on_all_cpus(void)
 #endif
 
 int cpu_suspended;
+int cpu_wakeups;
index b0927ca..e08435d 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: acpi_x86.c,v 1.24 2024/08/06 17:38:56 kettenis Exp $ */
+/* $OpenBSD: acpi_x86.c,v 1.25 2024/08/08 07:02:38 kettenis Exp $ */
 /*
  * Copyright (c) 2005 Thorsten Lockert <tholo@sigmasoft.com>
  * Copyright (c) 2005 Jordan Hargrave <jordan@openbsd.org>
@@ -87,6 +87,7 @@ sleep_setstate(void *v)
 int
 gosleep(void *v)
 {
+       extern int cpu_wakeups;
        struct acpi_softc *sc = v;
        int ret;
 
@@ -107,10 +108,13 @@ gosleep(void *v)
        if (sc->sc_pmc_suspend)
                sc->sc_pmc_suspend(sc->sc_pmc_cookie);
 
+       cpu_wakeups = 0;
        sc->sc_wakeup = 0;
+       sc->sc_wakeups = 0;
        while (!sc->sc_wakeup) {
                ret = acpi_sleep_cpu(sc, sc->sc_state);
                acpi_resume_cpu(sc, sc->sc_state);
+               sc->sc_wakeups++;
 
                if (sc->sc_ec && sc->sc_wakegpe == sc->sc_ec->sc_gpe) {
                        sc->sc_wakeup = 0;
@@ -160,8 +164,10 @@ checklids(struct acpi_softc *sc)
 int
 suspend_finish(void *v)
 {
+       extern int cpu_wakeups;
        struct acpi_softc *sc = v;
 
+       printf("wakeups: %d %d\n", cpu_wakeups, sc->sc_wakeups);
        printf("wakeup event: ");
        switch (sc->sc_wakegpe) {
        case 0:
index 4ec2317..c7e17c4 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: acpivar.h,v 1.133 2024/08/06 17:38:56 kettenis Exp $  */
+/*     $OpenBSD: acpivar.h,v 1.134 2024/08/08 07:02:38 kettenis Exp $  */
 /*
  * Copyright (c) 2005 Thorsten Lockert <tholo@sigmasoft.com>
  *
@@ -265,6 +265,7 @@ struct acpi_softc {
        struct aml_node         *sc_wak;
        int                     sc_state;
        int                     sc_wakeup;
+       int                     sc_wakeups;
        time_t                  sc_resume_time;
        struct acpiec_softc     *sc_ec;         /* XXX assume single EC */