[Mono-dev] HEADS UP: Linear IR branch merge

Zoltan Varga vargaz at gmail.com
Sun Jul 27 09:43:22 EDT 2008


Hi,

  Does this happen with latest mono SVN HEAD ? If so, what is the output of
mono --version ?

          Zoltan

On Sun, Jul 27, 2008 at 12:30 PM, Cedric Vivier <cedricv at neonux.com> wrote:
> Hi Zoltan,
>
> It has probably been already reported (though I cannot find it in the
> bugzilla) but there is a crash with the new JIT when starting Tomboy
> and other applications using NDesk.Dbus (latest stable versions of
> both).
>
> Stacktrace:
>  at (wrapper managed-to-native)
> System.Reflection.MonoMethod.InternalInvoke
> (object,object[],System.Exception&) <0x00004>
>  at (wrapper managed-to-native)
> System.Reflection.MonoMethod.InternalInvoke
> (object,object[],System.Exception&) <0xffffffff>
>  at System.Reflection.MonoMethod.Invoke
> (object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo)
> <0x0008e>
>  at System.Reflection.MethodBase.Invoke (object,object[]) <0x0001c>
>  at System.Reflection.Emit.DynamicMethod.Invoke
> (object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo)
> <0x00050>
>  at System.Reflection.MethodBase.Invoke (object,object[]) <0x0001c>
>  at NDesk.DBus.MessageWriter.WriteValueType (object,System.Type) <0x0005f>
>  at NDesk.DBus.Message.GetHeaderData () <0x0009d>
>  at NDesk.DBus.Connection.WriteMessage (NDesk.DBus.Message) <0x00019>
>  at NDesk.DBus.Connection.SendWithReply (NDesk.DBus.Message) <0x0006f>
>  at NDesk.DBus.Connection.SendWithReplyAndBlock (NDesk.DBus.Message) <0x0000d>
>  at NDesk.DBus.BusObject.SendMethodCall
> (string,string,string,NDesk.DBus.MessageWriter,System.Type,System.Exception&)
> <0x00100>
>  at IBusProxy.Hello () <0x0004a>
>  at NDesk.DBus.Bus.Register () <0x0001d>
>  at NDesk.DBus.Bus..ctor (string) <0x0002e>
>  at NDesk.DBus.Bus.Open (string) <0x00051>
>  at NDesk.DBus.Bus.get_System () <0x0004c>
>  at NDesk.DBus.BusG.Init () <0x00012>
>  at Tomboy.RemoteControlProxy.Register (Tomboy.NoteManager) <0x0000a>
>  at Tomboy.Tomboy.RegisterRemoteControl (Tomboy.NoteManager) <0x00015>
>  at Tomboy.Tomboy.Main (string[]) <0x000f5>
>  at (wrapper runtime-invoke)
> Tomboy.Tomboy.runtime_invoke_void_string[]
> (object,intptr,intptr,intptr) <0xffffffff>
>
> Native stacktrace:
>        mono [0x806e178]
> Cannot access memory at address 0x23
>
> Debug info from gdb:
> Thread 1 (Thread 0xb7d3f960 (LWP 25863)):
> #0  0xffffe424 in __kernel_vsyscall ()
> #1  0xb7e54807 in syscall () from /lib/tls/i686/cmov/libc.so.6
> #2  0x0806e212 in mono_handle_native_sigsegv (signal=11,
> ctx=0xb7c0ed0c) at mini-exceptions.c:1294
> #3  0x080872a0 in mono_arch_handle_altstack_exception
> (sigctx=0xb7c0ed0c, fault_addr=0x27, stack_ovf=0) at
> exceptions-x86.c:855
> #4  <signal handler called>
> #5  mono_method_to_ir2 (cfg=0xa13d600, method=0xa15d8b0,
> start_bblock=0xa148314, end_bblock=0xa1483ac, return_var=0x0,
> dont_inline=0xa15dd00,
>    inline_args=0x0, inline_offset=0, is_virtual_call=0) at method-to-ir.c:7536
> #6  0x081c0ac6 in mini_method_compile (method=0xa15d8b0,
> opts=30501375, domain=0x34ea0, run_cctors=<value optimized out>,
>    compile_aot=<value optimized out>, parts=0) at mini.c:13232
> #7  0x081c28c0 in mono_jit_compile_method (method=0xa15d8b0) at mini.c:13917
> #8  0x081c3192 in mono_jit_runtime_invoke (method=0xa15d8b0, obj=0x0,
> params=0xbf9ff8f0, exc=0x0) at mini.c:14263
> #9  0x0813e5d3 in mono_runtime_invoke_array (method=0xa15d8b0,
> obj=0x0, params=0x24d5a0, exc=0x0) at object.c:3251
> #10 0x080e30c1 in ves_icall_InternalInvoke (method=0x47c8b8, this=0x0,
> params=0x24d5a0, exc=0xbf9ffa28) at icall.c:3034
>
>
> Everything works fine when using MONO_COUNT=0.
>
>
>
>
> On Thu, Jul 24, 2008 at 4:21 AM, Zoltan Varga <vargaz at gmail.com> wrote:
>>                              Hi All,
>>
>>  The merge is now done, the current testing status is the following:
>> - x86/amd64 linux seems to be in good shape, the other
>> architectures/OSes have some problems
>>
>> I would like to ask people to try out the new code, and report
>> problems either by
>> replying to this mail or by using bugzilla.
>>
>> To help track down problems, the new JIT actually includes the old
>> one, and there is
>> an env variable called MONO_COUNT which if set determines the number of
>> methods compiled by the new JIT. So running your app with MONO_COUNT=0 will
>> use the old JIT. This variable can be used to determine the exact
>> method which is
>> miscompiled by the new JIT using a binary search, ie.:
>>
>> MONO_COUNT=10000 mono app.exe -> fail
>> MONO_COUNT=5000 mono app.exe -> fail
>> MONO_COUNT=2500 mono app.exe -> success
>> MONO_COUNT=3500 mono app.exe
>>
>> etc.
>>
>> When the new JIT code is deemed stable enough, the old JIT code and this env
>> variable will be removed.
>>
>> In case anyone wants to revert their tree to before the merge, the before merge
>> revision is  r108475.
>>
>>                                   Zoltan
>>
>>> On Tue, 2008-07-22 at 01:09 +0200, Zoltan Varga wrote:
>>>> Hi All,
>>>>
>>>>   Now that we have branched for mono 2.0, we would like to merge the
>>>> work done on the linear IR branch to svn HEAD. The
>>>> linear IR branch was created in 2005 October to explore some ideas on
>>>> how to make our JIT simpler and how to make
>>>> it generate better code. A lot of work has been put into the branch
>>>> over the years, and now we are ready to merge it.
>>>> Changes of this magnitude are never easy, so svn head might be a bit
>>>> unstable for a few weeks as we work out the problems. Documentation
>>>> for the new JIT and some benchmarks can be found at
>>>> http://www.mono-project.com/Linear_IL
>>>>
>>>> I plan to do the merge tomorrow. Until then, please avoid checking in
>>>> code to the mono/mini directory so as to not interfere with the merge.
>>>>
>>>
>>> This is great news!  Do we have a list of architectures that will be
>>> supported, and more importantly a list of architectures that will be
>>> broken when you do the merge?
>>>
>>> If I remember correctly, ARM, x86, x86-64, sparc, and itanium are ported
>>> already?
>>>
>>> Thanks
>>>
>>> -g
>>>
>>>
>>>
>> _______________________________________________
>> 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