xref: /OK3568_Linux_fs/kernel/tools/testing/selftests/fpu/run_test_fpu.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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