RE: Renice idle process to -20 causes hang.

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Wed, 23 Apr 2003 13:13:24 -0400 (EDT)
On 23-Apr-2003 Craig Reyenga wrote:
> While running a samba benchmark, I tried 'renice -n -20 10' (pid 10 is idle
> thread) to see what would happen. Turns out that this operation isn't
> illegal, and the system hung accordingly. The benchmark timed out soon
> after, and the console started displaying this message:
> 
> swap_pager: indefinite wait buffer: device: ad0s1b, blkno: 776, size: 4096
> 
> over and over, although not rapidly. I'm not sure what to blame; perhaps
> setpriority() should return [EINVAL] or something. I can provide more info,
> upon request.

Umm, yeah, setpriority should do an EINVAL, but that's not probably the
real bug.  idlethreads are never on the run queues, they are truly idle
and only executed when there is nothing else to do.  They don't have a
real priority other than "anything else is more important".  What might have
happened is that setpiority() put the idle process on the run queue, which
is guaranteed to totally hose your system.

Are you using SCHED_ULE or SCHED_4BSD?

-- 

John Baldwin <jhb_at_FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/
Received on Wed Apr 23 2003 - 08:13:28 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:04 UTC