Thread: Re: [Sablevm-developer] Implementing Deadlock Exceptions for SableVM
Brought to you by:
egagnon
From: Fancong Z. <fz...@cs...> - 2004-04-20 19:56:59
|
> On Tue, Apr 20, 2004 at 10:58:25AM -0400, Fancong Zeng wrote: > > Hi, > > > > I just read your Ph.D. thesis. I like your extension of thin locks. > > Note that the deflation part of Onodera's algorithm could still be > implemented, and also that when releasing a thin lock that was under > contention, while it's not _necessary_ to inflate it, in some > cases it is faster. So, there are still some neat things to be done, > but as to how they affect performance, you'd need a pretty > lock-intensive program to see the benefits. They recently have some idea called "lock reservation" for Java locks. The idea is in OOPSLA'02 and ECOOP'04. > > I am now looking into the SableVM system and I hope SableVM has > > the following features: > > > > 1) Being able to run large real-life sever programs. E.g., Tomcat. > > 2) Supporting true parallelism. This requires kernel-level preemptive > > thread scheduling and SMP support --- I noticed a note about flaws in SMP, > > possible to improve the SMP support? > > You should read Doug Lea's JSR-133 cookbook, for a discussion of how > compiler and VM developers can implement fixes for the Java Memory > Model, which is currently broken. These things affect all VM's. > > http://gee.cs.oswego.edu/dl/jmm/cookbook.html I haven't read the cookbook. Will read it soon. I read some papers by Bill Pugh on JMM. > I put StoreLoad barriers in the right places for x86-PO architectures, > and some inline assembly is required for the others. AFAIK, SableVM > doesn't treat Java volatiles explicitly, and the easiest / most > efficient solution I can see is to use our Soot compiler framework to > either supply attributes to SableVM telling it where barriers are > needed, or to insert dummy method calls that are recognized by SableVM > at runtime and turned into SableVM-specific barrier instructions > during code preparation. I haven't heard Etienne comment on these > ideas about volatiles though. I like the idea of using SOOT to add attributes to bytecode, and making the JVM exploit the attributes at runtime. In general, this is a promising direction of integrating static and dynamic analyses. > After this, I don't think there will be _too_ many problems with > multiprocessors. There have been / still are issues with respect to > thread initialization, but I have run several different > multithreaded benchmarks on an SMP machine (mtrt, and most of the Java > Grande Forum threaded benchmarks). The best is if you try it out for > yourself with the applications you're interested in. I would be more itnersted in running some server programs like Muffine, Tomcat, etc. > > 3) Accomodating JIT compilers seamlessly. I have some ideas to have > > a JIT generate recovery code, and I expect to see the JIT > > compilers to be incorporated to (the public version of) SableVM. > > > > Any comments/information on the three issues I list above? > > > > That's it for what I know :) I should mention that when we do find > problems with the implementation and decide on a solution, it's > typically a very small amount of code that must be changed; the > structure is clean and the right hooks are in place. Also Subversion > is a joy to work with ;) When will you release SAbleJIT to public? Within 3 months? > Cheers, > Chris > Best, Fancong |
From: Fancong Z. <fz...@cs...> - 2004-04-21 20:16:51
|
> > > I put StoreLoad barriers in the right places for x86-PO architectures, > > > and some inline assembly is required for the others. AFAIK, SableVM > > > doesn't treat Java volatiles explicitly, and the easiest / most > > > efficient solution I can see is to use our Soot compiler framework to > > > either supply attributes to SableVM telling it where barriers are > > > needed, or to insert dummy method calls that are recognized by SableVM > > > at runtime and turned into SableVM-specific barrier instructions > > > during code preparation. I haven't heard Etienne comment on these > > > ideas about volatiles though. > > > > I like the idea of using SOOT to add attributes to bytecode, and making > > the > > JVM exploit the attributes at runtime. In general, this is a promising > > direction of integrating static and dynamic analyses. > > You might want to look at Feng Qian's work in our lab on array bounds > check elimination in JikesRVM. I'm using Soot myself for a > speculative multithreading project in SableVM. > > http://www.sable.mcgill.ca I read many papers of you guys. Actually I am considering using SOOT in my current work for Java Deadlocks. If I have questions in using SOOT, can I trouble you guys (maybe via personal communications or another mailing list)? > > > After this, I don't think there will be _too_ many problems with > > > multiprocessors. There have been / still are issues with respect to > > > thread initialization, but I have run several different > > > multithreaded benchmarks on an SMP machine (mtrt, and most of the Java > > > Grande Forum threaded benchmarks). The best is if you try it out for > > > yourself with the applications you're interested in. > > > > I would be more itnersted in running some server programs like Muffine, > > Tomcat, etc. > > I don't know anything about these programs. The best thing is just to > try them. SableVM is now relatively painless to install. > > > > > 3) Accomodating JIT compilers seamlessly. I have some ideas to have > > > > a JIT generate recovery code, and I expect to see the JIT > > > > compilers to be incorporated to (the public version of) SableVM. > > > > > > > > Any comments/information on the three issues I list above? > > > > > > > > > > That's it for what I know :) I should mention that when we do find > > > problems with the implementation and decide on a solution, it's > > > typically a very small amount of code that must be changed; the > > > structure is clean and the right hooks are in place. Also Subversion > > > is a joy to work with ;) > > > > When will you release SAbleJIT to public? Within 3 months? > > I'll let David field that one :) I hope to see SABLEJIT soon. Fancong |
From: David <db...@cs...> - 2004-04-22 04:08:06
|
On Wed, Apr 21, 2004 at 04:16:36PM -0400, Fancong Zeng wrote: > > > >=20 > > > > That's it for what I know :) I should mention that when we do fin= d > > > > problems with the implementation and decide on a solution, it's > > > > typically a very small amount of code that must be changed; the > > > > structure is clean and the right hooks are in place. Also Subver= sion > > > > is a joy to work with ;) > > >=20 > > > When will you release SAbleJIT to public? Within 3 months? > >=20 > > I'll let David field that one :) >=20 > I hope to see SABLEJIT soon. >=20 > Fancong=20 >=20 Hi, I am receiving only half the discussion (only emails from Fancong) on this thread. Either their is some delay on the mailing list or people or not CCing it... To address the question on SableJIT, there is currently a development version in the subversion repository. I am currently working on making it easier to build. There could be a release some time soon, I would say within the next few weeks. It will still be a development/testing version but it would be usable. David --- David B=E9langer Graduate Student School of Computer Science McGill University Office: MC226 Web page: http://www.cs.mcgill.ca/~dbelan2/ Public key: http://www.cs.mcgill.ca/~dbelan2/public_key.txt |