* [PATCH] liburing: add script for statistics sqpoll running time [not found] <CGME20240206024828epcas5p2119e961d13e6c9fb6ea114c7aca4bf3d@epcas5p2.samsung.com> @ 2024-02-06 2:40 ` Xiaobing Li [not found] ` <CGME20240218055959epcas5p2ac436be88fecd625f072c78ff77610ef@epcas5p2.samsung.com> 0 siblings, 1 reply; 3+ messages in thread From: Xiaobing Li @ 2024-02-06 2:40 UTC (permalink / raw) To: axboe, asml.silence Cc: linux-kernel, io-uring, kun.dou, peiwei.li, joshi.k, kundan.kumar, wenwen.chen, ruyi.zhang, cliang01.li, xue01.he, Xiaobing Li Count the running time and actual IO processing time of the sqpoll thread, and output the statistical time to terminal. --- The test results are as follows: PID WorkTime(us) TotalTime(us) COMMAND 1188923 1528823 1817846 iou-sqp-1188916 1188920 1539703 1833793 iou-sqp-1188917 1188921 1544210 1847887 iou-sqp-1188918 1188922 1561503 1857846 iou-sqp-1188919 Signed-off-by: Xiaobing Li <[email protected]> --- test/sqtimeshow.sh | 61 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 test/sqtimeshow.sh 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 -- 2.34.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
[parent not found: <CGME20240218055959epcas5p2ac436be88fecd625f072c78ff77610ef@epcas5p2.samsung.com>]
* Re: [PATCH] liburing: add script for statistics sqpoll running time. [not found] ` <CGME20240218055959epcas5p2ac436be88fecd625f072c78ff77610ef@epcas5p2.samsung.com> @ 2024-02-18 5:59 ` Xiaobing Li 2024-02-18 13:00 ` Jens Axboe 0 siblings, 1 reply; 3+ messages in thread From: Xiaobing Li @ 2024-02-18 5:59 UTC (permalink / raw) To: xiaobing.li Cc: axboe, asml.silence, linux-kernel, io-uring, kun.dou, peiwei.li, joshi.k, kundan.kumar, wenwen.chen, ruyi.zhang 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 ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] liburing: add script for statistics sqpoll running time. 2024-02-18 5:59 ` Xiaobing Li @ 2024-02-18 13:00 ` Jens Axboe 0 siblings, 0 replies; 3+ messages in thread From: Jens Axboe @ 2024-02-18 13:00 UTC (permalink / raw) To: Xiaobing Li Cc: asml.silence, linux-kernel, io-uring, kun.dou, peiwei.li, joshi.k, kundan.kumar, wenwen.chen, ruyi.zhang 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 ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-02-18 13:00 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <CGME20240206024828epcas5p2119e961d13e6c9fb6ea114c7aca4bf3d@epcas5p2.samsung.com> 2024-02-06 2:40 ` [PATCH] liburing: add script for statistics sqpoll running time Xiaobing Li [not found] ` <CGME20240218055959epcas5p2ac436be88fecd625f072c78ff77610ef@epcas5p2.samsung.com> 2024-02-18 5:59 ` Xiaobing Li 2024-02-18 13:00 ` Jens Axboe
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox