help on instruction scheduling of hotspot jvm

David Holmes David.Holmes at oracle.com
Sun Sep 12 16:14:29 PDT 2010


ddmetro said the following on 09/13/10 08:14:
> I am working on multithreaded instruction scheduling on hotspot jvm. I have
> built the source code, however I have the following doubts:
> 
> 1. I tried to look into instruction scheduling pass of Hotspot, but couldn't
> find any paper related to the same. Can you please direct me towards a paper
> that talks about instruction scheduling and thread scheduling in hotspot
> jvm.

Don't know about instruction scheduling (which is a compiler issue) but 
thread scheduling is basically done using the OS default scheduling 
mechanism. There are some settings you can adjust to change this, and 
you can do things externally (ie run the JVM in particular scheduling 
class) but they are not recommended and need to be used with extreme 
care. Dave Dice has some blog articles on this:

http://blogs.sun.com/dave/entry/java_thread_priority_revisted_in

> 2. I executed an applet using the j2sdk image's appletviewer. However, I am
> not able to get the starting point (main() method) for the same. Kindly
> provide the starting point.

Applets don't have a main() method. Applets are executed by a framework 
and it is the framework that has the main() method. You'd have to look 
at the AppletViewer class in this case.

> 3. I am assuming that the instruction scheduling will be done by the server
> side hotspot jvm and not the compiler (C2). Kindly confirm if my
> understanding is correct.

The Hotspot "server" VM is the Hotspot VM configured to run the C2 
compiler. (The "client" VM runs the C1 compiler). Any instruction 
scheduling would be done by the compiler, but questions on this are 
better addressed to hotspot-compiler-dev - cc'ed.

> Also, I tried to search for documentation that maps the different
> phases(instruction scheduling, register allocation, etc) with the source
> code classes. However I wasn't able to find one. Kindly direct me to such
> documentation, if one exists.

There is not a lot of documentation for hotspot internals in general. 
Again the compiler folk may be able to point you to documents or blog
entries that discuss this.

HTH

David Holmes

> Thanking You,
> -Dhiraj.


More information about the hotspot-compiler-dev mailing list