summaryrefslogtreecommitdiffstats
path: root/sys/dev/isci
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2012-03-30 20:17:39 +0000
committerjhb <jhb@FreeBSD.org>2012-03-30 20:17:39 +0000
commit98a50d54e52d23d301e1d7f73f41cd564c3d9671 (patch)
treec259ceff59130d45a30debab81ddd4f44ec7416a /sys/dev/isci
parent0f7a6b4eb78584a88dfb32549c62e351d32b33fe (diff)
downloadFreeBSD-src-98a50d54e52d23d301e1d7f73f41cd564c3d9671.zip
FreeBSD-src-98a50d54e52d23d301e1d7f73f41cd564c3d9671.tar.gz
Attempt to make machine check handling a bit more robust:
- Don't malloc() new MCA records for machine checks logged due to a CMCI or MC# exception. Instead, use a pre-allocated pool of records. When a CMCI or MC# exception fires, schedule a swi to refill the pool. The pool is sized to hold at least one record per available machine bank, and one record per CPU. This should handle the case of all CPUs triggering a single bank at once as well as the case a single CPU triggering all of its banks. The periodic scans still use malloc() since they are run from a safe context. - Since we have to create an swi to handle refills, make the periodic scan a second swi for the same thread instead of having a separate taskqueue thread for the scans. Suggested by: mdf (avoiding malloc()) MFC after: 2 weeks
Diffstat (limited to 'sys/dev/isci')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud