diff options
author | jhb <jhb@FreeBSD.org> | 2010-05-24 15:45:05 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2010-05-24 15:45:05 +0000 |
commit | 9e6f9b1e86420cd7da13f1d568950ab52ff2428f (patch) | |
tree | a9d317cc94e24d55cd44eed2052b78547f4a46f9 /sys/i386/include/pcpu.h | |
parent | ce59c74efda35e47b39621f57c0fe63e02c7af5b (diff) | |
download | FreeBSD-src-9e6f9b1e86420cd7da13f1d568950ab52ff2428f.zip FreeBSD-src-9e6f9b1e86420cd7da13f1d568950ab52ff2428f.tar.gz |
Add support for corrected machine check interrupts. CMCI is a new local
APIC interrupt that fires when a threshold of corrected machine check
events is reached. CMCI also includes a count of events when reporting
corrected errors in the bank's status register. Note that individual
banks may or may not support CMCI. If they do, each bank includes its own
threshold register that determines when the interrupt fires. Currently
the code uses a very simple strategy where it doubles the threshold on
each interrupt until it succeeds in throttling the interrupt to occur
only once a minute (this interval can be tuned via sysctl). The threshold
is also adjusted on each hourly poll which will lower the threshold once
events stop occurring.
Tested by: Sailaja Bangaru sbappana at yahoo com
MFC after: 1 month
Diffstat (limited to 'sys/i386/include/pcpu.h')
-rw-r--r-- | sys/i386/include/pcpu.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/i386/include/pcpu.h b/sys/i386/include/pcpu.h index 6cc03d0..5345eb6 100644 --- a/sys/i386/include/pcpu.h +++ b/sys/i386/include/pcpu.h @@ -76,6 +76,7 @@ struct shadow_time_info { u_int pc_acpi_id; /* ACPI CPU id */ \ u_int pc_apic_id; \ int pc_private_tss; /* Flag indicating private tss*/\ + u_int pc_cmci_mask; /* MCx banks for CMCI */ \ u_int pc_cr3; /* track cr3 for R1/R3*/ \ u_int pc_pdir; \ u_int pc_lazypmap; \ @@ -102,7 +103,8 @@ struct shadow_time_info { int pc_currentldt; \ u_int pc_acpi_id; /* ACPI CPU id */ \ u_int pc_apic_id; \ - int pc_private_tss /* Flag indicating private tss */ + int pc_private_tss; /* Flag indicating private tss*/\ + u_int pc_cmci_mask /* MCx banks for CMCI */ \ #endif |