freebsd-dev/sys
John Baldwin 9dc0b3d54f Implement simple machine check support for amd64 and i386.
- For CPUs that only support MCE (the machine check exception) but not MCA
  (i.e. Pentium), all this does is print out the value of the machine check
  registers and then panic when a machine check exception occurs.
- For CPUs that support MCA (the machine check architecture), the support is
  a bit more involved.
  - First, there is limited support for decoding the CPU-independent MCA
    error codes in the kernel, and the kernel uses this to output a short
    description of any machine check events that occur.
  - When a machine check exception occurs, all of the MCx banks on the
    current CPU are scanned and any events are reported to the console
    before panic'ing.
  - To catch events for correctable errors, a periodic timer kicks off a
    task which scans the MCx banks on all CPUs.  The frequency of these
    checks is controlled via the "hw.mca.interval" sysctl.
  - Userland can request an immediate scan of the MCx banks by writing
    a non-zero value to "hw.mca.force_scan".
  - If any correctable events are encountered, the appropriate details
    are stored in a 'struct mca_record' (defined in <machine/mca.h>).
    The "hw.mca.count" is a count of such records and each record may
    be queried via the "hw.mca.records" tree by specifying the record
    index (0 .. count - 1) as the next name in the MIB similar to using
    PIDs with the kern.proc.* sysctls.  The idea is to export machine
    check events to userland for more detailed processing.
  - The periodic timer and hw.mca sysctls are only present if the CPU
    supports MCA.

Discussed with:	emaste (briefly)
MFC after:	1 month
2009-05-13 17:53:04 +00:00
..
amd64 Implement simple machine check support for amd64 and i386. 2009-05-13 17:53:04 +00:00
arm - Resurrect the debug printf message I accidentally dropped 2009-05-12 21:28:41 +00:00
boot GPT style partitioning for loader(8) with U-Boot support library (tested on 2009-05-05 16:29:08 +00:00
bsm Merge OpenBSM 1.1 from OpenBSM vendor branch to head. 2009-04-19 16:17:13 +00:00
cam Remove dead code. 2009-05-12 16:38:32 +00:00
cddl Remove the thread argument from the FSD (File-System Dependent) parts of 2009-05-11 15:33:26 +00:00
compat Fix memory leak in an error case. 2009-05-13 08:50:13 +00:00
conf Implement simple machine check support for amd64 and i386. 2009-05-13 17:53:04 +00:00
contrib Makefile to record the technique by which the .uu files are generated 2009-05-09 18:54:18 +00:00
crypto identify routine takes driver_t *, not device_t *. 2009-02-05 19:30:28 +00:00
ddb Prefer prototypes to k&r definitions. 2009-03-09 13:32:19 +00:00
dev Add a comment to motivate my last change. 2009-05-13 16:19:05 +00:00
fs Modify the experimental nfs server to use the new nfsd_nfsd_args 2009-05-12 16:04:51 +00:00
gdb
geom Check return value of gctl_get_asciiparam(). 2009-05-12 16:59:50 +00:00
gnu Remove the thread argument from the FSD (File-System Dependent) parts of 2009-05-11 15:33:26 +00:00
i386 Implement simple machine check support for amd64 and i386. 2009-05-13 17:53:04 +00:00
ia64 - Use "device\t" and "options \t" for consistency. 2009-05-10 00:00:25 +00:00
isa Rename statclock_disable variable to atrtcclock_disable that it actually is, 2009-05-03 17:47:21 +00:00
kern Eliminate page queues locking from bufdone_finish() through the 2009-05-13 05:39:39 +00:00
kgssapi Call svc_freereq() before returning from the service proc. 2008-11-12 15:31:05 +00:00
legacy/dev Garbage collect legacy upgt driver now that it is available in the new 2009-05-13 17:11:25 +00:00
libkern Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
mips - Use "device\t" and "options \t" for consistency. 2009-05-10 00:00:25 +00:00
modules connect upgt(4) to the build. It should work on all architectures. 2009-05-12 02:08:56 +00:00
net Garbage collect now-unused NETISR_FORCEQUEUE, which overrode the global 2009-05-13 17:22:33 +00:00
net80211 Cancel the scan when going to INIT state. Should do this for other states here 2009-05-10 02:21:19 +00:00
netatalk Lock interface address list lock around ifaddr inserts and deletes 2009-04-19 22:01:38 +00:00
netgraph Fix copy-paste bug in NGM_NETFLOW_SETCONFIG argument size verification. 2009-05-13 02:26:34 +00:00
netinet This patch adds a host route to an interface address (that is assigned 2009-05-12 07:41:20 +00:00
netinet6 Implement RFC 5095 more fully. Rather than marking this no-op code as 2009-05-09 18:25:58 +00:00
netipsec Change the curvnet variable from a global const struct vnet *, 2009-05-05 10:56:12 +00:00
netipx Make the SPX code use its own copies of insque()/remque(). 2009-04-26 21:03:27 +00:00
netnatm Remove IFF_NEEDSGIANT, a compatibility infrastructure introduced 2009-03-15 14:21:05 +00:00
netncp Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
netsmb Implement device cloning for /dev/nsmb, the netsmb control pseudo-device. 2008-11-03 14:23:15 +00:00
nfs Adding sys/nfs/nfssvc.h and sys/nfs/nfs_nfssvc.c in preparation for 2009-04-07 19:06:51 +00:00
nfs4client Remove the thread argument from the FSD (File-System Dependent) parts of 2009-05-11 15:33:26 +00:00
nfsclient Eliminate gratuitous clearing of the page's dirty mask. 2009-05-12 05:49:02 +00:00
nfsserver Remove the thread argument from the FSD (File-System Dependent) parts of 2009-05-11 15:33:26 +00:00
nlm Do not embed struct ucred into larger netcred parent structures. 2009-05-09 18:09:17 +00:00
opencrypto Fix return type for detach routine (should be int) 2009-02-05 17:43:12 +00:00
pc98 - Use "device\t" and "options \t" for consistency. 2009-05-10 00:00:25 +00:00
pci For RTL8139C+ controllers, have controller handle padding short 2009-04-20 07:13:04 +00:00
powerpc - Use "device\t" and "options \t" for consistency. 2009-05-10 00:00:25 +00:00
rpc Added a field to the SVCXPRT structure that the nfsv4 server can 2009-04-16 16:26:35 +00:00
security Remove the thread argument from the FSD (File-System Dependent) parts of 2009-05-11 15:33:26 +00:00
sparc64 Just like in cpu_halt(), use cpu_shutdown() rather than ofw_exit() 2009-05-10 20:41:52 +00:00
sun4v Don't conditionally define CACHE_LINE_SHIFT, as we anticipate sizing 2009-04-20 12:59:23 +00:00
sys *sigh*, while the kernel built, userland C did not. Revert the previous 2009-05-11 21:13:00 +00:00
tools Add SDT DTrace probes for VFS vnode operations in the vfs:vop 2009-03-29 03:30:15 +00:00
ufs Remove the thread argument from the FSD (File-System Dependent) parts of 2009-05-11 15:33:26 +00:00
vm Eliminate page queues locking from bufdone_finish() through the 2009-05-13 05:39:39 +00:00
xdr Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
xen Fix the Xen build for i386 PV mode. 2009-04-01 17:06:28 +00:00
Makefile Removal pccard directory requires removing it from the list of things 2009-02-15 18:19:24 +00:00