Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 4 Nov 2016 19:05:55 +0100
From:      Ben RUBSON <ben.rubson@gmail.com>
To:        freebsd-fs <freebsd-fs@FreeBSD.org>
Subject:   Re: ZFS L2ARC checksum errors after compression
Message-ID:  <6D16D1E0-CA33-44DB-AB88-9257A8BDE67F@gmail.com>
In-Reply-To: <3bd7cb79-ec5a-3b7c-0642-24a7b1f001e6@FreeBSD.org>
References:  <921575537.20161029143626@serebryakov.spb.ru> <3dae7691-fcd1-b3b9-445c-b81d6f0cdc52@FreeBSD.org> <fe4962d6-75c3-32c0-8d28-c99661e5161f@FreeBSD.org> <3bd7cb79-ec5a-3b7c-0642-24a7b1f001e6@FreeBSD.org>

index | next in thread | previous in thread | raw e-mail


> On 04 Nov 2016, at 15:20, Andriy Gapon <avg@FreeBSD.org> wrote:
> 
> On 03/11/2016 21:43, Lev Serebryakov wrote:
>> On 29.10.2016 16:32, Andriy Gapon wrote:
>> 
>> Looks like L2ARC is unusable now if your have compression enabled on
>> FSes. It shows 2x compression (ALLOC = 2xSIZE), and tons of checksum
>> errors. I simply don't have compressible enough data on my FSes! It is
>> mostly media files! Looks like this data is bogus.
>> 
>>> I think that a recent upstream change, compressed ARC support, reintroduced an a
>>> old problem that was fixed a while ago.
>> 
> 
> Lev,
> 
> because of the confusing variable names I made a mistake in the patch that I
> offered you.  Could you please try a new slight different patch?
> (...)
> +			if ((write_psize + asize) > target_sz) {

Do you think the issue comes from this test ?
target_sz is only the threshold under which we still have to write buffers to L2.

Note that I also proposed a modification around this test in the following PR :
https://github.com/openzfs/openzfs/pull/189

Here is an extract of the interesting code :

uint64_t size = arc_hdr_size(hdr);
passed_sz += size;
if (passed_sz > headroom) {
    /*
     * Searched too far.
     */
    mutex_exit(hash_lock);
    break;
}
if (!l2arc_write_eligible(guid, hdr)) {
    mutex_exit(hash_lock);
    continue;
}
if ((write_asize + size) > target_sz) {
    full = B_TRUE;
    mutex_exit(hash_lock);
    break;
}

Note that I also faced the 16.0E bug in 11.0-RC3 (which has not compressed ARC support) :
https://www.illumos.org/issues/7410

Ben



help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6D16D1E0-CA33-44DB-AB88-9257A8BDE67F>