2019-11-01から1ヶ月間の記事一覧

BPF_PROG_TYPE_RAW_TRACEPOINT (raw tracepoint) について

BPFのプログラムタイプの一つにBPF_PROG_TYPE_RAW_TRACEPOINTがあります (commit).これを利用するとtracepointの変換前の引数にアクセスすることができます. 例としてkernel/sched/core.cで定義されるsched_swtich のtracepointを考えます. trace_sched_s…

BPFプログラムからカーネル内のデータ構造にアクセスする方法

kprobeやtracepointなどにアタッチしたBPFプログラムは,BPF_FUNC_probe_read()関数でカーネル内のデータ構造にアクセスすることができます.これはprobe_kernel_read()のラッパーで,もし変な領域にアクセスしようした場合(page faultが発生した場合)は-E…