aren't mfence/sfence instructions only really useful in SMP systems where visibility of load/stores with respect to other CPUs is required?<br><br><div class="gmail_quote">On Sat, Jul 2, 2011 at 2:38 PM, Mikael Pettersson <span dir="ltr"><<a href="mailto:mikpe@it.uu.se">mikpe@it.uu.se</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div></div><div class="h5">sgm writes:<br>
 > On Sat, Jul 2, 2011 at 6:52 AM, Mikael Pettersson <<a href="mailto:mikpe@it.uu.se">mikpe@it.uu.se</a>> wrote:<br>
 > > sgm writes:<br>
 > >  > We have a field data collection application recently re-written to use<br>
 > >  > CouchDB. It requires minimal computer resources, so a number of the<br>
 > >  > notebooks we use are circa 2001/2002. All run Windows XP with SP2 or<br>
 > >  > SP3, and we are using CouchDB 1.1.<br>
 > >  ><br>
 > >  > On the older machines, Erlang R14B02 and R14B03 crash almost<br>
 > >  > immediately upon running werl or erl. R14B01 does not.<br>
 > >  ><br>
 > >  > I'm attaching a screenshot of the crash on one of the machines. In all<br>
 > >  > cases it happens at the same point, almost immediately, is 100%<br>
 > >  > reproducible, and no crash dump is generated.<br>
 > >  ><br>
 > >  > Here are the machines where it crashes:<br>
 > >  ><br>
 > >  > Dell Inspiron 2500, 1.0GHz Pentium III, 160MB RAM, system summary<br>
 > >  > rctc11.txt attached<br>
 > >  > Dell Inspiron 2600, 1.06GHz Celeron, 128MB RAM, system summary<br>
 > >  > rctc12.txt attached<br>
 > >  > Gateway Solo 9300, 750MHz Pentium III, 160MB RAM, system summary<br>
 > >  > rctc16.txt attached<br>
 > >  ><br>
 > >  > For comparison, I'm also including this machine of similar vintage<br>
 > >  > which does NOT crash:<br>
 > >  ><br>
 > >  > Dell Inspiron 2650, 1.7GHz Pentium 4, 256MB RAM, system summary<br>
 > >  > rctc13.txt attached<br>
 > ><br>
 > > You need to rebuild the Erlang VM with the --enable-ethread-pre-pentium4-compatibility<br>
 > > option.<br>
 > ><br>
 > > This is a big ugly bug in the Erlang VM.<br>
 > ><br>
 ><br>
 > Thanks Mikael, I suspected it was a CPU-related issue. You say it's a<br>
 > bug, but the documented option implies it's intentional. Are you<br>
 > suggesting the VM should detect the CPU at startup and load the<br>
 > appropriate library?<br>
<br>
</div></div>The bug is that the default is unsafe.  It would have been far better<br>
to maintain compatibility by default, but offer an opt-in option for<br>
enabling higher performance.<br>
<br>
It's not a matter of selecting the right version of some small library,<br>
the option affects micro-optimized instruction sequences for synchronization,<br>
which are visible to and potentially inlined in many parts of the VM.<br>
<div><div></div><div class="h5">_______________________________________________<br>
erlang-bugs mailing list<br>
<a href="mailto:erlang-bugs@erlang.org">erlang-bugs@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-bugs" target="_blank">http://erlang.org/mailman/listinfo/erlang-bugs</a><br>
</div></div></blockquote></div><br>