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

Reply via email to