lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240206024014.11412-1-xiaobing.li@samsung.com>
Date: Tue,  6 Feb 2024 10:40:14 +0800
From: Xiaobing Li <xiaobing.li@...sung.com>
To: axboe@...nel.dk, asml.silence@...il.com
Cc: 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,
	cliang01.li@...sung.com, xue01.he@...sung.com, Xiaobing Li
	<xiaobing.li@...sung.com>
Subject: [PATCH] liburing: add script for statistics sqpoll running time

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 <xiaobing.li@...sung.com>
---
 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


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ