[patch] zfs livelock and thread priorities
John Baldwin
jhb at freebsd.org
Tue May 19 13:35:29 UTC 2009
On Monday 18 May 2009 10:16:46 pm Ben Kelly wrote:
> On May 18, 2009, at 11:29 AM, John Baldwin wrote:
> > On Saturday 16 May 2009 12:40:44 pm Ben Kelly wrote:
> >> 1) It changes the kproc(9) API by adding a kproc_create_priority()
> >> function that allows you to set the priority of the newly created
> >> thread. I'm not sure how people feel about this.
> >
> > Actually, I almost think we should just add a priority argument to
> > each of the
> > routines that creates a new kthread/kproc. Perhaps allow a priority
> > of 0 to
> > let the thread run with the default priority. Hmm, it looks like
> > kthreads
> > default to running with whatever thread0 runs at (PVM) which is
> > probably not
> > really ideal. Having an explicit priority for every kthread would
> > probably
> > be best. Most kthreads should probably be at PZERO by default I
> > think.
>
> If this approach was taken would it make sense to use a flag to
> indicate "use the specified priority" since 0 is a valid priority value?
Well, 0 isn't truly valid (it's sort of reserved I guess), and we already use
0 for tsleep() to mean "don't change my priority". However, I would almost
be inclined to just KASSERT() that the priority argument is not 0 and require
each place that creates a kthread to explicitly set the new thread's
priority.
--
John Baldwin
More information about the freebsd-current
mailing list