35 lines
1.0 KiB
Plaintext
35 lines
1.0 KiB
Plaintext
|
#!/bin/sh
|
||
|
# cache error trigger. This shell script is executed by mcelog in daemon mode
|
||
|
# when a CPU reports excessive corrected cache errors. This could be a indication
|
||
|
# for future uncorrected errors.
|
||
|
#
|
||
|
# environment:
|
||
|
# MESSAGE Human readable error message
|
||
|
# CPU Linux CPU number that triggered the error
|
||
|
# LEVEL Cache level affected by error
|
||
|
# TYPE Cache type affected by error (Data,Instruction,Generic)
|
||
|
# AFFECTED_CPUS List of CPUs sharing the affected cache
|
||
|
# SOCKETID Socket ID of affected CPU
|
||
|
#
|
||
|
# note: will run as mcelog configured user
|
||
|
# this can be changed in mcelog.conf
|
||
|
|
||
|
#
|
||
|
# offline the CPUs sharing the affected cache
|
||
|
#
|
||
|
EXIT=0
|
||
|
|
||
|
for i in $AFFECTED_CPUS ; do
|
||
|
logger -s -p daemon.crit -t mcelog "Offlining CPU $i due to cache error threshold"
|
||
|
F=$(printf "/sys/devices/system/cpu/cpu%d/online" $i)
|
||
|
echo 0 > $F
|
||
|
if [ "$(cat $F)" != "0" ] ; then
|
||
|
logger -s -p daemon.warn -t mcelog "Offlining CPU $i failed"
|
||
|
EXIT=1
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
[ -x ./cache-error-trigger.local ] && . ./cache-error-trigger.local
|
||
|
|
||
|
exit $EXIT
|