【发布时间】:2017-01-09 22:56:43
【问题描述】:
我试图了解 Linux 块层中 [blk_account_io_completion][1] 的开销。使用perf annotate 我得到以下sn-p(删节)。有人能解释一下为什么add 和test 指令与它们一起执行的相邻指令相比具有这样的开销吗?
: part_stat_add(cpu, part, sectors[rw], bytes >> 9);
0.13 : ffffffff813336eb: movsxd r8,r8d
0.00 : ffffffff813336ee: lea rdx,[rax*8+0x0]
0.00 : ffffffff813336f6: mov rcx,QWORD PTR [rdi+0x210]
72.04 : ffffffff813336fd: add rcx,QWORD PTR [r8*8-0x7e2df6a0]
0.22 : ffffffff81333705: add QWORD PTR [rcx+rdx*1],rsi
0.61 : ffffffff81333709: mov eax,DWORD PTR [rdi+0x1f4]
26.52 : ffffffff8133370f: test eax,eax
0.00 : ffffffff81333711: je ffffffff81333733 <blk_account_io_completion+0x83>
【问题讨论】:
标签: linux linux-kernel profiling perf