|
Quick Lists
|
|
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
|
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |