11e4c2830SViresh Kumar#!/bin/bash 2*b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 31e4c2830SViresh Kumar# 41e4c2830SViresh Kumar# Special test cases reported by people 51e4c2830SViresh Kumar 61e4c2830SViresh Kumar# Testcase 1: Reported here: http://marc.info/?l=linux-pm&m=140618592709858&w=2 71e4c2830SViresh Kumar 81e4c2830SViresh Kumar# protect against multiple inclusion 91e4c2830SViresh Kumarif [ $FILE_SPECIAL ]; then 101e4c2830SViresh Kumar return 0 111e4c2830SViresh Kumarelse 121e4c2830SViresh Kumar FILE_SPECIAL=DONE 131e4c2830SViresh Kumarfi 141e4c2830SViresh Kumar 151e4c2830SViresh Kumarsource cpu.sh 161e4c2830SViresh Kumarsource cpufreq.sh 171e4c2830SViresh Kumarsource governor.sh 181e4c2830SViresh Kumar 191e4c2830SViresh Kumar# Test 1 201e4c2830SViresh Kumar# $1: policy 211e4c2830SViresh Kumar__simple_lockdep() 221e4c2830SViresh Kumar{ 231e4c2830SViresh Kumar # switch to ondemand 241e4c2830SViresh Kumar __switch_governor $1 "ondemand" 251e4c2830SViresh Kumar 261e4c2830SViresh Kumar # cat ondemand files 271e4c2830SViresh Kumar local ondir=$(find_gov_directory $1 "ondemand") 281e4c2830SViresh Kumar if [ -z $ondir ]; then 291e4c2830SViresh Kumar printf "${FUNCNAME[0]}Ondemand directory not created, quit" 301e4c2830SViresh Kumar return 311e4c2830SViresh Kumar fi 321e4c2830SViresh Kumar 331e4c2830SViresh Kumar cat $ondir/* 341e4c2830SViresh Kumar 351e4c2830SViresh Kumar # switch to conservative 361e4c2830SViresh Kumar __switch_governor $1 "conservative" 371e4c2830SViresh Kumar} 381e4c2830SViresh Kumar 391e4c2830SViresh Kumarsimple_lockdep() 401e4c2830SViresh Kumar{ 411e4c2830SViresh Kumar printf "** Test: Running ${FUNCNAME[0]} **\n" 421e4c2830SViresh Kumar 431e4c2830SViresh Kumar for_each_policy __simple_lockdep 441e4c2830SViresh Kumar} 451e4c2830SViresh Kumar 461e4c2830SViresh Kumar# Test 2 471e4c2830SViresh Kumar# $1: policy 481e4c2830SViresh Kumar__concurrent_lockdep() 491e4c2830SViresh Kumar{ 501e4c2830SViresh Kumar for i in `seq 0 100`; do 511e4c2830SViresh Kumar __simple_lockdep $1 521e4c2830SViresh Kumar done 531e4c2830SViresh Kumar} 541e4c2830SViresh Kumar 551e4c2830SViresh Kumarconcurrent_lockdep() 561e4c2830SViresh Kumar{ 571e4c2830SViresh Kumar printf "** Test: Running ${FUNCNAME[0]} **\n" 581e4c2830SViresh Kumar 591e4c2830SViresh Kumar for_each_policy_concurrent __concurrent_lockdep 601e4c2830SViresh Kumar} 611e4c2830SViresh Kumar 621e4c2830SViresh Kumar# Test 3 631e4c2830SViresh Kumarquick_shuffle() 641e4c2830SViresh Kumar{ 651e4c2830SViresh Kumar # this is called concurrently from governor_race 661e4c2830SViresh Kumar for I in `seq 1000` 671e4c2830SViresh Kumar do 681e4c2830SViresh Kumar echo ondemand | sudo tee $CPUFREQROOT/policy*/scaling_governor & 691e4c2830SViresh Kumar echo userspace | sudo tee $CPUFREQROOT/policy*/scaling_governor & 701e4c2830SViresh Kumar done 711e4c2830SViresh Kumar} 721e4c2830SViresh Kumar 731e4c2830SViresh Kumargovernor_race() 741e4c2830SViresh Kumar{ 751e4c2830SViresh Kumar printf "** Test: Running ${FUNCNAME[0]} **\n" 761e4c2830SViresh Kumar 771e4c2830SViresh Kumar # run 8 concurrent instances 781e4c2830SViresh Kumar for I in `seq 8` 791e4c2830SViresh Kumar do 801e4c2830SViresh Kumar quick_shuffle & 811e4c2830SViresh Kumar done 821e4c2830SViresh Kumar} 831e4c2830SViresh Kumar 841e4c2830SViresh Kumar# Test 4 851e4c2830SViresh Kumar# $1: cpu 861e4c2830SViresh Kumarhotplug_with_updates_cpu() 871e4c2830SViresh Kumar{ 881e4c2830SViresh Kumar local filepath="$CPUROOT/$1/cpufreq" 891e4c2830SViresh Kumar 901e4c2830SViresh Kumar # switch to ondemand 911e4c2830SViresh Kumar __switch_governor_for_cpu $1 "ondemand" 921e4c2830SViresh Kumar 931e4c2830SViresh Kumar for i in `seq 1 5000` 941e4c2830SViresh Kumar do 951e4c2830SViresh Kumar reboot_cpu $1 961e4c2830SViresh Kumar done & 971e4c2830SViresh Kumar 981e4c2830SViresh Kumar local freqs=$(cat $filepath/scaling_available_frequencies) 991e4c2830SViresh Kumar local oldfreq=$(cat $filepath/scaling_min_freq) 1001e4c2830SViresh Kumar 1011e4c2830SViresh Kumar for j in `seq 1 5000` 1021e4c2830SViresh Kumar do 1031e4c2830SViresh Kumar # Set all frequencies one-by-one 1041e4c2830SViresh Kumar for freq in $freqs; do 1051e4c2830SViresh Kumar echo $freq > $filepath/scaling_min_freq 1061e4c2830SViresh Kumar done 1071e4c2830SViresh Kumar done 1081e4c2830SViresh Kumar 1091e4c2830SViresh Kumar # restore old freq 1101e4c2830SViresh Kumar echo $oldfreq > $filepath/scaling_min_freq 1111e4c2830SViresh Kumar} 1121e4c2830SViresh Kumar 1131e4c2830SViresh Kumarhotplug_with_updates() 1141e4c2830SViresh Kumar{ 1151e4c2830SViresh Kumar for_each_non_boot_cpu hotplug_with_updates_cpu 1161e4c2830SViresh Kumar} 117