Re: [Sablevm-developer] Threading support in SableVM
Brought to you by:
egagnon
From: Etienne G. <gag...@uq...> - 2004-02-20 03:11:05
|
Hi All, First, I'll be away for a little over 2 weeks, so don't expect any reply from me. See comments below. Chris Pickett wrote: > ... > For the Pentium 4, Intel Xeon, and P6 family processors, if the area of > memory being locked during a LOCK operation is cached in the processor > that is performing the LOCK operation as write-back memory and is > completely contained in a cache line, the processor may not assert the > LOCK# signal on the bus.... > ... > So that means it looks like the problem is elsewhere (e.g. writes to > "xxx.flag" that Etienne mentioned). ... Hmmm... I'm not convinced. Have you actually read the JVM spec for JMM (memory model)? Acquiring a thin lock should cause all UNRELATED memory content to be gotten from main memory after the lock, and unlocking should do the reverse. SableVM does not do any of this currently. It's not a problem on uniprocessors, but I expect this to be quite a problem on MPs. My language, here, is quite fuzzy; it would be best explained in terms of "read/write" barriers, yet I have to find a "reliable" definition of "barriers" which would be consistent across MPs. Etienne -- Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |