Re: Renice idle process to -20 causes hang.

From: Craig Reyenga <creyenga_at_connectmail.carleton.ca>
Date: Wed, 23 Apr 2003 13:29:03 -0400
From: "John Baldwin" <jhb_at_freebsd.org>
>
> 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/
>

I am using SHED_ULE, and I have not yet tried this with SCHED_4BSD. I have
already submitted a PR about this, perhaps a little prematurely. It's
definitely a 'problem' though, because the system becomes unusable. I should
also mention that any SSH sessions that were open already still work, until
I try to run a new process, such as ls or something.

-Craig
Received on Wed Apr 23 2003 - 08:29:28 UTC

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