ftrace와 blktrace 추적점의 차이점은 무엇입니까?

ftrace와 blktrace 추적점의 차이점은 무엇입니까?

예를 들어 기본적으로 IO 완료 추적 지점인 /sys/kernel/debug/tracing/events/block/block_bio_completeand가 있다고 생각합니다 . 이를 사용하면 다음과 같은 줄을 볼 수 있습니다.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두 메커니즘의 각 추적점이 커널 소스와 어떻게 관련되는지 알 수 없습니다. 추적 지점을 소스 코드에 매핑하는 쉬운 방법이 있습니까?

관련 정보