ltp-ddt realtime_cpu_load timeout

时间:2021-08-11 21:30:23
# @name Worstcase Latency with cpu load by using cyclictest
# @desc Measure latency under cpu load by spawning n procs spinning on sqrt()
# @requires armv*
# @setup_requires

REALTIME_S_PERF_1C_CPU_LOAD source 'functions.sh'; source 'board_requirements.sh'; latency=`get_acceptable_latency cpu`; multi_run_processes.sh -s "timeout -t 120 -s 9 sh -c 'while true; do stress --cpu 4; done'  || true" -l "-n 1" -s "run_cyclictest $latency -S -p98 -m -n -q -D 2m" -l "-n 1"
 
timeout -t 120 -s 9 sh -c 'while true; do stress --cpu 4; done'
查了一下timeout的用法,并没有-t
 
timeout [选项] 数字[后缀] 命令 [参数]...
后缀”s”代表秒(默认值),”m”代表分,”h”代表小时,”d”代表天。
 
长选项必须使用的参数对于短选项时也是必需使用的。  
-s, --signal=信号
        指定在超时时发送的信号。信号可以是类似"HUP"的信号名或是信号数。        
         查看"kill -l"以获得信号列表      
         --help        显示此帮助信息并退出
          --version        显示版本信息并退出
如果程序超时则退出状态数为124,否则返回程序退出状态。 如果没有指定信号则默认为TERM 信号。TERM 信号在进程没有捕获此信号时杀死进程。 对于另一些进程可能需要使用KILL (9)信号,当然此信号不能被捕获。
 
timeout -s 9 10 top
解释:如过command命令在10秒内结束,则平安结束,运行超过10秒,将被强行kill掉。
 
所以目测timeout -t 120 -s 9 sh -c 'while true; do stress --cpu 4; done'应该改为:
timeout -s 9 120 sh -c 'while true; do stress --cpu 4; done'