Skip to main content

Linux port unreliable.

5 replies [Last post]
stephanep
Offline
Joined: 2009-05-21
Points: 0

Hi,

I have build the Linux port of the RI on Ubuntu.
The build finished successfully and I could even run the tunetest that comes with the RI release.

At least sometimes. I am actually experiencing inconsistent executions: sometimes the application starts up successfully and sometimes it fails starting the application.

From the log file, I can see that the main thread "RI.Stack- 150 [main] INFO " sometimes fails to start.

Has this behavior been experienced by others too?

Thanks.

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
greg80303
Offline
Joined: 2008-07-03
Points: 0

A couple of questions. What SVN revision are you building? Are you running on a multi-processor (multi-core) machine? We recently fixed a serious thread deadlock issue in the VM that would only be seen on mult-core machines.

G

stephanep
Offline
Joined: 2009-05-21
Points: 0

I pulled the "tags/RI_I1_1_3_REL_A" for my build.
Yes I am effectively running on a multi core (4 in total) processor.

That is great news: can I access this branch to test the fix?

P.S. Sorry for the duplicated post. Can someone remove the duplication?

greg80303
Offline
Joined: 2008-07-03
Points: 0

This fix is currently in the trunk. Committed with rev 6595.

stephanep
Offline
Joined: 2009-05-21
Points: 0

I just pulled the latest trunk and the could not reproduce the issue after trying 5 times.
So problem solved. Great work!

I presume the fix you were referring to was in mpeos_sync.c right?

Thank you very much!

greg80303
Offline
Joined: 2008-07-03
Points: 0

Actually the solution was to properly enable building of the phoneME VM with multi-processor-safe instructions. Also, we had to define 1 additional compiler directive (PENTIUM_4) to ensure that the proper x86 memory barrier instruction (mfence) is used.