Startvation of realtime piority threads
John Baldwin
jhb at freebsd.org
Tue Apr 10 13:58:30 UTC 2012
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
More information about the freebsd-hackers
mailing list