[patch] zfs livelock and thread priorities

Ben Kelly ben at wanderview.com
Tue Apr 14 15:50:29 UTC 2009


On Apr 13, 2009, at 7:36 PM, Artem Belevich wrote:

> Tried your patch that used PRIBIO+{1,2} for priorities with -current
> r191008 and the kernel died with "spinlock held too long" panic.
> Actually, there apparently were two instances of panic on different
> cores..
>
> Here's output of "alltrace" and "ps" after the crash:
> http://pastebin.com/f140f4596
>
> I've reverted the change and kernel booted just fine.
>
> The box is quad-core with two ZFS pools -- one single-disk and another
> one is a two-disk mirror. Freebsd is installed on UFS partitions, ZFS
> is used for user stuff only.

Thanks for the report!

I don't have a lot of time to look at this today, but it appears that  
there is a race condition on SMP machines when setting the priority  
immediately after the kproc is spawned.  As a quick hack I tried  
adding a pause between the kproc_create() and the sched_prio().  Can  
you try this patch?

   http://www.wanderview.com/svn/public/misc/zfs_livelock/zfs_thread_priority.diff

I'll try to take a closer look at this later in the week.

Thanks!

- Ben


More information about the freebsd-current mailing list