[Vm-dev] VM on Solaris (was: Camera sig fault on 64 bits
machines.)
Eliot Miranda
eliot.miranda at gmail.com
Tue Apr 22 20:31:42 UTC 2014
On Tue, Apr 22, 2014 at 1:10 PM, Andreas Wacknitz <a.wacknitz at gmx.de> wrote:
>
>
> Am 22.04.2014 um 21:36 schrieb Eliot Miranda <eliot.miranda at gmail.com>:
>
> Hi Andreas,
>
>
> On Tue, Apr 22, 2014 at 12:05 PM, Andreas Wacknitz <a.wacknitz at gmx.de>wrote:
>
>>
>> This evening I further dealt with the problems on OpenSolaris
>> (openindiana).
>> I finally got a pthread version running without superuser rights. But I
>> don’t know whether this will really work (ATM it does for me)
>> because I removed the call to pthread_setschedparam in beatStateMachine
>> leaving the heartbeat thread with the same
>> priority than the vm thread.
>
>
> Alas, that will not work -(. As soon as the image enters into a hard loop
> (e.g. [true] whileTrue) the heartbeat thread will be blocked and the VM
> will never break out of the loop.
>
>
> How can I check this blockage? I started the VM with --pollpipe 1 and then
> [true] whileTrue in a Workspace. The GUI is blocked but the pipe is still
> rotating.
>
Can you interrupt with ctrl-period? If not, then I don't understand how
the pip is still rotating :-). If you can, then you're not blocking the
system. Try e.g. [[true] whileTrue] forkAt: Processor highestPriority.
You are running the JIT right?
I tried to replace the pthread_setschedparam call with a similar
>> pthread_setschedprio call but
>> with no luck (same problem: failed call with "Not owner"). I don’t know
>> wether this is a general problem with the pthreads implementation
>> on Solaris or just a problem with the gcc version (4.4.4) coming with the
>> openindiana distribution I am using. Maybe this works only
>> with the compilers and libraries that is delivered by Oracle (Solaris 10
>> ships with gcc 3.4.3; Solaris Studio has its own compilers).
>>
>
> It's too do with pthreads. Nothing to do with the compiler. On some
> implementations it requires special permission to create threads with
> different priorities. That used to be the case on linux and it appears to
> be the case on OpenSolaris. Hence one is stuck with the itimer heartbeat.
>
> Is there any implementation actually using sqUnixITimerHeartbeat.c?
>
Yes, but unhappily. We use it at Cadence because we have customers on pre
2.6.12 kernels. We have to e.g. switch off the heartbeast around certain
external calls.
> I don’t think that Solaris has special problems here.
> Also, I cannot imagine that this situation is so uncommon that nobody else
> got it before SqueakVM. A higher prioritized thread should be possible for
> ordinary users.
>
I definitely wasn't the case on linux.
At least that was my idea when I changed the code to use
> pthread_setschedprio. Changing the prio while keeping the policy seemed
> reasonable.
>
If you can lower the priority of the main thread that'll work too.
> You /could/ try and implement the heartbeat in another process and use
> nice to change its priority. I don't know how well that would work. I've
> never tried it.
>
> As I wrote I already wrote a simple C program that does send a SIGALRM.
> It’s working albeit very slowly.
>
>
> Second, I needed to change the implementation of ioUpdateVMTimezone
>> because Solaris does not have time_t->tm_gmtoff.
>> There seem to be copies of this function in all three heartbeat files
>> with the one in sqUnixITimerHeartbeat.c working for those OS’s without
>> tm_gmtoff.
>>
>> NativeBoost doesn’t seem to work yet (at least UnixEnvironment>>environ
>> raises an error: „failed to get a symbol address: environ“).
>>
>> This VM gives me 686787391 bytecodes/sec and 80516849 sends/sec on my 6
>> years old Sun Ultra 24 (2,4GHz Intel Q9300).
>> I get similar values for the VM with pthread_setschedparam call and
>> superuser rights.
>> My 4 years old iMac (2,8GHz Core i5) gives me 829149797 bytecodes/sec;
>> 117122195 sends/sec.
>> So the results seem comparable.
>>
>> Andreas
>
> --
> best,
> Eliot
>
> Regards,
> Andreas
>
--
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20140422/0a88ec4b/attachment-0001.htm
More information about the Vm-dev
mailing list