[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