[Vm-dev] CogMT

gettimothy gettimothy at zoho.com
Wed Aug 4 15:44:32 UTC 2021


Marcel,Thank you ---- On Wed, 04 Aug 2021 09:16:24 -0400  marcel.taeumel at hpi.de  wrote ---- 
                                        Hi, there.> For us clueless end users and application tier coders, what will we see when this is done?For example, you could then do a an expensive FFI call in any Squeak process other than the "UI process" in Morphic. Morphic would stay responsive. That FFI-calling process would wait on a semaphore and continue when the call returns. Just like you would design other in-image worker processes (with priorities) to keep the system responsive.At the moment, the entire interpreter loop is blocked during that FFI call, which means that Squeak's process scheduling does not work. You will notice this even while fetching (smaller) chunks of network traffic in a low-priority process (ie., < 40) from time to time. Those little hiccups.Best,Marcel
                                        
                        Am 01.08.2021 23:53:05 schrieb gettimothy <gettimothy at zoho.com>:For us clueless end users and application tier coders, what will we see when this is done?A folllow up newbie question...Squeak in morphic is, I assume, single threaded -- Test runner must run to completion before morphic events are processed-- for example.Does this MT FFI create a possibility of  two xterm based Squeeak REPLs  interacting , correctly, with Cog/Spur ? ---- On Sat, 31 Jul 2021 15:13:15 -0400  bera.clement at gmail.com  wrote ---- It's about threaded FFI implemented in the VM.On Thu, Jul 29, 2021 at 4:29 PM Marcel Taeumel <marcel.taeumel at hpi.de> wrote: Hi all!Here is a rather broad question: What is "CogMT" about? For whom are those multiple threads (MT)? :-)The only build configuration I can find is build.linux64ARMv8/squeak.cogmt.spur. There is an issue with the type of sqOSSemaphore. That got me interested in the idea of CogMT ... which predates ARMv8 by a lot, right?Best,Marcel*** 2021-07-29T11:17:34.6297654Z In file included from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogitARMv8.c:16,
2021-07-29T11:17:34.6305778Z                  from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogit.c:11:
2021-07-29T11:17:34.6312562Z /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/platforms/unix/vm/sqPlatformSpecific.h:75:4: error: conflicting types for 'sqOSSemaphore'
2021-07-29T11:17:34.6323676Z   } sqOSSemaphore;
2021-07-29T11:17:34.6324255Z     ^~~~~~~~~~~~~
2021-07-29T11:17:34.6325724Z In file included from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/platforms/Cross/vm/sqMemoryAccess.h:472,
2021-07-29T11:17:34.6327528Z                  from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/platforms/unix/vm/sqPlatformSpecific.h:35,
2021-07-29T11:17:34.6329210Z                  from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogitARMv8.c:16,
2021-07-29T11:17:34.6330958Z                  from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogit.c:11:
2021-07-29T11:17:34.6332629Z /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/platforms/unix/vm/sqPlatformSpecific.h:75:4: note: previous declaration of 'sqOSSemaphore' was here
2021-07-29T11:17:34.6333826Z   } sqOSSemaphore;
2021-07-29T11:17:34.6334219Z     ^~~~~~~~~~~~~
2021-07-29T11:17:34.9588384Z In file included from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/platforms/Cross/vm/dispdbg.h:8,
2021-07-29T11:17:34.9589908Z                  from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogitARMv8.c:19,
2021-07-29T11:17:34.9591283Z                  from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogit.c:11:
2021-07-29T11:17:34.9593124Z /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogitARMv8.c: In function 'allMachineCodeObjectReferencesValid':
2021-07-29T11:17:34.9605356Z /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogitARMv8.c:7855:52: warning: passing argument 2 of 'mapForperformUntilarg' from incompatible pointer type [-Wincompatible-pointer-types]
2021-07-29T11:17:34.9607673Z     if (!(asserta((mapForperformUntilarg(cogMethod, checkIfValidOopRefAndTargetpccogMethod, cogMethod)) == 0))) {
2021-07-29T11:17:34.9608918Z                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-- Clément Bérahttps://clementbera.github.io/https://clementbera.wordpress.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20210804/4eee1e29/attachment-0001.html>


More information about the Vm-dev mailing list