Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 07 Feb 2014 11:11:58 +0200
From:      Andriy Gapon <avg@FreeBSD.org>
To:        Vitalij Satanivskij <satan@ukr.net>
Cc:        Vladimir Sharun <atz@ukr.net>, Current FreeBSD <freebsd-current@FreeBSD.org>
Subject:   Re: ARC "pressured out", how to control/stabilize ? (reformatted to text/plain)
Message-ID:  <52F4A35E.1080902@FreeBSD.org>
In-Reply-To: <20140205122241.GA38114@hell.ukr.net>
References:  <52D66DB6.7030807@FreeBSD.org> <1390900795.258244476.v35k1338@frv45.ukr.net> <52EA3459.3070300@FreeBSD.org> <1391083826.948700370.cmzf8475@frv45.ukr.net> <20140131182637.GA82526@hell.ukr.net> <20140204100823.GA95709@hell.ukr.net> <52F0F687.6050307@FreeBSD.org> <20140204171040.GA82996@hell.ukr.net> <52F12210.10604@FreeBSD.org> <20140205090449.GA9341@hell.ukr.net> <20140205122241.GA38114@hell.ukr.net>

next in thread | previous in thread | raw e-mail | index | archive | help
on 05/02/2014 14:22 Vitalij Satanivskij said the following:
> Dear Andriy and FreeBSD community,
> 
> Ok. I'm get coredump on panic.
> 
> What else i need to do?


Vitalij, Vladimir,

I have been able to reproduce the leak at work, so now I have full access to all
debugging information that I need.  Thank you for your testing and reports.

I have reported my observations to OpenZFS developers.  It looks like the author
of L2ARC compression code is too busy right now to produce a fix.
Unfortunately, I am not very familiar with the L2ARC code, so I can not promise
to produce a patch soon.

My recommendation would be to completely disable L2ARC _compression_ (not L2ARC
itself) on your production systems for time being.
The following patch should do that:

--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
@@ -5080,20 +5080,22 @@ l2arc_write_buffers
 		 * ab->b_buf may be invalid by now due to ARC eviction.
 		 */
 		l2hdr = ab->b_l2hdr;
 		l2hdr->b_daddr = dev->l2ad_hand;

+#if 0
 		if ((ab->b_flags & ARC_L2COMPRESS) &&
 		    l2hdr->b_asize >= buf_compress_minsz) {
 			if (l2arc_compress_buf(l2hdr)) {
 				/*
 				 * If compression succeeded, enable headroom
 				 * boost on the next scan cycle.
 				 */
 				*headroom_boost = B_TRUE;
 			}
 		}
+#endif

 		/*
 		 * Pick up the buffer data we had previously stashed away
 		 * (and now potentially also compressed).
 		 */


-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52F4A35E.1080902>