[Bug 92] threading is broken (most visible on SMP)

[email protected] Sun, 20 Mar 2005 22:54:47 -0500
Newsgroups gmane.comp.java.vm.sablevm.bugs
Message-ID <[email protected]>
http://sablevm.org/bugs/show_bug.cgi?id=92





------- Additional Comments From [email protected]  2005-03-20 22:54 -------
I realized when debugging my own spmt code that any time you have a word
guarding other parts of memory, you need a memory barrier before you write to
it.  The single-value replacement idea depends on an specific ordering of writes.

For example, in preparation sequences, the GOTO is replaced at the very end. 
But what happens if the actual GOTO write is made visible to other processors
*before* the other writes that the word guards?  This might happen for one
reason or another on an SMP machine.  It means the instruction (I observed it
for LDC_STRING) can read unprepared values from the code array.

I think this is may be a problem in several places.

If you guys can think of any other examples where the value of a word implies
some particular value / safety property / data type of other words, it is likely
that a memory barrier is needed.

I'll test out the trunk with the examples that make SMP crash.

Chris



------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
You are the QA contact for the bug, or are watching the QA contact.