162306a36Sopenharmony_ci#!/bin/bash 262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 362306a36Sopenharmony_ci# 462306a36Sopenharmony_ci# Load kernel module for FPU tests 562306a36Sopenharmony_ci 662306a36Sopenharmony_ciuid=$(id -u) 762306a36Sopenharmony_ciif [ $uid -ne 0 ]; then 862306a36Sopenharmony_ci echo "$0: Must be run as root" 962306a36Sopenharmony_ci exit 1 1062306a36Sopenharmony_cifi 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciif ! which modprobe > /dev/null 2>&1; then 1362306a36Sopenharmony_ci echo "$0: You need modprobe installed" 1462306a36Sopenharmony_ci exit 4 1562306a36Sopenharmony_cifi 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciif ! modinfo test_fpu > /dev/null 2>&1; then 1862306a36Sopenharmony_ci echo "$0: You must have the following enabled in your kernel:" 1962306a36Sopenharmony_ci echo "CONFIG_TEST_FPU=m" 2062306a36Sopenharmony_ci exit 4 2162306a36Sopenharmony_cifi 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciNR_CPUS=$(getconf _NPROCESSORS_ONLN) 2462306a36Sopenharmony_ciif [ ! $NR_CPUS ]; then 2562306a36Sopenharmony_ci NR_CPUS=1 2662306a36Sopenharmony_cifi 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_cimodprobe test_fpu 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ciif [ ! -e /sys/kernel/debug/selftest_helpers/test_fpu ]; then 3162306a36Sopenharmony_ci mount -t debugfs none /sys/kernel/debug 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci if [ ! -e /sys/kernel/debug/selftest_helpers/test_fpu ]; then 3462306a36Sopenharmony_ci echo "$0: Error mounting debugfs" 3562306a36Sopenharmony_ci exit 4 3662306a36Sopenharmony_ci fi 3762306a36Sopenharmony_cifi 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ciecho "Running 1000 iterations on all CPUs... " 4062306a36Sopenharmony_cifor i in $(seq 1 1000); do 4162306a36Sopenharmony_ci for c in $(seq 1 $NR_CPUS); do 4262306a36Sopenharmony_ci ./test_fpu & 4362306a36Sopenharmony_ci done 4462306a36Sopenharmony_cidone 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_cirmmod test_fpu 47