Understanding the implementation of synchronization in Hotspot
I am a graduate student looking into alternative synchronization implementations for the Hotspot JVM. I am perusing the source code for Java 1.4, in particular for Solaris and the SPARC ISA. Thus far I have found the following files that deal with locking and monitors:
hotspot/src/os/solaris/vm/:
os_solaris.cpp
mutex_solaris.cpp
hotspot/src/cpu/sparc/vm:
stubGenerator_sparc.cpp
assembler_sparc.cpp
I am not sure if these are the only files related to thread synchornization though.
I have looked in this forum as well as some of Sun's online documentation, but I have not found anything that describes how all the internal synchronization pieces fit together (high-level description or source code-based descriptions), or how it relates to the programmer-level primitives (such as Java synchronized methods).
I would really appreciate any information regarding how the synchronization is implemented in Hotspot, as well as how some of the optimizations (for example lock elision) is implemented in Hotspot.
Thanks!

