svn commit: r275492 - stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs

Andriy Gapon avg at FreeBSD.org
Mon Dec 8 13:01:38 UTC 2014


On 05/12/2014 02:32, Xin LI wrote:
> Author: delphij
> Date: Fri Dec  5 00:32:33 2014
> New Revision: 275492
> URL: https://svnweb.freebsd.org/changeset/base/275492
> 
> Log:
>   MFC r274172 (avg)
>   
>   fix l2arc compression buffers leak

Thanks a lot!

BTW, do you plan to MFC this commit to stable/9?
It seems that r268075 and r268858 need MFC-ing to that branch as well.

>   We have observed that arc_release() can be called concurrently with a
>   l2arc in-flight write.
>   Also, we have observed that arc_hdr_destroy() can be called from
>   arc_write_done() for a zio with ZIO_FLAG_IO_REWRITE flag in similar
>   circumstances.
>   
>   Previously the l2arc headers would be freed while leaking their
>   associated compression buffers.  Now the buffers are placed on
>   l2arc_free_on_write list for delayed freeing.  This is similar to what
>   was already done to arc buffers that were supposed to be freed
>   concurrently with in-flight writes of those buffers.
>   
>   In addition to fixing the discovered leaks this change also adds some
>   protective code to assert that a compression buffer associated with a
>   l2arc header is never leaked.
>   
>   A new kstat l2_cdata_free_on_write is added.  It keeps a count of
>   delayed compression buffer frees which previously would have been leaks.
>   
>   Tested by:      Vitalij Satanivskij <satan at ukr.net> et al
>   Requested by:   many
>   Sponsored by:   HybridCluster / ClusterHQ
>   
>   This is a 10.1-RELEASE errata candidate.
> 
> Modified:
>   stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
> Directory Properties:
>   stable/10/   (props changed)

-- 
Andriy Gapon


More information about the svn-src-stable mailing list