svn commit: r206665 - head/sys/geom/eli

Ben Kelly ben at wanderview.com
Tue Oct 12 20:22:17 UTC 2010


On Apr 15, 2010, at 12:34 PM, Pawel Jakub Dawidek wrote:
> Author: pjd
> Date: Thu Apr 15 16:34:06 2010
> New Revision: 206665
> URL: http://svn.freebsd.org/changeset/base/206665
> 
> Log:
>  Use lower priority for GELI worker threads. This improves system
>  responsiveness under heavy GELI load.

Sorry to reply to such an old commit, but I wanted to note that this causes a regression on my server.  It is probably fairly specific to my setup, so it may not make sense to fix, but I thought I should at least let you know.

My server is an old i386 with a zfs pool on top of a geli partition.  When under heavy disk load the zfs subsystem can enter a message passing loop between the txg and zio threads until any queued disk i/o is flushed.  With the geli worker threads at a lower priority this can lead to livelock since geli never gets scheduled to perform the flush.  From my previous debugging efforts I believe this can only be triggered if the ARC is under heavy pressure and the processor is near, or at, 100% CPU utilization.

Here is the old thread on this issue:

  http://old.nabble.com/-patch--zfs-livelock-and-thread-priorities-td22587022.html

On my local system I have simply reverted this change and bumped up the priority on the geli worker threads to PVM to match the priority used by the zio threads.  Before doing this I could reliably trigger the livelock by running my backup process.

Anyway, its not clear to me what a good general purpose solution would be.  I just wanted to note the issue in case anyone else encounters it.

Thanks.

- Ben


More information about the svn-src-all mailing list