dtrace で特定の関数が呼ばれた時のコールスタックを取得 ― 2017年10月04日 21時04分47秒
swp_pager_meta_build がいつ呼ばれるか興味があったので、久しぶりに dtrace を使ってみることにした。stack と言う関数がある。
カーネル内では関数ポインタを設定して、あちこちに飛ぶことも多いので一部のコールスタックは、見た目程明らかではない。この出力は、11-STABLE で、11.1-RELEASE とは既にかなり異なっている。
# dtrace -n 'fbt::swp_pager_meta_build:entry{ stack() }'
dtrace: description 'fbt::swp_pager_meta_build:entry' matched 1 probe
dtrace: buffer size lowered to 6m
0 20744 swp_pager_meta_build:entry
kernel`swap_pager_putpages+0x266
kernel`vm_pageout_cluster+0x4e4
kernel`vm_pageout_laundry_worker+0x9c0
kernel`fork_exit+0x6a
kernel`0xc10a1b20
しかし、若干これらの関数を覗いてみたところ、一部が抜けているように見える。これから、動作を探りながら dtrace の実験もしてみたい。
最近のコメント