Re: debuginfo for kernel [message #25911 is a reply to message #25872] |
Thu, 10 January 2008 18:39   |
amorsen
Messages: 10 Registered: June 2007
|
Junior Member |
|
|
I tried with gdb, but it is a bit difficult to figure out which bit in the assembly corresponds to which bit of the source code.
(gdb) disassemble dev_hard_start_xmit
Dump of assembler code for function dev_hard_start_xmit:
0xffffffff811e83a2 <dev_hard_start_xmit+0>: push %r13
0xffffffff811e83a4 <dev_hard_start_xmit+2>: push %r12
0xffffffff811e83a6 <dev_hard_start_xmit+4>: push %rbp
0xffffffff811e83a7 <dev_hard_start_xmit+5>: mov %rdi,%rbp
0xffffffff811e83aa <dev_hard_start_xmit+8>: push %rbx
0xffffffff811e83ab <dev_hard_start_xmit+9>: push %r13
0xffffffff811e83ad <dev_hard_start_xmit+11>: cmpq $0x0,(%rdi)
0xffffffff811e83b1 <dev_hard_start_xmit+15>: mov %rsi,%r13
0xffffffff811e83b4 <dev_hard_start_xmit+18>: jne 0xffffffff811e85ad <dev_hard_start_xmit+523>
0xffffffff811e83ba <dev_hard_start_xmit+24>: cmpq $0xffffffff8169b160,4926875(%rip) # 0xffffffff8169b160 <ptype_all>
0xffffffff811e83c5 <dev_hard_start_xmit+35>: je 0xffffffff811e84ed <dev_hard_start_xmit+331>
0xffffffff811e83cb <dev_hard_start_xmit+41>: cmpl $0x0,6474374(%rip) # 0xffffffff81814e58 <netstamp_needed>
0xffffffff811e83d2 <dev_hard_start_xmit+48>: je 0xffffffff811e83df <dev_hard_start_xmit+61>
0xffffffff811e83d4 <dev_hard_start_xmit+50>: callq 0xffffffff81045b0c <ktime_get_real>
0xffffffff811e83d9 <dev_hard_start_xmit+55>: mov %rax,0x18(%rbp)
0xffffffff811e83dd <dev_hard_start_xmit+59>: jmp 0xffffffff811e83e7 <dev_hard_start_xmit+69>
0xffffffff811e83df <dev_hard_start_xmit+61>: movq $0x0,0x18(%rdi)
0xffffffff811e83e7 <dev_hard_start_xmit+69>: mov 4926834(%rip),%rdx # 0xffffffff8169b160 <ptype_all>
0xffffffff811e83ee <dev_hard_start_xmit+76>: lea 0xffffffffffffffd0(%rdx),%r12
0xffffffff811e83f2 <dev_hard_start_xmit+80>: mov 0x30(%r12),%rax
0xffffffff811e83f7 <dev_hard_start_xmit+85>: prefetcht0 (%rax)
0xffffffff811e83fa <dev_hard_start_xmit+88>: cmp $0xffffffff8169b160,%rdx
0xffffffff811e8401 <dev_hard_start_xmit+95>: je 0xffffffff811e84ed <dev_hard_start_xmit+331>
[..]
I guess I will have to build the kernel myself. The problematic instruction is at dev_hard_start_xmit+80.
The performance problem is dropped packets when routing more than about 8000 packets/s.
|
|
|