public inbox for [email protected]
 help / color / mirror / Atom feed
* [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

* 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