Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Dec 2001 02:45:14 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Luigi Rizzo <rizzo@aciri.org>
Cc:        John Baldwin <jhb@FreeBSD.ORG>, Peter Wemm <peter@wemm.org>, <current@FreeBSD.ORG>
Subject:   Re: vm_zeropage priority problems.
Message-ID:  <20011222023741.P5064-100000@gamplex.bde.org>
In-Reply-To: <20011221055117.A15321@iguana.aciri.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 21 Dec 2001, Luigi Rizzo wrote:

> On Sat, Dec 22, 2001 at 12:46:40AM +1100, Bruce Evans wrote:
> > I think pri_native is just an implementation detail which shouldn't
> > be used or visible to threads.  It used used by the priority propagation
> > mechanism to hold the original pri_level.  Threads should just use their
> > original priority (or a different one if they want to temporarily change
> > thier priority).  Even pri_level probably shouldn't be used or visible
> > to threads.
>
> the original priority should be somewhere and accessible,
> either directly or through some function. Otherwise how
> do we know what to pass to tsleep() ?

It's whatever the thread set itself.  There is no good way of setting
this either (vm_pagezero() and poll_idle() hack it into
td->td_ksegrp->kg_pri).  Userland would use rtprio(2) instead.
Unfortunately, this gives priorities in different units than the ones
for tsleep().

> In any case I wonder if this is a bug new in -current; -stable
> uses three separate data structures for realtime, user and idle tasks
> so even specifying the wrong priority in tsleep should not cause
> crossing classes there. -current has only one array, hence the
> chance of doing the wrong thing.

The 3 classes are a design bug in -stable.  Crossing classes is sometimes
right and 3 classes mainly make it harder and force triplication of code.

Bruce


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




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