/sys/kernel/debug/tracing/events/rcu/rcu_utilization 下打开对应的 event trace 开关后有收集到以下信息:
ktimersoftd/3-44 [003] d...1.. 3441.221232: rcu_utilization: Start context switch
ktimersoftd/3-44 [003] d...1.. 3441.221233: rcu_utilization: End context switch
ktimersoftd/3-44 [003] ....2.. 3441.221233: rcu_utilization: Start context switch
ktimersoftd/3-44 [003] ....2.. 3441.221233: rcu_utilization: End context switch
<idle>-0 [003] .N..2.. 3441.222172: rcu_utilization: Start context switch
<idle>-0 [003] .N..2.. 3441.222173: rcu_utilization: End context switch
cu_pr_gtpu-4883 [003] d..h1.. 3441.222178: rcu_utilization: Start scheduler-tick
cu_pr_gtpu-4883 [003] d..h1.. 3441.222178: rcu_utilization: End scheduler-tick
cu_pr_gtpu-4883 [003] ....2.. 3441.222187: rcu_utilization: Start context switch
sh-4.2# ls
enable filter format id
sh-4.2# pwd
/sys/kernel/debug/tracing/events/rcu/rcu_utilization
在上述目录下查看 format 内容格式,然后往过滤器中设置字符串,但提示错误如下:
sh-4.2# cat format
name: rcu_utilization
ID: 219
format:
field:unsigned short common_type; offset:0; size:2; signed:0;
field:unsigned char common_flags; offset:2; size:1; signed:0;
field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
field:int common_pid; offset:4; size:4; signed:1;
field:unsigned short common_migrate_disable; offset:8; size:2; signed:0;
field:unsigned short common_padding; offset:10; size:2; signed:0;
field:const char * s; offset:16; size:8; signed:0;
print fmt: "%s", REC->s
sh-4.2#echo "s == End context switch" > filter
sh: echo: write error: Invalid argument
sh-4.2# cat filter
s == End context switch
^
parse_error: Illegal integer value