summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/smptests.h
diff options
context:
space:
mode:
authortegge <tegge@FreeBSD.org>1998-03-03 22:56:30 +0000
committertegge <tegge@FreeBSD.org>1998-03-03 22:56:30 +0000
commit9f3982f0f6d7493912022ff7b37436e9d976fb84 (patch)
tree2f6bf35c42516c9c0cdb317a15559bbb0da91450 /sys/i386/include/smptests.h
parentbeae57c5b35bad7c8aa9705208f9552264588380 (diff)
downloadFreeBSD-src-9f3982f0f6d7493912022ff7b37436e9d976fb84.zip
FreeBSD-src-9f3982f0f6d7493912022ff7b37436e9d976fb84.tar.gz
When entering the apic version of slow interrupt handler, level
interrupts are masked, and EOI is sent iff the corresponding ISR bit is set in the local apic. If the CPU cannot obtain the interrupt service lock (currently the global kernel lock) the interrupt is forwarded to the CPU holding that lock. Clock interrupts now have higher priority than other slow interrupts.
Diffstat (limited to 'sys/i386/include/smptests.h')
-rw-r--r--sys/i386/include/smptests.h33
1 files changed, 32 insertions, 1 deletions
diff --git a/sys/i386/include/smptests.h b/sys/i386/include/smptests.h
index da80b72..60a8588 100644
--- a/sys/i386/include/smptests.h
+++ b/sys/i386/include/smptests.h
@@ -22,7 +22,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: smptests.h,v 1.27 1997/09/07 23:06:15 fsmp Exp $
+ * $Id: smptests.h,v 1.28 1997/12/08 22:56:49 fsmp Exp $
*/
#ifndef _MACHINE_SMPTESTS_H_
@@ -250,6 +250,37 @@
*/
#define GIANT_LOCK
+#ifdef APIC_IO
+/*
+ * Enable extra counters for some selected locations in the interrupt handlers.
+ * Look in apic_vector.s, apic_ipl.s and ipl.s for APIC_ITRACE or
+ * APIC_INTR_DIAGNOSTIC.
+ */
+#undef APIC_INTR_DIAGNOSTIC
+
+/*
+ * Add extra tracking of a specific interrupt. Look in apic_vector.s,
+ * apic_ipl.s and ipl.s for APIC_ITRACE and log_intr_event.
+ * APIC_INTR_DIAGNOSTIC must be defined for this to work.
+ */
+#ifdef APIC_INTR_DIAGNOSTIC
+#define APIC_INTR_DIAGNOSTIC_IRQ 17
+#endif
+
+/*
+ * Don't assume that slow interrupt handler X is called from vector
+ * X + ICU_OFFSET.
+ */
+#define APIC_INTR_REORDER
+
+/*
+ * Redirect clock interrupts to a higher priority (fast intr) vector,
+ * while still using the slow interrupt handler. Only effective when
+ * APIC_INTR_REORDER is defined.
+ */
+#define APIC_INTR_HIGHPRI_CLOCK
+
+#endif /* APIC_IO */
/*
* Misc. counters.
OpenPOWER on IntegriCloud