Skip to main content

pMEA MIPS stability

2 replies [Last post]
Joined: 2010-01-18

Hey folks --

I am running pMEA SVN on a Sigma Designs SMP8634 board (Linux mipsel), and I'm having all sorts of stability problems with cvm -- both with and without JIT.

With JIT, one of two things happen:
- One of my threads will at some point die due to SIGILL, or
- Multiple threads waiting on BufferedReader.readLine() will get stuck, with cvm chewing up 100% CPU. No other threads get scheduled at this time.

Without JIT:
- One of my threads will at some point die due to SIGSEGV

Not quite sure where to start debugging this. The board is running a variant of Linux 2.6.15 with uClibc 0.9.28. pMEA was built with gcc 4.0.4 and binutils 2.17. Any suggestions on how to start tracking this one down?

Thanks in advance,

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Joined: 2006-10-16

We've supported MIPS devices for many years and I don't recall seeing these problems before. However, we've always run on gLibc, not uClibc.

Have you built with CVM_DEBUG=true and debugged with GDB yet? Try to find out what the SIGILL is for and get backtraces for the crashes. Get things working without the JIT before moving to the JIT.

Make sure your gcc is using o32 calling conventions. You should find that _MIPS_SIM == _MIPS_SIM_ABI32. The cdc source checks the value of _MIPS_SIM in src/linux-mips/javavm/include/defs_arch.h. Only _MIPS_SIM_ABI32 is tested and known to work.

Joined: 2010-01-18

Thanks. We tracked down most of the stability problems to an old build of uClibc from the hardware vendor; having built our own (and passing -Wl,--linker-path /path/to/new/ at link time for cvm) we are able to run a stable non-JIT build. The JIT build still dies with SIGILL though, I'll do some more investigation and get back to you.