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_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to