idprio(1) broken in recent -current
Peter Jeremy
peterjeremy at optushome.com.au
Sat Aug 25 04:33:37 PDT 2007
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20070825/2afe4c58/attachment.pgp
More information about the freebsd-current
mailing list