Print this page
11909 THREAD_KPRI_RELEASE does nothing of the sort
Reviewed by: Bryan Cantrill <bryan@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>

*** 191,226 **** * * A thread joining the SDC class can specify the SDC_THREAD_BATCH * flag. This flag currently has no effect, but marks threads which * do bulk processing. * - * - t_kpri_req - * - * The TS and FSS scheduling classes pay attention to t_kpri_req, - * which provides a simple form of priority inheritance for - * synchronization primitives (such as rwlocks held as READER) which - * cannot be traced to a unique thread. The SDC class does not honor - * t_kpri_req, for a few reasons: - * - * 1. t_kpri_req is notoriously inaccurate. A measure of its - * inaccuracy is that it needs to be cleared every time a thread - * returns to user mode, because it is frequently non-zero at that - * point. This can happen because "ownership" of synchronization - * primitives that use t_kpri_req can be silently handed off, - * leaving no opportunity to will the t_kpri_req inheritance. - * - * 2. Unlike in TS and FSS, threads in SDC *will* eventually run at - * kernel priority. This means that even if an SDC thread - * is holding a synchronization primitive and running at low - * priority, its priority will eventually be raised above 60, - * allowing it to drive on and release the resource. - * - * 3. The first consumer of SDC uses the taskq subsystem, which holds - * a reader lock for the duration of the task's execution. This - * would mean that SDC threads would never drop below kernel - * priority in practice, which defeats one of the purposes of SDC. - * * - Why not FSS? * * It might seem that the existing FSS scheduling class could solve * the problems that SDC is attempting to solve. FSS's more precise * solution to the oversubscription problem would hardly cause --- 191,200 ----