[Vm-dev] Re: New Cog VMs available

Eliot Miranda eliot.miranda at gmail.com
Sun Jun 21 01:49:22 UTC 2015


On Sat, Jun 20, 2015 at 6:33 PM, Eliot Miranda <eliot.miranda at gmail.com>
wrote:

> Hi All,
>
> On Sat, Jun 20, 2015 at 6:26 PM, Eliot Miranda <eliot.miranda at gmail.com>
> wrote:
>
>> ... at http://www.mirandabanda.org/files/Cog/VM/VM.r3386
>>
>> CogVM binaries as per VMMaker.oscog-eem.1370/r3386
>>
>> Add the ARMv5/ARMv6 Cog Spur JIT VM!
>>
>
> It's very satisfying to release a JIT for a new (for Cog) ISA.  Thanks to
> Lars Wassermann and Tim Rowledge for lots of hard work on the JIT, which I
> participated in too.  And thanks to Doug McPherson for lots of work in
> other parts of the ARM build.  This is great.
>
> The main caveat is that this has only been tested on Raspberry Pi running
> Raspbian.  We're interested to hear of experience with other ARM linux
> systems.
>
> All is not perfect.  I've been able to update a Spur image completely and
> run almost all tests.  But currently there's a segfault coming from SSL.
> Anyone who's got expertise with SSL and ARM is encouraged to take a look.
> Here's the current stack trace for the segfault:
>

Ah, I was confused by running this under gdb.  Had I run it natively the
SIGILL would have been caught and ignored.  So ignore this.  One lives and
learns.


> Program received signal SIGILL, Illegal instruction.
> 0xb5fd4600 in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
> (gdb) where
> #0  0xb5fd4600 in ?? () from
> /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
> #1  0xb5fd0fe4 in OPENSSL_cpuid_setup ()
>    from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
> #2  0xb6fe8254 in ?? () from /lib/ld-linux-armhf.so.3
> #3  0x0029db18 in ?? ()
> #4  0x0029db18 in ?? ()
> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
> (gdb) call printStackCallStackOf (framePointer)
> 0xbefab924 I SqueakSSL>initialize 0x619df8: a(n) SqueakSSL
> 0xbefab93c M SqueakSSL class(Behavior)>new 0x1a3f6c0: a(n) SqueakSSL class
> 0xbefab954 M SqueakSSLTest>setUp 0x18a9f08: a(n) SqueakSSLTest
> 0xbefab96c M [] in SqueakSSLTest(TestCase)>runCase 0x18a9f08: a(n)
> SqueakSSLTest
> 0xbefab988 M BlockClosure>on:do: 0x44d640: a(n) BlockClosure
> 0xbefab9b0 M [] in SqueakSSLTest(TestCase)>timeout:after: 0x18a9f08: a(n)
> SqueakSSLTest
> 0xbefab9d0 M BlockClosure>ensure: 0x44d6e0: a(n) BlockClosure
> 0xbefab9f8 M SqueakSSLTest(TestCase)>timeout:after: 0x18a9f08: a(n)
> SqueakSSLTest
> 0xbefaba18 M [] in SqueakSSLTest(TestCase)>runCase 0x18a9f08: a(n)
> SqueakSSLTest
> 0xbefaba38 M BlockClosure>ensure: 0x44d810: a(n) BlockClosure
> 0xbefaba54 M SqueakSSLTest(TestCase)>runCase 0x18a9f08: a(n) SqueakSSLTest
>
>
>
>> Add explicit read barriers to primitives which access an argument as the
>> receiver (i.e. the mirror primitives).  Don't check if the actual
>> receiver is
>> used.  Simplify failure where appropriate cuz the primitives will be
>> retried.
>>
>> Add -fwrapv to all linux gcc builds (to insist on 2's complement
>> arithmetic)
>> and add makeallclean, making makeall do the dirty build.
>>
>> Provide a -exitonwarn command line switch for the Mac and Unix VMs to
>> allow for
>> CI testing of asserts.
>>
>> Unix: restore the SCCS revision after the version number in -version
>> output.
>>
>> Spur:
>> Remember to count shrink requests
>>
>> Cogit:
>> Fix bug in rewriting compiler primitives on module unload, etc.  The old
>> code
>> didn't change the assignment to the primitiveFunctionPointer, which is
>> needed
>> for correct management of failing primitive calls on Spur.  Simplify the
>> post
>> compile hook to eliminate the label parameter; this is local to the Cogit.
>>
>> ARM Cogit:
>> Use out-of-line literals for compactness.
>> --
>> best,
>> Eliot
>>
>
>
>
> --
> best,
> Eliot
>



-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20150620/56678834/attachment.htm


More information about the Vm-dev mailing list