Documentation/accounting/delay-accounting.rst: add thrashing page cache and direct...
authorwangyong <wang.yong12@zte.com.cn>
Thu, 20 Jan 2022 02:10:12 +0000 (18:10 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 20 Jan 2022 06:52:55 +0000 (08:52 +0200)
Add thrashing page cache and direct compact related descriptions and
update the usage of getdelays userspace utility.

The following patches modifications have been updated:
https://lore.kernel.org/all/20190312102002.31737-4-jinpuwang@gmail.com/
https://lore.kernel.org/all/1638619795-71451-1-git-send-email-
wang.yong12@zte.com.cn/

Link: https://lkml.kernel.org/r/1639583021-92977-1-git-send-email-wang.yong12@zte.com.cn
Signed-off-by: wangyong <wang.yong12@zte.com.cn>
Reviewed-by: Yang Yang <yang.yang29@zte.com.cn>
Reported-by: Zeal Robot <zealci@zte.com.cn>
Cc: Balbir Singh <bsingharora@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Documentation/accounting/delay-accounting.rst

index 1b8b46d..197fe31 100644 (file)
@@ -13,6 +13,8 @@ a) waiting for a CPU (while being runnable)
 b) completion of synchronous block I/O initiated by the task
 c) swapping in pages
 d) memory reclaim
+e) thrashing page cache
+f) direct compact
 
 and makes these statistics available to userspace through
 the taskstats interface.
@@ -41,11 +43,12 @@ generic data structure to userspace corresponding to per-pid and per-tgid
 statistics. The delay accounting functionality populates specific fields of
 this structure. See
 
-     include/linux/taskstats.h
+     include/uapi/linux/taskstats.h
 
 for a description of the fields pertaining to delay accounting.
 It will generally be in the form of counters returning the cumulative
-delay seen for cpu, sync block I/O, swapin, memory reclaim etc.
+delay seen for cpu, sync block I/O, swapin, memory reclaim, thrash page
+cache, direct compact etc.
 
 Taking the difference of two successive readings of a given
 counter (say cpu_delay_total) for a task will give the delay
@@ -88,41 +91,37 @@ seen.
 
 General format of the getdelays command::
 
-       getdelays [-t tgid] [-p pid] [-c cmd...]
-
+       getdelays [-dilv] [-t tgid] [-p pid]
 
 Get delays, since system boot, for pid 10::
 
-       # ./getdelays -p 10
+       # ./getdelays -d -p 10
        (output similar to next case)
 
 Get sum of delays, since system boot, for all pids with tgid 5::
 
-       # ./getdelays -t 5
-
-
-       CPU     count   real total      virtual total   delay total
-               7876    92005750        100000000       24001500
-       IO      count   delay total
-               0       0
-       SWAP    count   delay total
-               0       0
-       RECLAIM count   delay total
-               0       0
+       # ./getdelays -d -t 5
+       print delayacct stats ON
+       TGID    5
 
-Get delays seen in executing a given simple command::
 
-  # ./getdelays -c ls /
+       CPU             count     real total  virtual total    delay total  delay average
+                           8        7000000        6872122        3382277          0.423ms
+       IO              count    delay total  delay average
+                           0              0              0ms
+       SWAP            count    delay total  delay average
+                           0              0              0ms
+       RECLAIM         count    delay total  delay average
+                           0              0              0ms
+       THRASHING       count    delay total  delay average
+                           0              0              0ms
+       COMPACT         count    delay total  delay average
+                           0              0              0ms
 
-  bin   data1  data3  data5  dev  home  media  opt   root  srv        sys  usr
-  boot  data2  data4  data6  etc  lib   mnt    proc  sbin  subdomain  tmp  var
+Get IO accounting for pid 1, it works only with -p::
 
+       # ./getdelays -i -p 1
+       printing IO accounting
+       linuxrc: read=65536, write=0, cancelled_write=0
 
-  CPU  count   real total      virtual total   delay total
-       6       4000250         4000000         0
-  IO   count   delay total
-       0       0
-  SWAP count   delay total
-       0       0
-  RECLAIM      count   delay total
-       0       0
+The above command can be used with -v to get more debug information.