-
Enhancement
-
Resolution: Fixed
-
P3
-
23
-
b12
-
ppc
PPC64 currently uses CodeEntryAlignment of 128 which wastes too much space. Especially after JDK-8322630. The beginning of an nmethod currently looks like this:
[Instructions begin]
;; N1181: # out( B1 ) <- BLOCK HEAD IS JUNK Freq: 1
0x00007fff7cbda880: nop ; {no_reloc}
0x00007fff7cbda884: nop
0x00007fff7cbda888: nop
0x00007fff7cbda88c: nop
0x00007fff7cbda890: nop
0x00007fff7cbda894: nop
0x00007fff7cbda898: nop
0x00007fff7cbda89c: nop
0x00007fff7cbda8a0: nop
0x00007fff7cbda8a4: nop
0x00007fff7cbda8a8: nop
0x00007fff7cbda8ac: nop
0x00007fff7cbda8b0: nop
0x00007fff7cbda8b4: nop
0x00007fff7cbda8b8: nop
0x00007fff7cbda8bc: nop
0x00007fff7cbda8c0: nop
0x00007fff7cbda8c4: nop
0x00007fff7cbda8c8: nop
0x00007fff7cbda8cc: nop
0x00007fff7cbda8d0: nop
0x00007fff7cbda8d4: nop
0x00007fff7cbda8d8: nop
0x00007fff7cbda8dc: nop
0x00007fff7cbda8e0: nop
0x00007fff7cbda8e4: nop
0x00007fff7cbda8e8: nop
0x00007fff7cbda8ec: nop
0x00007fff7cbda8f0: nop
[Entry Point]
# {method} {0x00007fff407064e8} 'bogus_test' '()V' in 'TestAlloc'
# [sp+0x90] (sp of caller)
0x00007fff7cbda8f4: lwz r11,8(r3)
0x00007fff7cbda8f8: ld r12,8(r19)
0x00007fff7cbda8fc: td 3,r11,r12 ;trap: ic miss check
[Verified Entry Point]
No other platform uses such a large CodeEntryAlignment. Going down to 64 doesn't seem to cause any performance regression. We can't go down further because Power 10 requires a multiple of 64 for prefixed instructions.
[Instructions begin]
;; N1181: # out( B1 ) <- BLOCK HEAD IS JUNK Freq: 1
0x00007fff7cbda880: nop ; {no_reloc}
0x00007fff7cbda884: nop
0x00007fff7cbda888: nop
0x00007fff7cbda88c: nop
0x00007fff7cbda890: nop
0x00007fff7cbda894: nop
0x00007fff7cbda898: nop
0x00007fff7cbda89c: nop
0x00007fff7cbda8a0: nop
0x00007fff7cbda8a4: nop
0x00007fff7cbda8a8: nop
0x00007fff7cbda8ac: nop
0x00007fff7cbda8b0: nop
0x00007fff7cbda8b4: nop
0x00007fff7cbda8b8: nop
0x00007fff7cbda8bc: nop
0x00007fff7cbda8c0: nop
0x00007fff7cbda8c4: nop
0x00007fff7cbda8c8: nop
0x00007fff7cbda8cc: nop
0x00007fff7cbda8d0: nop
0x00007fff7cbda8d4: nop
0x00007fff7cbda8d8: nop
0x00007fff7cbda8dc: nop
0x00007fff7cbda8e0: nop
0x00007fff7cbda8e4: nop
0x00007fff7cbda8e8: nop
0x00007fff7cbda8ec: nop
0x00007fff7cbda8f0: nop
[Entry Point]
# {method} {0x00007fff407064e8} 'bogus_test' '()V' in 'TestAlloc'
# [sp+0x90] (sp of caller)
0x00007fff7cbda8f4: lwz r11,8(r3)
0x00007fff7cbda8f8: ld r12,8(r19)
0x00007fff7cbda8fc: td 3,r11,r12 ;trap: ic miss check
[Verified Entry Point]
No other platform uses such a large CodeEntryAlignment. Going down to 64 doesn't seem to cause any performance regression. We can't go down further because Power 10 requires a multiple of 64 for prefixed instructions.
- relates to
-
JDK-8326571 CodeCache: harmonize CodeCacheSegmentSize and related parameters
-
- Open
-
-
JDK-8322630 Remove ICStubs and related safepoints
-
- Resolved
-