Re: scheduler nice 19 versus 'idle' behavior / static low-priorityscheduling

From: Nathanael Hoyle
Date: Fri Jan 30 2009 - 01:41:28 EST


On Fri, 2009-01-30 at 07:16 +0100, Jan Engelhardt wrote:
> On Friday 2009-01-30 06:49, Nathanael Hoyle wrote:
> >
> >I have done a bit of research on how the kernel scheduler works, and
> >why I am seeing this behavior. I had previously, apparently
> >ignorantly, equated 'nice 19' with being akin to Microsoft Windows'
> >'idle' thread priority, and assumed it would never steal CPU cycles
> >from a process with a higher(lower, depending on nomenclature)
> >priority. [...]
> >
> >One[...] is to alter the semantics of nice 19 such that it does not
> >boost. Since this would break existing assumptions and code, I do
> >not think it is feasible. [...] Finally, new scheduling classes
> >could be introduced[...]
>
> Surprise. There is already SCHED_BATCH (intended for computing tasks
> as I gathered) and SCHED_IDLE (for idle stuff).
>

The one discussion I saw referencing SCHED_BATCH seemed to imply that it
was a non-standard kernel patch by Con Kolivas in one of his -ck
variants that never made it into mainline and is not being maintained.
Is this inaccurate?

I was unfamiliar with SCHED_IDLE. Having done a little Googling now, I
finally find reference to the man page for sched_setscheduler(2). This
appears that it is likely what I wanted.

I think the information I had been able to find was somehwat out of
date. It had indicated that the only static priority levels were the
realtime ones.

Is there currently a standardized userspace tool to use to run a command
in order to alter its scheduling class? Obviously writing one would be
trivial, but didn't know if something like:

$ runidle ./foldingathome

would be available.

Thanks for your helpful reply.

>
>
> >Please make the obvious substitution to my email address in order to
> >bypass the spam-killer.
>
> (Obviously this is not obvious... there are no 'nospam' keywords or
> similar in it that could be removed.)

I made a failed attempt to post earlier in the evening, which included
the address 'nhoyle@xxxxxxxxxxxxxxxxxxxxxxxxxx'. When that one didn't
make it to the list (though I'm unsure it had to do with the address I
used) I retried with the clean address. I forgot to remove the note at
the bottom of the posting.

Sincerely,
Nathanael Hoyle

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/