35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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
 |