Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Apr 2003 15:39:33 -0400 (EDT)
From:      Andre Guibert de Bruet <andy@siliconlandmark.com>
To:        freebsd-current@freebsd.org
Subject:   Re: Renice idle process to -20 causes hang.
Message-ID:  <20030423153316.A59991@alpha.siliconlandmark.com>
In-Reply-To: <XFMail.20030423135511.jhb@FreeBSD.org>
References:  <XFMail.20030423135511.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On Wed, 23 Apr 2003, John Baldwin wrote:

> On 23-Apr-2003 Craig Reyenga wrote:
> > From: "John Baldwin" <jhb@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?
> >
> > 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.
>
> Ok, it could be that sched_ule is breaking because of the kseq_nice
> stuff.  I think that SCHED_4BSD should be ok with this.

On the topic of nice for the idle process(es), shouldn't they be running
with the highest allowable value (+20)? Though this has no technical
impact, couldn't they get that nice value for aesthetic purposes?

Regards,

> Andre Guibert de Bruet | Enterprise Software Consultant >
> Silicon Landmark, LLC. | http://siliconlandmark.com/    >




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030423153316.A59991>