#!/usr/bin/awk -f
#
# Usage: $0 mm/filemap.c.gcov | sort -nr -k4

BEGIN {
	FS = ":"
	exec_count = "0"
	func_name  = ""
}

/[0-9-]+: +[0-9]+:[a-z].*\(.*/ {
	match($3, /([a-zA-Z_0-9]+)\(/)
	exec_count = $1
	func_name  = substr($3, RSTART, RLENGTH-1)
}

/spin_lock/ {
	if ($1 > 10000) {
		sub(/.gcov$/, "", FILENAME)
		sub(/.*\//,   "", FILENAME)
		sub(/[ \t]+/, "", $2)
		sub(/[ \t]+/, "", $3)
		printf "%-20s%6s%12s%12s%40s  %s\n",
			FILENAME,	# file name
			$2,		# line number
			exec_count,	# func count
			$1,		# lock count
			func_name, 	# func name
			$3		# lock expr
	}
}
