Skip to content

Instantly share code, notes, and snippets.

@franz1981
Created July 19, 2023 14:35
Show Gist options
  • Save franz1981/26e36ae5d176e9df43f2c856fcec54ea to your computer and use it in GitHub Desktop.
Save franz1981/26e36ae5d176e9df43f2c856fcec54ea to your computer and use it in GitHub Desktop.
Hottest code regions (>10.00% "cycles" events):
....[Hottest Region 1]..............................................................................
c2, level 4, java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile, version 767 (0 bytes)
0x00007fdf24a22f4e: add %rcx,%rsi
0x00007fdf24a22f51: mov (%rsi,%r11,1),%r11
0x00007fdf24a22f55: cmp %r11,%rax
╭ 0x00007fdf24a22f58: jne 0x00007fdf24a22f7b ;*invokevirtual putLongVolatile {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile@27 (line 154)
│↗ 0x00007fdf24a22f5a: mov 0x20(%r9),%r11 ;*getfield fieldOffset {reexecute=0 rethrow=0 return_oop=0}
││ ; - java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile@23 (line 154)
││ 0x00007fdf24a22f5e: mov %r10,(%rdx,%r11,1)
││ 0x00007fdf24a22f62: lock addl $0x0,-0x40(%rsp) ;*invokevirtual putLongVolatile {reexecute=0 rethrow=0 return_oop=0}
││ ; - java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile@27 (line 154)
46.60% ││ 0x00007fdf24a22f68: add $0x30,%rsp
││ 0x00007fdf24a22f6c: pop %rbp
││ 0x00007fdf24a22f6d: cmp 0x378(%r15),%rsp ; {poll_return}
││ 0x00007fdf24a22f74: ja 0x00007fdf24a2300c
││ 0x00007fdf24a22f7a: ret
↘│ 0x00007fdf24a22f7b: cmp $0x20,%r8d
│ 0x00007fdf24a22f7f: jne 0x00007fdf24a22fa2
│ 0x00007fdf24a22f81: cmp %rax,%rsi
╰ 0x00007fdf24a22f84: je 0x00007fdf24a22f5a
0x00007fdf24a22f86: mov 0x28(%rsi),%rdi
....................................................................................................
46.60% <total for region 1>
....[Hottest Regions]...............................................................................
46.60% c2, level 4 java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile, version 767 (0 bytes)
6.24% c2, level 4 red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub, version 791 (0 bytes)
6.24% c2, level 4 red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub, version 791 (32 bytes)
5.96% c2, level 4 java.lang.invoke.LambdaForm$DMH.0x000000080102d400::invokeStatic, version 765 (56 bytes)
5.83% c2, level 4 java.lang.invoke.LambdaForm$MH.0x0000000801080000::invoke, version 764 (12 bytes)
4.72% c2, level 4 java.lang.invoke.LambdaForm$MH.0x0000000801080000::invoke, version 764 (0 bytes)
4.30% Unknown, level 0 java.lang.invoke.MethodHandle::invokeBasic, version 740 (15 bytes)
3.88% c2, level 4 java.lang.invoke.LambdaForm$MH.0x0000000801080000::invoke, version 764 (31 bytes)
3.74% c2, level 4 java.lang.invoke.LambdaForm$DMH.0x000000080102d000::invokeStatic, version 766 (10 bytes)
2.50% c2, level 4 sun.invoke.util.ValueConversions::intToLong, version 759 (41 bytes)
2.22% <unknown> (0 bytes)
2.22% Unknown, level 0 java.lang.invoke.MethodHandle::invokeBasic, version 737 (14 bytes)
0.55% [kernel.kallsyms] finish_task_switch.isra.0 (0 bytes)
0.55% [kernel.kallsyms] _raw_spin_unlock (0 bytes)
0.42% Unknown, level 0 java.lang.invoke.MethodHandle::invokeBasic, version 731 (8 bytes)
0.42% c2, level 4 java.lang.invoke.LambdaForm$DMH.0x000000080102d000::invokeStatic, version 766 (0 bytes)
0.28% [kernel.kallsyms] exit_to_user_mode_prepare (0 bytes)
0.14% [kernel.kallsyms] get_signal (0 bytes)
0.14% [kernel.kallsyms] task_numa_fault (0 bytes)
0.14% [kernel.kallsyms] cpuacct_charge (0 bytes)
2.77% <...other 20 warm regions...>
....................................................................................................
99.86% <totals>
....[Hottest Methods (after inlining)]..............................................................
46.74% c2, level 4 java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile, version 767
14.42% c2, level 4 java.lang.invoke.LambdaForm$MH.0x0000000801080000::invoke, version 764
12.48% c2, level 4 red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub, version 791
5.96% c2, level 4 java.lang.invoke.LambdaForm$DMH.0x000000080102d400::invokeStatic, version 765
4.30% Unknown, level 0 java.lang.invoke.MethodHandle::invokeBasic, version 740
4.16% c2, level 4 java.lang.invoke.LambdaForm$DMH.0x000000080102d000::invokeStatic, version 766
2.50% c2, level 4 sun.invoke.util.ValueConversions::intToLong, version 759
2.22% Unknown, level 0 java.lang.invoke.MethodHandle::invokeBasic, version 737
2.22% <unknown>
0.55% [kernel.kallsyms] finish_task_switch.isra.0
0.55% [kernel.kallsyms] _raw_spin_unlock
0.42% Unknown, level 0 java.lang.invoke.MethodHandle::invokeBasic, version 731
0.28% [kernel.kallsyms] exit_to_user_mode_prepare
0.14% [kernel.kallsyms] file_has_perm
0.14% Unknown, level 0 java.lang.invoke.MethodHandle::linkToStatic, version 730
0.14% interpreter return entry points
0.14% [kernel.kallsyms] detach_if_pending
0.14% [kernel.kallsyms] _raw_spin_lock_irq
0.14% [kernel.kallsyms] task_numa_fault
0.14% amdgpu.ko.xz amdgpu_ih_decode_iv_helper
2.08% <...other 15 warm methods...>
....................................................................................................
99.86% <totals>
....[Distribution by Source]........................................................................
86.27% c2, level 4
7.07% Unknown, level 0
2.91% [kernel.kallsyms]
2.22%
0.69% libjvm.so
0.28% interpreter
0.14% perf-39424.map
0.14% amdgpu.ko.xz
0.14% libc.so.6
....................................................................................................
99.86% <totals>
WARNING: The perf event count is suspiciously low (721). The performance data might be
inaccurate or misleading. Try to do the profiling again, or tune up the sampling frequency.
With some profilers on Mac OS X, System Integrity Protection (SIP) may prevent profiling.
In such case, temporarily disabling SIP with 'csrutil disable' might help.
PrintAssembly processed: 192296 total address lines.
Perf output processed (skipped 5.370 seconds):
Column 1: cycles (953 events)
Hottest code regions (>10.00% "cycles" events):
....[Hottest Region 1]..............................................................................
c2, level 4, java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile, version 769 (46 bytes)
; - java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile@-1 (line 153)
0x00007fdbd8a22b9a: mov %rcx,%r10
0x00007fdbd8a22b9d: mov %rsi,%r9
0x00007fdbd8a22ba0: mov 0x8(%rsi),%r11d ; implicit exception: dispatches to 0x00007fdbd8a22c54
0x00007fdbd8a22ba4: cmp $0x24e558,%r11d ; {metadata(&apos;java/lang/invoke/VarHandleLongs$FieldInstanceReadWrite&apos;)}
0x00007fdbd8a22bab: jne 0x00007fdbd8a22c3c ;*checkcast {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile@1 (line 153)
0x00007fdbd8a22bb1: mov 0x1c(%r9),%ebp ;*getfield receiverType {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile@11 (line 154)
0x00007fdbd8a22bb5: mov 0x10(%r12,%rbp,8),%rax ; implicit exception: dispatches to 0x00007fdbd8a22c68
0.10% 0x00007fdbd8a22bba: mov 0x14(%rax),%r8d ; implicit exception: dispatches to 0x00007fdbd8a22c22
0.10% 0x00007fdbd8a22bbe: mov 0x8(%rdx),%ecx ; implicit exception: dispatches to 0x00007fdbd8a22c78
0x00007fdbd8a22bc1: movslq %r8d,%r11
0x00007fdbd8a22bc4: movabs $0x800000000,%rsi
0x00007fdbd8a22bce: add %rcx,%rsi
0x00007fdbd8a22bd1: mov (%rsi,%r11,1),%r11
0.10% 0x00007fdbd8a22bd5: cmp %r11,%rax
╭ 0x00007fdbd8a22bd8: jne 0x00007fdbd8a22bfb ;*invokevirtual putLongVolatile {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile@27 (line 154)
│↗ 0x00007fdbd8a22bda: mov 0x20(%r9),%r11 ;*getfield fieldOffset {reexecute=0 rethrow=0 return_oop=0}
││ ; - java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile@23 (line 154)
││ 0x00007fdbd8a22bde: mov %r10,(%rdx,%r11,1)
││ 0x00007fdbd8a22be2: lock addl $0x0,-0x40(%rsp) ;*invokevirtual putLongVolatile {reexecute=0 rethrow=0 return_oop=0}
││ ; - java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile@27 (line 154)
39.35% ││ 0x00007fdbd8a22be8: add $0x30,%rsp
││ 0x00007fdbd8a22bec: pop %rbp
││ 0x00007fdbd8a22bed: cmp 0x378(%r15),%rsp ; {poll_return}
││ 0x00007fdbd8a22bf4: ja 0x00007fdbd8a22c8c
││ 0x00007fdbd8a22bfa: ret
↘│ 0x00007fdbd8a22bfb: cmp $0x20,%r8d
│ 0x00007fdbd8a22bff: jne 0x00007fdbd8a22c22
│ 0x00007fdbd8a22c01: cmp %rax,%rsi
╰ 0x00007fdbd8a22c04: je 0x00007fdbd8a22bda
0x00007fdbd8a22c06: mov 0x28(%rsi),%rdi
....................................................................................................
39.66% <total for region 1>
....[Hottest Region 2]..............................................................................
c2, level 4, red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub, version 792 (114 bytes)
0x00007fdbd8a26604: pop %rbp
0x00007fdbd8a26605: cmp 0x378(%r15),%rsp ; {poll_return}
0x00007fdbd8a2660c: ja 0x00007fdbd8a2691c
0x00007fdbd8a26612: ret
0x00007fdbd8a26613: nopl 0x0(%rax)
0x00007fdbd8a2661a: nopw 0x0(%rax,%rax,1)
0x00007fdbd8a26620: lea (%r12,%r8,8),%rsi ;*invokevirtual asType {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.VarHandleGuards::guard_LI_V@110 (line 127)
; - red.hat.puzzles.concurrent.StoreOps::vhSetVolatile@20 (line 70)
; - red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub@15 (line 190)
0.10% 0x00007fdbd8a26624: mov %r9,0x30(%rsp)
0x00007fdbd8a26629: mov %r11,0x40(%rsp)
5.35% 0x00007fdbd8a2662e: movabs $0x45d5f6a50,%rdx ; {oop(a &apos;java/lang/invoke/VarHandleLongs$FieldInstanceReadWrite&apos;{0x000000045d5f6a50})}
0x00007fdbd8a26638: mov %r11,%rcx
0x00007fdbd8a2663b: mov $0xd,%r8d
0.31% 0x00007fdbd8a26641: xchg %ax,%ax
0x00007fdbd8a26643: call 0x00007fdbd827af00 ; ImmutableOopMap {[48]=Oop [56]=Oop [64]=Oop }
;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.VarHandleGuards::guard_LI_V@119 (line 127)
; - red.hat.puzzles.concurrent.StoreOps::vhSetVolatile@20 (line 70)
; - red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub@15 (line 190)
; {optimized virtual_call}
0x00007fdbd8a26648: mov 0x30(%rsp),%r9
0.10% 0x00007fdbd8a2664d: movzbl 0x94(%r9),%r11d ;*ifeq {reexecute=0 rethrow=0 return_oop=0}
; - red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub@28 (line 192)
0.21% 0x00007fdbd8a26655: mov 0x380(%r15),%r10
0x00007fdbd8a2665c: add $0x1,%rbp ; ImmutableOopMap {r9=Oop [56]=Oop [64]=Oop }
;*ifeq {reexecute=1 rethrow=0 return_oop=0}
; - (reexecute) red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub@28 (line 192)
0.10% 0x00007fdbd8a26660: test %eax,(%r10) ; {poll}
0x00007fdbd8a26663: test %r11d,%r11d
0x00007fdbd8a26666: jne 0x00007fdbd8a265db ;*aload_1 {reexecute=0 rethrow=0 return_oop=0}
; - red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub@31 (line 193)
0x00007fdbd8a2666c: mov 0x40(%rsp),%r11
5.67% 0x00007fdbd8a26671: mov 0xc(%r11),%r10d ;*getfield linger {reexecute=0 rethrow=0 return_oop=0}
; - red.hat.puzzles.concurrent.StoreOps::vhSetVolatile@1 (line 66)
; - red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub@15 (line 190)
0.21% 0x00007fdbd8a26675: test %r10d,%r10d
0x00007fdbd8a26678: jg 0x00007fdbd8a26775 ;*ifle {reexecute=0 rethrow=0 return_oop=0}
; - red.hat.puzzles.concurrent.StoreOps::vhSetVolatile@6 (line 67)
; - red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub@15 (line 190)
0x00007fdbd8a2667e: movabs $0x45d60a930,%r10 ; {oop(a &apos;java/lang/invoke/DirectMethodHandle&apos;{0x000000045d60a930})}
0x00007fdbd8a26688: mov 0x18(%r10),%r8d ;*getfield asTypeCache {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.MethodHandle::asTypeCached@1 (line 874)
; - java.lang.invoke.MethodHandle::asType@12 (line 866)
; - java.lang.invoke.VarHandleGuards::guard_LI_V@110 (line 127)
; - red.hat.puzzles.concurrent.StoreOps::vhSetVolatile@20 (line 70)
; - red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub@15 (line 190)
0.31% 0x00007fdbd8a2668c: test %r8d,%r8d
0x00007fdbd8a2668f: je 0x00007fdbd8a266b8 ;*ifnull {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.MethodHandle::asTypeCached@6 (line 875)
; - java.lang.invoke.MethodHandle::asType@12 (line 866)
; - java.lang.invoke.VarHandleGuards::guard_LI_V@110 (line 127)
; - red.hat.puzzles.concurrent.StoreOps::vhSetVolatile@20 (line 70)
; - red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub@15 (line 190)
0x00007fdbd8a26691: mov 0x10(%r12,%r8,8),%r10d ;*getfield type {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.MethodHandle::asTypeCached@11 (line 875)
; - java.lang.invoke.MethodHandle::asType@12 (line 866)
; - java.lang.invoke.VarHandleGuards::guard_LI_V@110 (line 127)
; - red.hat.puzzles.concurrent.StoreOps::vhSetVolatile@20 (line 70)
; - red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub@15 (line 190)
0.10% 0x00007fdbd8a26696: cmp $0x8bac0d1b,%r10d ; {oop(a &apos;java/lang/invoke/MethodType&apos;{0x000000045d6068d8} = (Ljava/lang/invoke/VarHandle;Lred/hat/puzzles/concurrent/StoreOps;I)V)}
0x00007fdbd8a2669d: je 0x00007fdbd8a26620 ;*if_acmpne {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.MethodHandle::asTypeCached@14 (line 875)
; - java.lang.invoke.MethodHandle::asType@12 (line 866)
; - java.lang.invoke.VarHandleGuards::guard_LI_V@110 (line 127)
; - red.hat.puzzles.concurrent.StoreOps::vhSetVolatile@20 (line 70)
....................................................................................................
12.49% <total for region 2>
....[Hottest Regions]...............................................................................
39.66% c2, level 4 java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile, version 769 (46 bytes)
12.49% c2, level 4 red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub, version 792 (114 bytes)
5.88% c2, level 4 java.lang.invoke.LambdaForm$MH.0x0000000801080000::invoke, version 765 (20 bytes)
5.14% [kernel.kallsyms] finish_task_switch.isra.0 (6 bytes)
4.93% c2, level 4 java.lang.invoke.LambdaForm$DMH.0x000000080102d000::invokeStatic, version 768 (76 bytes)
4.09% Unknown, level 0 java.lang.invoke.MethodHandle::invokeBasic, version 742 (25 bytes)
3.57% c2, level 4 java.lang.invoke.LambdaForm$DMH.0x000000080102d400::invokeStatic, version 766 (76 bytes)
3.15% Unknown, level 0 java.lang.invoke.MethodHandle::invokeBasic, version 738 (25 bytes)
2.20% c2, level 4 java.lang.invoke.LambdaForm$MH.0x0000000801080000::invoke, version 765 (12 bytes)
2.10% [kernel.kallsyms] finish_task_switch.isra.0 (0 bytes)
1.68% <unknown> (0 bytes)
1.68% c2, level 4 sun.invoke.util.ValueConversions::intToLong, version 767 (41 bytes)
1.47% c2, level 4 java.lang.invoke.LambdaForm$MH.0x0000000801080000::invoke, version 765 (10 bytes)
1.26% [kernel.kallsyms] __schedule (26 bytes)
0.94% Unknown, level 0 java.lang.invoke.MethodHandle::invokeBasic, version 732 (25 bytes)
0.84% [kernel.kallsyms] schedule (0 bytes)
0.84% [kernel.kallsyms] _raw_spin_unlock (2 bytes)
0.73% [kernel.kallsyms] _raw_spin_lock_irqsave (0 bytes)
0.73% c2, level 4 java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile, version 769 (5 bytes)
0.31% [kernel.kallsyms] mm_update_next_owner (22 bytes)
6.19% <...other 55 warm regions...>
....................................................................................................
99.90% <totals>
....[Hottest Methods (after inlining)]..............................................................
40.40% c2, level 4 java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite::setVolatile, version 769
12.49% c2, level 4 red.hat.puzzles.concurrent.jmh_generated.StoreOps_vhSetVolatile_jmhTest::vhSetVolatile_avgt_jmhStub, version 792
9.55% c2, level 4 java.lang.invoke.LambdaForm$MH.0x0000000801080000::invoke, version 765
7.24% [kernel.kallsyms] finish_task_switch.isra.0
4.93% c2, level 4 java.lang.invoke.LambdaForm$DMH.0x000000080102d000::invokeStatic, version 768
4.09% Unknown, level 0 java.lang.invoke.MethodHandle::invokeBasic, version 742
3.57% c2, level 4 java.lang.invoke.LambdaForm$DMH.0x000000080102d400::invokeStatic, version 766
3.15% Unknown, level 0 java.lang.invoke.MethodHandle::invokeBasic, version 738
2.20% <unknown>
1.68% c2, level 4 sun.invoke.util.ValueConversions::intToLong, version 767
1.26% [kernel.kallsyms] __schedule
0.94% Unknown, level 0 java.lang.invoke.MethodHandle::invokeBasic, version 732
0.84% [kernel.kallsyms] schedule
0.84% [kernel.kallsyms] _raw_spin_unlock
0.73% [kernel.kallsyms] _raw_spin_lock_irqsave
0.31% [kernel.kallsyms] mm_update_next_owner
0.21% [kernel.kallsyms] selinux_file_permission
0.21% Unknown, level 0 java.lang.invoke.MethodHandle::linkToStatic, version 729
0.21% libc.so.6 __futex_abstimed_wait_common
0.21% [kernel.kallsyms] entry_SYSCALL_64_safe_stack
4.83% <...other 46 warm methods...>
....................................................................................................
99.90% <totals>
....[Distribution by Source]........................................................................
72.72% c2, level 4
14.59% [kernel.kallsyms]
8.39% Unknown, level 0
2.20%
0.94% libc.so.6
0.84% libjvm.so
0.10% hsdis-amd64.so
0.10% interpreter
....................................................................................................
99.90% <totals>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment