#!/bin/bash ## Chipset flushing quality script for freedesktop bug 26345, 27187 ## @author legolas558 function show_ratio() { local SUPPRESSED=0 for N in $(dmesg | grep -F "callbacks suppressed"| awk '{ print $4 }'); do let SUPPRESSED+=N || return $? done local FAILURES=$(( $(dmesg|grep -F "flush failed" | wc -l) + SUPPRESSED )) local FLUSHES=$(dmesg|grep -F "chipset flush no" | tail -n1 | awk -F"[.,]" '{ print $3 }') if [ -z "$FLUSHES" ]; then FLUSHES=0 fi echo "$FAILURES / $FLUSHES" ## display the most relevant max retries count lines echo "max retries:" dmesg | grep -F "max retries" | awk '{ printf "%s\t%s\n", substr($2, 1, length($2)-1), $NF }' | sort -n -u --key=2 } ## loop mode - who wants more hacks? if [[ "$1" == "-l" ]]; then while [ true ]; do clear show_ratio usleep 50000 done else show_ratio fi