Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 4827353
Votes 0
Synopsis atomic::membar doesn't on x86
Category hotspot:runtime_system
Reported Against mantis-beta
Release Fixed 1.4.1_07, 1.4.2(mantis-b19) (Bug ID:2065985) , 1.5(tiger-b03) (Bug ID:2065986)
State 10-Fix Delivered, bug
Priority: 1-Very High
Related Bugs 4829040 , 4844565
Submit Date 05-MAR-2003
Description
There are three problems with x86 membar:

1) It's a no-op on win32

2) Linux uses sfence, instead of mfence, doing only store barriers

3) Solaris x86 claims to do a mfence, but uses the sfence encoding!

This is a critical flaw. There is a reproducable VM crash on win32,
and the solx86/linux bug could easily result in random VM crashes.
Work Around
Never use a machine with more than one cpu.
Evaluation
Crash is reproducable on win32. Its a bug.

There is some risk that the fix will have an effect on performance, but
the only other choice is to give the wrong answer or crash. 

  xxxxx@xxxxx   2003-03-04

------------------------------------

Fix for mantis:

1. change i486 assembler to emit the correct opcode
2. Win32 and Linux atomic::membar() use locked-add as memory barriers.

  xxxxx@xxxxx   2003-03-07


Fix for 1.4.1_06:
1. change i486 assembler to emit the correct opcode
2. Win32 atomic::membar() use locked-add as memory barriers, for linux it is not applicable.

  xxxxx@xxxxx   2003-09-16
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang