1*4882a593Smuzhiyun#!/bin/bash 2*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0+ 3*4882a593Smuzhiyun# 4*4882a593Smuzhiyun# Analyze a given results directory for rcutorture progress. 5*4882a593Smuzhiyun# 6*4882a593Smuzhiyun# Usage: kvm-recheck-rcu.sh resdir 7*4882a593Smuzhiyun# 8*4882a593Smuzhiyun# Copyright (C) Facebook, 2020 9*4882a593Smuzhiyun# 10*4882a593Smuzhiyun# Authors: Paul E. McKenney <paulmck@kernel.org> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyuni="$1" 13*4882a593Smuzhiyunif test -d "$i" -a -r "$i" 14*4882a593Smuzhiyunthen 15*4882a593Smuzhiyun : 16*4882a593Smuzhiyunelse 17*4882a593Smuzhiyun echo Unreadable results directory: $i 18*4882a593Smuzhiyun exit 1 19*4882a593Smuzhiyunfi 20*4882a593Smuzhiyun. functions.sh 21*4882a593Smuzhiyun 22*4882a593Smuzhiyunconfigfile=`echo $i | sed -e 's/^.*\///'` 23*4882a593Smuzhiyunnscfs="`grep 'scf_invoked_count ver:' $i/console.log 2> /dev/null | tail -1 | sed -e 's/^.* scf_invoked_count ver: //' -e 's/ .*$//' | tr -d '\015'`" 24*4882a593Smuzhiyunif test -z "$nscfs" 25*4882a593Smuzhiyunthen 26*4882a593Smuzhiyun echo "$configfile ------- " 27*4882a593Smuzhiyunelse 28*4882a593Smuzhiyun dur="`sed -e 's/^.* scftorture.shutdown_secs=//' -e 's/ .*$//' < $i/qemu-cmd 2> /dev/null`" 29*4882a593Smuzhiyun if test -z "$dur" 30*4882a593Smuzhiyun then 31*4882a593Smuzhiyun rate="" 32*4882a593Smuzhiyun else 33*4882a593Smuzhiyun nscfss=`awk -v nscfs=$nscfs -v dur=$dur ' 34*4882a593Smuzhiyun BEGIN { print nscfs / dur }' < /dev/null` 35*4882a593Smuzhiyun rate=" ($nscfss/s)" 36*4882a593Smuzhiyun fi 37*4882a593Smuzhiyun echo "${configfile} ------- ${nscfs} SCF handler invocations$rate" 38*4882a593Smuzhiyunfi 39