Andi Kleen a écrit :
My vmlinux has
ffffffff80278382 <pfn_to_page>:
ffffffff80278382: 8b 0d 78 ea 41 00 mov 4319864(%rip),%ecx #
ffffffff80696e00 <memnode_shift>
ffffffff80278388: 48 89 f8 mov %rdi,%rax
ffffffff8027838b: 48 c1 e0 0c shl $0xc,%rax
ffffffff8027838f: 48 d3 e8 shr %cl,%rax
ffffffff80278392: 48 0f b6 80 00 5e 69 movzbq
0xffffffff80695e00(%rax),%rax
ffffffff80278399: 80
ffffffff8027839a: 48 8b 14 c5 40 93 71 mov 0xffffffff80719340(,%rax,8),%rdx
ffffffff802783a1: 80
ffffffff802783a2: 48 2b ba 40 36 00 00 sub 0x3640(%rdx),%rdi
ffffffff802783a9: 48 6b c7 38 imul $0x38,%rdi,%rax
ffffffff802783ad: 48 03 82 30 36 00 00 add 0x3630(%rdx),%rax
ffffffff802783b4: c3 retq
and
ffffffff802783b5 <page_to_pfn>:
ffffffff802783b5: 48 8b 07 mov (%rdi),%rax
ffffffff802783b8: 48 c1 e8 38 shr $0x38,%rax
ffffffff802783bc: 48 8b 14 c5 80 97 71 mov
0xffffffff80719780(,%rax,8),%rdx
ffffffff802783c3: 80
ffffffff802783c4: 48 b8 b7 6d db b6 6d mov $0x6db6db6db6db6db7,%rax
ffffffff802783cb: db b6 6d
ffffffff802783ce: 48 2b ba 20 03 00 00 sub 0x320(%rdx),%rdi
ffffffff802783d5: 48 c1 ff 03 sar $0x3,%rdi
ffffffff802783d9: 48 0f af f8 imul %rax,%rdi
ffffffff802783dd: 48 03 ba 28 03 00 00 add 0x328(%rdx),%rdi
ffffffff802783e4: 48 89 f8 mov %rdi,%rax
ffffffff802783e7: c3 retq
Here my oprofiles numbers on a real server (dual cpus)
vendor_id : AuthenticAMD
cpu family : 15
model : 5
model name : AMD Opteron(tm) Processor 246
stepping : 8
cpu MHz : 1992.339
gcc-4.0.2 chose to emit shifts in pfn_to_page() which seems a bad choice (high
profiles), and imul in page_to_pfn()... strange isnt it ?
ffffffff8011db70 <pfn_to_page>: /* pfn_to_page total: 487244 0.8036 */
18501 0.0305 :ffffffff8011db70: mov 2965994(%rip),%ecx #
<memnode_shift>
83312 0.1374 :ffffffff8011db76: mov %rdi,%rax
2 3.3e-06 :ffffffff8011db79: push %rbp
:ffffffff8011db7a: shl $0xc,%rax
21880 0.0361 :ffffffff8011db7e: mov %rsp,%rbp
601 9.9e-04 :ffffffff8011db81: shr %cl,%rax
:ffffffff8011db84: movzbq 0xffffffff803f0d60(%rax),%rax
56462 0.0931 :ffffffff8011db8c: mov 0xffffffff804264e0(,%rax,8),%rcx
26 4.3e-05 :ffffffff8011db94: mov %rdi,%rax
1 1.6e-06 :ffffffff8011db97: sub 0x3340(%rcx),%rax
164872 0.2719 :ffffffff8011db9e: lea 0x0(,%rax,8),%rdx
43 7.1e-05 :ffffffff8011dba6: shl $0x6,%rax
:ffffffff8011dbaa: sub %rdx,%rax
73574 0.1214 :ffffffff8011dbad: add 0x3330(%rcx),%rax
38 6.3e-05 :ffffffff8011dbb4: leaveq
67932 0.1120 :ffffffff8011dbb5: retq
ffffffff8011dbc0 <page_to_pfn>: /* page_to_pfn total: 9190 0.0152 */
825 0.0014 :ffffffff8011dbc0: push %rbp
2134 0.0035 :ffffffff8011dbc1: mov (%rdi),%rax
:ffffffff8011dbc4: mov %rsp,%rbp
4 6.6e-06 :ffffffff8011dbc7: shr $0x38,%rax
1558 0.0026 :ffffffff8011dbcb: mov 0xffffffff80426920(,%rax,8),%rdx
26 4.3e-05 :ffffffff8011dbd3: mov $0x6db6db6db6db6db7,%rax
9 1.5e-05 :ffffffff8011dbdd: sub 0x260(%rdx),%rdi
435 7.2e-04 :ffffffff8011dbe4: sar $0x3,%rdi
3 4.9e-06 :ffffffff8011dbe8: imul %rax,%rdi
2001 0.0033 :ffffffff8011dbec: add 0x268(%rdx),%rdi
50 8.2e-05 :ffffffff8011dbf3: leaveq
2095 0.0035 :ffffffff8011dbf4: mov %rdi,%rax
50 8.2e-05 :ffffffff8011dbf7: retq
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html