[Vm-dev] VM on Solaris

Andreas Wacknitz A.Wacknitz at gmx.de
Thu Apr 24 19:12:14 UTC 2014


Am 24.04.14 20:28, schrieb Eliot Miranda:
>   
>
>
> Hi Andreas,
>
>
> On Thu, Apr 24, 2014 at 9:58 AM, Andreas Wacknitz <a.wacknitz at gmx.de 
> <mailto:a.wacknitz at gmx.de>> wrote:
>
>
>
>     Am 24.04.2014 um 00:14 schrieb Eliot Miranda
>     <eliot.miranda at gmail.com <mailto:eliot.miranda at gmail.com>>:
>
>>     Hi Andreas,
>>
>>
>>     On Wed, Apr 23, 2014 at 9:35 AM, Andreas Wacknitz
>>     <a.wacknitz at gmx.de <mailto:a.wacknitz at gmx.de>> wrote:
>>
>>
>>         Thanks again Eliot,
>>
>>         First, I solved the pthreads problem under OpenSolaris. While
>>         Solaris 10 doesn’t need special user privileges for thread
>>         control (at least within the same thread policy I guess),
>>         users under Solaris 11 (and thus OpenSolaris) need the
>>         privilege „proc_priocntl“ to be given by an administrator.
>>         (For those who are interested: usermod -K
>>         defaultpriv=basic,proc_priocntl andreas)
>>
>>
>>     This is a pain :-).  You could either assume that people can
>>     always get the necessary permission and go with the threaded
>>     heartbeat (my preferred suggestion) or provide two VMs (always
>>     tedious).
>     Yes, I consider going with the threaded heartbeat for OpenSolaris
>     (I will also try to compile everything under Solaris 11.1 but
>     that’s on lower priority for me as I am not really using it.).
>     I am not yet decided whether the version without increased
>     priority would be enough. At the moment everything seems to run
>     fine with this version; I can interrupt "[[true] whileTrue]
>     forkAt: Processor userInterruptPriority“
>     by ALT-.
>
>
> That implies it is working.  But I would definitely make sure the 
> heartbeat runs at a higher priority than the main thread.
>
> One thing to check is that delays expire even when the system is fully 
> busy, e.g.
>
> | run s |
> run := true.
> s := Semaphore new.
> [| i | i := 0. s wait. [run] whileTrue: [i := i + 1]] forkAt: 
> Processor highestPriority - 1.
> [(Delay forSeconds: 1) wait. run := false] forkAt: Processor 
> highestPriority.
> s signal
>
> should lock up the system for 1 second.  If the heartbeat is not 
> advancing the clock used to check for delays then the sytsem will 
> remain locked.
It's working like you described it. Locked for a second and then 
continues to work.

>
>     But the whole thing isn’t finished yet as FFI (NativeBoost doesn’t
>     seem to work (e.g. "UnixEnvironment environ“ fails. I don’t know
>     when I will find time to deal with that.
>
>
> Well, the code is still useful for the Squeak VM, so please commit if 
> and when you have the heartbeat working to your satisfaction.
I will do that. Next step is to get your Cog branch compiled and run :)
This is mostly for my fun and experience. I am doing all in my spare 
time and thus cannot predict when it will be finished.

Best regards,
Andreas

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20140424/40de89c4/attachment.htm


More information about the Vm-dev mailing list