私はftraceを学んでいますが、次のリンクで "function_profile_enabled"ファイルを使用して関数プロファイリングを有効にできることを学びました。
mount -t tracefs nodev /sys/kernel/tracing
cd /sys/kernel/tracing
echo 1 > function_profile_enabled
echo "function" > current_tracer
https://www.kernel.org/doc/html/v4.18/trace/ftrace.html
上記のリンクは、この情報がTrace_stats / function(function0、function1..)にあることを示しています。
$ ls trace_stat/function*
trace_stat/function0 trace_stat/function15 trace_stat/function21 trace_stat/function28 trace_stat/function6
trace_stat/function1 trace_stat/function16 trace_stat/function22 trace_stat/function29 trace_stat/function7
trace_stat/function10 trace_stat/function17 trace_stat/function23 trace_stat/function3 trace_stat/function8
trace_stat/function11 trace_stat/function18 trace_stat/function24 trace_stat/function30 trace_stat/function9
trace_stat/function12 trace_stat/function19 trace_stat/function25 trace_stat/function31
trace_stat/function13 trace_stat/function2 trace_stat/function26 trace_stat/function4
trace_stat/function14 trace_stat/function20 trace_stat/function27 trace_stat/function5
root tracing
私のUbuntu VMには4つのコアしかありません。
$ grep -c ^processor /proc/cpuinfo
4
Trace_statフォルダ内のfunction<>ファイルの実際の意味を誰が説明できますか?
答え1
これらのファイルは "for_each_possible_cpu()" ループを通じて生成されます。何らかの理由で、カーネルはシステムに32個のCPUが有効になっていると思います。この問題を引き起こす特定のBIOSに問題があります。