[Mono-dev] Mono 2.4 on IA-64 SGI Altix 4700

Darryl Cain darryl at cain.com.au
Thu Oct 29 21:31:00 EDT 2009


Hi Zoltan,

Thanks for your reply.  I forgot to mention that the same behavior is
present with Mono 1.2.2 (already on the machine).  Is it possible that
this "bug" has existed since Mono 1.2.2?  Nobody at all has ever done
anything multi-threaded on an IA-64 box? That was what originally
biased me towards a configuration issue over a bug.

I shall post a bug report anyway though.

Thanks again,

Darryl

On Fri, Oct 30, 2009 at 11:11 AM, Zoltan Varga <vargaz at gmail.com> wrote:
> Hi,
>
>   This looks like a bug. File a bug report at bugzilla.novell.com and attach
> the test case.
>
>              Zoltan
>
> On Fri, Oct 30, 2009 at 1:59 AM, d-a-z-z-a <darryl at cain.com.au> wrote:
>>
>> Hi,
>>
>> I am trying to get Mono 2.4 running on a SGI Altix 4700 (96-way Itanium 2
>> box) running SUSE Linux Enterprise Server 10.  It compiles successfully
>> using default configuration settings however upon testing it fails at
>> simple
>> locking (n threads incrementing a shared counter produces race
>> conditions).
>> I have tried;
>>
>>  -> Changing "--with-tls" between both "__thread" and "pthread"
>>  -> Changing CFLAGS, CCASFLAGS, CXXFLAGS and FFLAGS to exclude
>> optimizations (removed -O2)
>>  -> Altering versions of glib (between glib-2.16.5 and glib-2.20.5) -
>> there
>> is a gthread dependence but I am not sure how that impacts matters.
>>
>> Unfortunately none of the above made any difference.  Is anybody out there
>> running Mono on anything similar hardware wise (IA-64 at least)?  Any
>> ideas?
>> Any help would be greatly appreciated.
>>
>> It should be noted that this all works fine on a 8-way AMD64 box with the
>> test program producing correct results (to exclude test program as a
>> possible problem).
>>
>> Some more details:
>>  Using: glib-2.20.5, libunwind-0.99, gcc version 4.1.2 20070115 (SUSE
>> Linux)
>>
>> Test App "core" (C#) - n threads executing Worker() followed by join:
>>
>> public static void Worker()
>> {
>>  int steps = increments / n_threads;
>>  for (int i = 0; i < steps; i++)
>>  {
>>    lock (shared_lock)
>>    {
>>       shared_counter++;
>>    }
>>  }
>> }
>>
>> Test App results:
>>
>> user at host:~/code/tests> mono SharedCounter.exe 1000000 10
>> 1000000 increments over 10 threads
>> Counter value: 999023
>>
>> user at host:~/code/tests> mono SharedCounter.exe 1000000 10
>> 1000000 increments over 10 threads
>> Counter value: 999087
>>
>> user at host:~/code/tests> mono SharedCounter.exe 1000000 10
>> 1000000 increments over 10 threads
>> Counter value: 999211
>>
>> user at host:~/code/tests> mono SharedCounter.exe 1000000 10
>> 1000000 increments over 10 threads
>> Counter value: 999219
>>
>> Please let me know if you need any additional information. Thanks in
>> advance,
>>
>> Darryl
>> --
>> View this message in context:
>> http://www.nabble.com/Mono-2.4-on-IA-64-SGI-Altix-4700-tp26123445p26123445.html
>> Sent from the Mono - Dev mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> Mono-devel-list mailing list
>> Mono-devel-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>


More information about the Mono-devel-list mailing list