Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/acpi Downgrade the currently supported maximum C-sta...



details:   https://anonhg.NetBSD.org/src/rev/0002980532bb
branches:  trunk
changeset: 756977:0002980532bb
user:      jruoho <jruoho%NetBSD.org@localhost>
date:      Mon Aug 09 05:00:24 2010 +0000

description:
Downgrade the currently supported maximum C-state to C1. There appears to be
timer-related interrupt issues also in C2. With C1 it is guaranteed that
acpicpu(4) will not cause any slowdowns due stalled local APIC timer.

diffstat:

 sys/dev/acpi/acpi_cpu_cstate.c |  12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diffs (37 lines):

diff -r 41342b5e29f2 -r 0002980532bb sys/dev/acpi/acpi_cpu_cstate.c
--- a/sys/dev/acpi/acpi_cpu_cstate.c    Mon Aug 09 04:27:07 2010 +0000
+++ b/sys/dev/acpi/acpi_cpu_cstate.c    Mon Aug 09 05:00:24 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: acpi_cpu_cstate.c,v 1.16 2010/08/08 18:25:06 jruoho Exp $ */
+/* $NetBSD: acpi_cpu_cstate.c,v 1.17 2010/08/09 05:00:24 jruoho Exp $ */
 
 /*-
  * Copyright (c) 2010 Jukka Ruohonen <jruohonen%iki.fi@localhost>
@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_cpu_cstate.c,v 1.16 2010/08/08 18:25:06 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_cpu_cstate.c,v 1.17 2010/08/09 05:00:24 jruoho Exp $");
 
 #include <sys/param.h>
 #include <sys/cpu.h>
@@ -65,13 +65,15 @@
 extern struct acpicpu_softc **acpicpu_sc;
 
 /*
- * XXX:        The local APIC timer (as well as TSC) is typically
- *     stopped in C3. For now, we cannot but disable C3.
+ * XXX:        The local APIC timer (as well as TSC) is typically stopped in C3.
+ *     For now, we cannot but disable C3. But there appears to be timer-
+ *     related interrupt issues also in C2. The only entirely safe option
+ *     at the moment is to use C1.
  */
 #ifdef ACPICPU_ENABLE_C3
 static int cs_state_max = ACPI_STATE_C3;
 #else
-static int cs_state_max = ACPI_STATE_C2;
+static int cs_state_max = ACPI_STATE_C1;
 #endif
 
 void



Home | Main Index | Thread Index | Old Index