162306a36Sopenharmony_ci#!/bin/bash
262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0+
362306a36Sopenharmony_ci#
462306a36Sopenharmony_ci# Analyze a given results directory for rcutorture progress.
562306a36Sopenharmony_ci#
662306a36Sopenharmony_ci# Usage: kvm-recheck-rcu.sh resdir
762306a36Sopenharmony_ci#
862306a36Sopenharmony_ci# Copyright (C) Facebook, 2020
962306a36Sopenharmony_ci#
1062306a36Sopenharmony_ci# Authors: Paul E. McKenney <paulmck@kernel.org>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cii="$1"
1362306a36Sopenharmony_ciif test -d "$i" -a -r "$i"
1462306a36Sopenharmony_cithen
1562306a36Sopenharmony_ci	:
1662306a36Sopenharmony_cielse
1762306a36Sopenharmony_ci	echo Unreadable results directory: $i
1862306a36Sopenharmony_ci	exit 1
1962306a36Sopenharmony_cifi
2062306a36Sopenharmony_ci. functions.sh
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciconfigfile=`echo $i | sed -e 's/^.*\///'`
2362306a36Sopenharmony_cinscfs="`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'`"
2462306a36Sopenharmony_ciif test -z "$nscfs"
2562306a36Sopenharmony_cithen
2662306a36Sopenharmony_ci	echo "$configfile ------- "
2762306a36Sopenharmony_cielse
2862306a36Sopenharmony_ci	dur="`grep -v '^#' $i/qemu-cmd | sed -e 's/^.* scftorture.shutdown_secs=//' -e 's/ .*$//' 2> /dev/null`"
2962306a36Sopenharmony_ci	if test -z "$dur"
3062306a36Sopenharmony_ci	then
3162306a36Sopenharmony_ci		rate=""
3262306a36Sopenharmony_ci	else
3362306a36Sopenharmony_ci		nscfss=`awk -v nscfs=$nscfs -v dur=$dur '
3462306a36Sopenharmony_ci			BEGIN { print nscfs / dur }' < /dev/null`
3562306a36Sopenharmony_ci		rate=" ($nscfss/s)"
3662306a36Sopenharmony_ci	fi
3762306a36Sopenharmony_ci	echo "${configfile} ------- ${nscfs} SCF handler invocations$rate"
3862306a36Sopenharmony_cifi
39