[Vm-dev] [Pharo-dev] Problem with OSSubprocess / signals / heartbeat ?

Levente Uzonyi leves at caesar.elte.hu
Sat Apr 1 16:21:16 UTC 2017


Hi Eliot,

On Fri, 31 Mar 2017, Eliot Miranda wrote:

> 
> Hi Levente,
>
>> On Mar 31, 2017, at 6:42 AM, Levente Uzonyi <leves at caesar.elte.hu> wrote:
>> 
>>> On Thu, 30 Mar 2017, Eliot Miranda wrote:
>>> 
>>> Once the active process is in a tight loop the delay is effectively 
>> disabled because the tight loop effectively shuts out the heartbeat thread and hence the system never notices that the delay has expired.
>> 
>> I think that won't happen, because the process scheduler (O(1), CFS, BFS) on linux is not cooperative. So, the kernel will periodically preempt the main thread and run the heartbeat thread no matter what their priorities are. The higher priority only provides lower jitter on the heartbeat thread.
>
> It did happen.  In 2009 Andreas and I demonstrated it on Linux. Yes it may be the case that certain Linux kernel versions fix the issue but the only reliable way is to have the heartbeat thread run at a higher priority than the Smalltalk thread.

Back in 2009 neither of those schedulers were released.
Of course, one can compile a kernel with a cooperative scheduler, but 
the average user is unlikely to ever use such kernel.

Levente

>> 
>> Levente


More information about the Vm-dev mailing list