[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240218055953.38903-1-xiaobing.li@samsung.com>
Date: Sun, 18 Feb 2024 13:59:53 +0800
From: Xiaobing Li <xiaobing.li@...sung.com>
To: xiaobing.li@...sung.com
Cc: axboe@...nel.dk, asml.silence@...il.com, linux-kernel@...r.kernel.org,
io-uring@...r.kernel.org, kun.dou@...sung.com, peiwei.li@...sung.com,
joshi.k@...sung.com, kundan.kumar@...sung.com, wenwen.chen@...sung.com,
ruyi.zhang@...sung.com
Subject: Re: [PATCH] liburing: add script for statistics sqpoll running
time.
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.
--
Xiaobing Li
Powered by blists - more mailing lists