[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