MENU

Fun & Interesting

HotSpot JVM Deep Dive - Safepoint

Java 12,783 3 years ago
Video Not Working? Fix It Now

JavaOne is back! ➱ https://oracle.com/javaone A safepoint is a global JVM state where the Java world is stopped. It is therefore safe, as in exclusive access, to inspect and process by the JVM. This concept is central to many runtimes providing some form of Automatic Memory Management. Markus Grönlund (https://twitter.com/marchaos) from Oracle's Java Platform Group presents, in this HotSpot Deep Dive video, how safepoints are implemented in the HotSpot Java Virtual Machine (JVM). He also introduces some related JVM concepts and structures. ⎯⎯⎯⎯⎯⎯ Errata ⎯⎯⎯⎯⎯ 19:38 The description of how the VMThread removes edges in the state machine by arming the poll pages for threads is missing the directed edge [blocked_transition, VM]. In the graph, it is represented as an undirected edge, which made the cut challenging to depict accurately. 26:48 The assembly listing for the callee method getSuccessor(I, I) is taken from a research branch and does not accurately reflect the code residing in mainline. The mainline code looks like this: mov dword ptr [rsp-9000h],eax push rbp // frame push sub rsp,30h add edx,r8d // add first and second parameter mov rax,rdx // return value add rsp,30h pop rbp // frame pop cmp rsp,qword ptr [r15+128h] // poll word test ja 00000237`c8cccc7c ret ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ More information ➱ https://openjdk.org/ More content from Markus ➱ https://inside.java/u/MarkusGronlund/ Tags: #Java #OpenJDK #HotSpot #JVM

Comment