Date: Tue, 22 Jun 2004 17:11:36 -0700 (PDT) From: Julian Elischer <julian@elischer.org> To: Bosko Milekic <bmilekic@FreeBSD.org> Cc: freebsd-current@freebsd.org Subject: Re: ithread priority question... Message-ID: <Pine.BSF.4.21.0406221708100.54870-100000@InterJet.elischer.org> In-Reply-To: <20040622225726.GA26611@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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.
>
> -bosko
>
> Julian Elischer wrote:
> >On Tue, 22 Jun 2004, John Baldwin wrote:
> ...
> >> That was the intention. One question though, if the ithreads aren't on the
> >> system run queues then which run queues are they on?
> >
> >aren't they run from the interupt?
>
> Not always. They have to be put on a runqueue if they block on a
> mutex, say.
>
> -Bosko
>
>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0406221708100.54870-100000>
