Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Apr 2012 09:57:39 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        Sushanth Rai <sushanth_rai@yahoo.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Startvation of realtime piority threads
Message-ID:  <201204100957.39465.jhb@freebsd.org>
In-Reply-To: <1334003544.57349.YahooMailClassic@web180010.mail.gq1.yahoo.com>
References:  <1334003544.57349.YahooMailClassic@web180010.mail.gq1.yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday, April 09, 2012 4:32:24 pm Sushanth Rai wrote:
> I'm using stock 7.2. The priorities as defined in priority.h are in this range:
> 
> /*
>  * Priorities range from 0 to 255, but differences of less then 4 (RQ_PPQ)
>  * are insignificant.  Ranges are as follows:
>  *
>  * Interrupt threads:           0 - 63
>  * Top half kernel threads:     64 - 127
>  * Realtime user threads:       128 - 159
>  * Time sharing user threads:   160 - 223
>  * Idle user threads:           224 - 255
>  *
>  * XXX If/When the specific interrupt thread and top half thread ranges
>  * disappear, a larger range can be used for user processes.
>  */
> 
> The trouble is with vm_waitpfault(), which explicitly sleeps at PUSER.

Ah, yes, PUSER is the one Pxxx not in "top half kernel threads".  You can patch
that locally, but you may have better lucking using 9.0 (or backporting my
fixes in 9.0 back to 7 or 8).  They were too invasive to backport to FreeBSD
7/8, but you could still do it locally (I've used them at work on both 7 and 8).

-- 
John Baldwin



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