저는 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에 문제가 있습니다.