Re: idprio(1) broken in recent -current

From: Peter Jeremy <peterjeremy_at_optushome.com.au>
Date: Sat, 25 Aug 2007 21:33:33 +1000
On 2007-Aug-24 05:23:22 +1000, Peter Jeremy <peter_at_turion.vk2pj.dyndns.org> wrote:
>boinc_client is supposed to write a watchdog flag in a shared SysV SHM
>block every second.  The setiathome process regularly polls the SHM
>and if it doesn't see the watchdog for 31 seconds, it will abort.
>boinc_client basically sits in a loop and uses select() timeouts.
>I wrote a program to monitor the SHM and it shows that SHM is not
>being updated.
>
>It looks like the kernel isn't cleanly handling the situation where
>there are multiple idprio processes.  I will try some more experimenting
>this evening.

Sorry for the delay.  The select() in boinc_client is not timing out
and so isn't returning until the child process dies.  When I 'nice'
boinc_client, 'ps' shows is waiting in 'select' - which is what I
would expect.  When I 'idprio' it, 'ps' shows it remaining running,
though it is non-responsive.

The setiathome process is deliberately allowing context switches (by
calling usleep() regularly).  It looks like a recent scheduler change
means that multiple idprio processes don't round-robin but instead
re-schedules the previously running process.

I'm running SCHED_4BSD.

Pity I don't have dtrace...

-- 
Peter Jeremy

Received on Sat Aug 25 2007 - 09:33:37 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:16 UTC