Re: ithread priority question...

From: Daniel Eischen <eischen_at_vigrid.com>
Date: Tue, 22 Jun 2004 21:25:03 -0400 (EDT)
On Tue, 22 Jun 2004, Julian Elischer wrote:
> 
> On Tue, 22 Jun 2004, Bosko Milekic wrote:
> 
> > 
> >   I'm obviously talking nonsense below.  Sorry.
> > 
> >   The real explanation is that they are put on a runqueue when executed:
> > 
> >         if (TD_AWAITING_INTR(td)) {
> >                 CTR2(KTR_INTR, "%s: setrunqueue %d", __func__, p->p_pid);
> >                 TD_CLR_IWAIT(td);
> >                 setrunqueue(td);
> >                 if (do_switch &&
> >                     (ctd->td_critnest == 1) ) {
> > ...
> > 
> >   Sorry again!
> 
> yes.. the question is.. does it make sense in a world with multiple
> schedulers to multiply set the priority of each ithread to
> (inumber * RQ_PPQ)?
> 
> It happens to work with 4bsd and probably with ULE
> but it wouldn't make a lot of sense with (say) a monte-carlo scheduler
> that may not have run queues as such (such as Luigi did) or any
> scheduler for which RQ_PPQ was not a constant.

It seems the schedulers should need to know about whether
threads are interrupt threads or not, but any priority
boost for them should be hidden in the scheduler.
I think the thread priority must reflect the fact that
it is an ithread (or not) or else priority inheritence
(or lending, whatever) isn't going to take ithread
importance into consideration.

It'd be nice to have only the schedulers deal with priority.
One could then write a scheduler that uses priorities in the
proper ordering (highest number = highest priority)!

-- 
DE
Received on Tue Jun 22 2004 - 23:25:15 UTC

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