1*4882a593Smuzhiyun#!/bin/bash 2*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 3*4882a593Smuzhiyun# 4*4882a593Smuzhiyun# Load kernel module for FPU tests 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunuid=$(id -u) 7*4882a593Smuzhiyunif [ $uid -ne 0 ]; then 8*4882a593Smuzhiyun echo "$0: Must be run as root" 9*4882a593Smuzhiyun exit 1 10*4882a593Smuzhiyunfi 11*4882a593Smuzhiyun 12*4882a593Smuzhiyunif ! which modprobe > /dev/null 2>&1; then 13*4882a593Smuzhiyun echo "$0: You need modprobe installed" 14*4882a593Smuzhiyun exit 4 15*4882a593Smuzhiyunfi 16*4882a593Smuzhiyun 17*4882a593Smuzhiyunif ! modinfo test_fpu > /dev/null 2>&1; then 18*4882a593Smuzhiyun echo "$0: You must have the following enabled in your kernel:" 19*4882a593Smuzhiyun echo "CONFIG_TEST_FPU=m" 20*4882a593Smuzhiyun exit 4 21*4882a593Smuzhiyunfi 22*4882a593Smuzhiyun 23*4882a593SmuzhiyunNR_CPUS=$(getconf _NPROCESSORS_ONLN) 24*4882a593Smuzhiyunif [ ! $NR_CPUS ]; then 25*4882a593Smuzhiyun NR_CPUS=1 26*4882a593Smuzhiyunfi 27*4882a593Smuzhiyun 28*4882a593Smuzhiyunmodprobe test_fpu 29*4882a593Smuzhiyun 30*4882a593Smuzhiyunif [ ! -e /sys/kernel/debug/selftest_helpers/test_fpu ]; then 31*4882a593Smuzhiyun mount -t debugfs none /sys/kernel/debug 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun if [ ! -e /sys/kernel/debug/selftest_helpers/test_fpu ]; then 34*4882a593Smuzhiyun echo "$0: Error mounting debugfs" 35*4882a593Smuzhiyun exit 4 36*4882a593Smuzhiyun fi 37*4882a593Smuzhiyunfi 38*4882a593Smuzhiyun 39*4882a593Smuzhiyunecho "Running 1000 iterations on all CPUs... " 40*4882a593Smuzhiyunfor i in $(seq 1 1000); do 41*4882a593Smuzhiyun for c in $(seq 1 $NR_CPUS); do 42*4882a593Smuzhiyun ./test_fpu & 43*4882a593Smuzhiyun done 44*4882a593Smuzhiyundone 45*4882a593Smuzhiyun 46*4882a593Smuzhiyunrmmod test_fpu 47