File: cache-error-trigger

package info (click to toggle)
mcelog 104-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 996 kB
  • ctags: 1,508
  • sloc: ansic: 7,739; sh: 481; makefile: 87
file content (34 lines) | stat: -rwxr-xr-x 1,035 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash
# 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 [ "$(< $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