
たとえば、基本的にIO完了トラッキングポイントで/sys/kernel/debug/tracing/events/block/block_bio_complete
あるandがあるとします。これを使用すると、次の行を表示できます。block_rq_complete
ftrace
sudo blktrace -d /dev/sdb1 -o - | blkparse -i -
8,33 1 3 0.001086286 0 C RA 1158137880 + 8 [0]
^ IO completion action
これはC
IO完了イベントのドキュメントによるものですが、同じですか、block_bio_complete
それとも違うのですか?私が見ることができるソースコードを確認するhttps://elixir.bootlin.com/linux/v5.6/source/block/blk-core.c#L1441:
trace_block_rq_complete(req, blk_status_to_errno(error), nr_bytes);
そしてhttps://elixir.bootlin.com/linux/v5.6/source/block/bio.c#L1863:
trace_block_bio_complete(bio->bi_disk->queue, bio, blk_status_to_errno(bio->bi_status));
どちらのアクションですかC
?あるいは、実際にblktrace
別々のワークセットを使用して検索すると、異なるレポートメカニズムの使用方法がわかりftrace
ますが、blktrace
両方のメカニズムの各トレースポイントがカーネルソースにどのように関連しているかはわかりません。トラッキングポイントをソースコードにマッピングする簡単な方法はありますか?