On 2/17/24 10:59 PM, Xiaobing Li wrote: > On 2/6/24 10:40 AM, Xiaobing Li wrote: >> diff --git a/test/sqtimeshow.sh b/test/sqtimeshow.sh >> new file mode 100644 >> index 0000000..e85fd2f >> --- /dev/null >> +++ b/test/sqtimeshow.sh >> @@ -0,0 +1,61 @@ >> +#!/usr/bin/env bash >> + >> +UPLINE=$(tput cuu1) >> + >> +function set_header() { >> + printf "\033[47;30m%-15s %-15s %-15s %-15s \033[0m\n" PID WorkTime\(us\) TotalTime\(us\) COMMAND >> +} >> + >> +function get_time() { >> + pid=$1 >> + item=$2 >> + proc_file="/proc/$pid/fdinfo/6" >> + if [ ! -e $proc_file ]; then >> + return >> + fi >> + content=$(cat ${proc_file} | grep ${item} | awk -F" " '{print $2}') >> + echo ${content%us} >> +} >> + >> +function show_util() { >> + index=0 >> + while true >> + do >> + data=$(top -H -b -n 1 | grep iou-sqp) >> + if [ -z "${data}" ]; then >> + echo "no sq thread is running." >> + exit >> + fi >> + index=0 >> + num=$(echo $data | tr -cd R |wc -c) >> + arr=($data) >> + len=$((${#arr[@]} / ${num})) >> + i=0 >> + while [ ${i} -lt ${num} ] >> + do >> + pid=${arr[${i} * ${len}]} >> + name=${arr[${i} * ${len} + len - 1]} >> + work_time=$(get_time $pid "SqWorkTime") >> + total_time=$(get_time $pid "SqTotalTime") >> + printf "%-15s %-15s %-15s %-15s\n" ${pid} ${work_time} ${total_time} ${name} >> + ((i++)) >> + done >> + sleep 2 >> + update=$UPLINE >> + for j in $(seq 1 ${num}); do >> + update=$update$UPLINE >> + done >> + if [ ! -z "$(top -H -b -n 1 | grep iou-sqp)" ]; then >> + echo "$update" >> + fi >> + done >> +} >> + >> +function main() { >> + # set header >> + set_header >> + # show util >> + show_util >> +} >> + >> +main > > Hi, Jens and Pavel > This patch is to add a script that displays the statistics of the > sqpoll thread to the terminal. No objections to this one, but it will not get applied until the kernel side is sorted out. -- Jens Axboe