~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/zh_CN/accounting/taskstats.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/translations/zh_CN/accounting/taskstats.rst (Version linux-6.12-rc7) and /Documentation/translations/zh_CN/accounting/taskstats.rst (Version linux-5.16.20)


  1 .. include:: ../disclaimer-zh_CN.rst              
  2                                                   
  3 :Original: Documentation/accounting/taskstats.    
  4                                                   
  5 :Translator: Yang Yang <yang.yang29@zte.com.cn>    
  6                                                   
  7 ================                                  
  8 每任务的统计接口                          
  9 ================                                  
 10                                                   
 11 Taskstats是一个基于netlink的接口,用    
 12 统计信息。                                   
 13                                                   
 14 Taskstats设计目的:                          
 15                                                   
 16 - 在任务生命周期内和退出时高效    
 17 - 统一不同计数子系统的接口            
 18 - 支持未来计数系统的扩展               
 19                                                   
 20 术语                                            
 21 ----                                              
 22                                                   
 23 “pid”、“tid”、“任务”互换使    
 24 Linux任务。“每pid的统计数据”等    
 25                                                   
 26 “tgid”、“进程”、“线程组”互    
 27 也就是传统的Unix进程。尽管使用了    
 28 对它的处理也没有什么不同。只要    
 29 活着。                                         
 30                                                   
 31 用法                                            
 32 ----                                              
 33                                                   
 34 为了在任务生命周期内获得统计信    
 35 (NETLINK_GENERIC族)然后发送指定pid    
 36 任务的统计信息(若指定了pid)或    
 37                                                   
 38 为了在任务退出时获取统计信息,    
 39 cpu掩码内的cpu上有任务退出时,每p    
 40 cpu掩码可以限制一个监听者收到的    
 41 将进行更详细的解释。                    
 42                                                   
 43 如果正在退出的任务是线程组中最    
 44 记录也将发送给用户空间。后者包    
 45 信息总和。                                   
 46                                                   
 47 getdelays.c是一个简单的示例,用以    
 48 用户可注册cpu掩码、发送命令和处    
 49 写入文件、通过增大接收缓冲区进    
 50                                                   
 51 接口                                            
 52 ----                                              
 53                                                   
 54 内核用户接口封装在include/linux/tasks    
 55                                                   
 56 为避免本文档随着接口的演进而过    
 57 不一致时,以taskstats.h为准。            
 58                                                   
 59 struct taskstats是每pid和每tgid数据共    
 60 计数子系统时进行扩展。taskstats.h    
 61                                                   
 62 用户、内核空间的数据交换是属于N    
 63 接口。消息格式如下::                     
 64                                                   
 65     +----------+- - -+-------------+----------    
 66     | nlmsghdr | Pad |  genlmsghdr | taskstats    
 67     +----------+- - -+-------------+----------    
 68                                                   
 69 Taskstats载荷有三种类型:                 
 70                                                   
 71 1. 命令:由用户发送给内核。获取    
 72 TASKSTATS_CMD_ATTR_PID/TGID的属性,该属    
 73 pid/tgid指示用户空间要统计的任务/    
 74                                                   
 75 注册/注销获取指定cpu集上退出数据    
 76 TASKSTATS_CMD_ATTR_REGISTER/DEREGISTER_CPUMASK    
 77 cpu掩码是以ascii码表示,用逗号分    
 78 退出数据,cpu掩码表示为"1-3,5,7-8"    
 79 的cpu集,随着时间的推移,内核会    
 80 执行注销。                                   
 81                                                   
 82 2. 命令的应答:内核发出应答用户    
 83                                                   
 84 a) TASKSTATS_TYPE_AGGR_PID/TGID: 本属性    
 85 的pig/tgid。                                    
 86                                                   
 87 b) TASKSTATS_TYPE_PID/TGID:本属性的载    
 88                                                   
 89 c) TASKSTATS_TYPE_STATS:本属性的载荷    
 90 每tgid统计信息共用该结构体。          
 91                                                   
 92 3. 内核会在任务退出时发送新消息    
 93                                                   
 94 a) TASKSTATS_TYPE_AGGR_PID:指示其后两    
 95 b) TASKSTATS_TYPE_PID:包含退出任务的p    
 96 c) TASKSTATS_TYPE_STATS:包含退出任务    
 97 d) TASKSTATS_TYPE_AGGR_TGID:指示其后两    
 98 e) TASKSTATS_TYPE_TGID:包含任务所属进    
 99 f) TASKSTATS_TYPE_STATS:包含退出任务    
100                                                   
101 每tgid的统计                                  
102 ------------                                      
103                                                   
104 除了每任务的统计信息,taskstats还    
105 粒度完成,并且仅在用户空间聚合    
106                                                   
107 然而,除了每任务统计信息,在内    
108 为解决此问题,taskstats代码将退出    
109 当进程最后一个任务退出时,累积    
110                                                   
111 当用户查询每tgid数据时,内核将指    
112 该线程组的累积总数(含之前退出    
113                                                   
114 扩展taskstats                                   
115 -------------                                     
116                                                   
117 有两种方法可在未来修改内核扩展t    
118                                                   
119 1. 在现有struct taskstats末尾增加字段    
120 用户空间将仅使用与其版本对应的    
121                                                   
122 2. 定义单独的统计结构体并使用netl    
123 处理每个netlink属性,所以总是可以    
124                                                   
125 在1.和2.之间进行选择,属于权衡灵    
126 首选方法,因为内核和用户空间无    
127 扩展现有结构体,导致不同的用户    
128 字段并不感兴趣,那么2.是值得的    
129                                                   
130 Taskstats的流量控制                          
131 -------------------                               
132                                                   
133 当退出任务数速率变大,监听者可    
134 数据丢失。taskstats结构体变大、cpu    
135                                                   
136 为避免统计信息丢失,用户空间应    
137                                                   
138 - 增大监听者用于接收退出数据的ne    
139                                                   
140 - 创建更多的监听者,减少每个监    
141   一个监听者。用户还可考虑将监    
142   仅监听一个cpu。                           
143                                                   
144 尽管采取了这些措施,若用户空间    
145 则应采取其他措施处理数据丢失。     
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php