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!

[1085 byte] By [quasiquotea] at [2008-1-10]
# 1
This is a rather involved topic. Send me some email and I'll try to get you started in the right direction. dice at east dot sun dot com.
davedicea at 2007-7-14 > top of java,Java HotSpot Virtual Machine,HotSpot Internals...