[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