ftraceとblktraceトラッキングポイントの違いは何ですか?

ftraceとblktraceトラッキングポイントの違いは何ですか?

たとえば、基本的にIO完了トラッキングポイントで/sys/kernel/debug/tracing/events/block/block_bio_completeあるandがあるとします。これを使用すると、次の行を表示できます。block_rq_completeftracesudo blktrace -d /dev/sdb1 -o - | blkparse -i -

  8,33   1        3     0.001086286     0  C  RA 1158137880 + 8 [0]
                                           ^ IO completion action

これはCIO完了イベントのドキュメントによるものですが、同じですか、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両方のメカニズムの各トレースポイントがカーネルソースにどのように関連しているかはわかりません。トラッキングポイントをソースコードにマッピングする簡単な方法はありますか?

ベストアンサー1

おすすめ記事