Re: static scheduling - SCHED_IDLE?

From: Rik van Riel (riel@conectiva.com.br)
Date: Fri Mar 09 2001 - 23:56:41 EST


On Fri, 9 Mar 2001, Jamie Lokier wrote:
> Rik van Riel wrote:
> > > Just raise the priority whenever the task's in kernel mode. Problem
> > > solved.
> >
> > Remember that a task schedules itself out at the timer interrupt,
> > in kernel/sched.c::schedule() ... which is kernel mode ;)
>
> Even nicer. On x86 change this:
>
> reschedule:
> call SYMBOL_NAME(schedule) # test
> jmp ret_from_sys_call
>
> to this:
>
> reschedule:
> orl $PF_HONOUR_LOW_PRIORITY,flags(%ebx)
> call SYMBOL_NAME(schedule) # test
> andl $~PF_HONOUR_LOW_PRIORITY,flags(%ebx)
> jmp ret_from_sys_call

Wonderful !

I think we'll want to use this, since we can use it for:

1. SCHED_IDLE
2. load control, when the VM starts thrashing we can just
   suspend a few processes to make sure the system as a
   whole won't thrash to death
3. ... ?

regards,

Rik

--
Linux MM bugzilla: http://linux-mm.org/bugzilla.shtml

Virtual memory is like a game you can't win; However, without VM there's truly nothing to lose...

http://www.surriel.com/ http://www.conectiva.com/ http://distro.conectiva.com/

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



This archive was generated by hypermail 2b29 : Thu Mar 15 2001 - 21:00:11 EST