47 lines
		
	
	
		
			878 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			878 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| # SPDX-License-Identifier: GPL-2.0
 | |
| #
 | |
| # Load kernel module for FPU tests
 | |
| 
 | |
| uid=$(id -u)
 | |
| if [ $uid -ne 0 ]; then
 | |
| 	echo "$0: Must be run as root"
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| if ! which modprobe > /dev/null 2>&1; then
 | |
| 	echo "$0: You need modprobe installed"
 | |
|         exit 4
 | |
| fi
 | |
| 
 | |
| if ! modinfo test_fpu > /dev/null 2>&1; then
 | |
| 	echo "$0: You must have the following enabled in your kernel:"
 | |
| 	echo "CONFIG_TEST_FPU=m"
 | |
| 	exit 4
 | |
| fi
 | |
| 
 | |
| NR_CPUS=$(getconf _NPROCESSORS_ONLN)
 | |
| if [ ! $NR_CPUS ]; then
 | |
| 	NR_CPUS=1
 | |
| fi
 | |
| 
 | |
| modprobe test_fpu
 | |
| 
 | |
| if [ ! -e /sys/kernel/debug/selftest_helpers/test_fpu ]; then
 | |
| 	mount -t debugfs none /sys/kernel/debug
 | |
| 
 | |
| 	if [ ! -e /sys/kernel/debug/selftest_helpers/test_fpu ]; then
 | |
| 		echo "$0: Error mounting debugfs"
 | |
| 		exit 4
 | |
| 	fi
 | |
| fi
 | |
| 
 | |
| echo "Running 1000 iterations on all CPUs... "
 | |
| for i in $(seq 1 1000); do
 | |
| 	for c in $(seq 1 $NR_CPUS); do
 | |
| 		./test_fpu &
 | |
| 	done
 | |
| done
 | |
| 
 | |
| rmmod test_fpu
 |