From owner-freebsd-current@freebsd.org Wed Dec 19 17:53:10 2018 Return-Path: Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B5BB7133E3EB; Wed, 19 Dec 2018 17:53:10 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from fry.fubar.geek.nz (fry.fubar.geek.nz [139.59.165.16]) by mx1.freebsd.org (Postfix) with ESMTP id 2A1CF8BF81; Wed, 19 Dec 2018 17:53:07 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from [192.168.100.30] (unknown [185.201.60.232]) by fry.fubar.geek.nz (Postfix) with ESMTPSA id AF27A4E693; Wed, 19 Dec 2018 17:52:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fubar.geek.nz; s=mail; t=1545241947; bh=2jTW0oXQtVXSFTNoTNFg6fuGj3HRIfreps/0dhdiIJ8=; h=From:Subject:Date:In-Reply-To:Cc:To:References; b=pJutvXEZMl+P/UQlP83/gQq2JpAfrNBX/Nc8WCDliG0oGxh/Us68tMiK8in54H8NP eeizQf/NPaOXjckY2qyRhaW8o+4AsZjiU0dH5jcNdlOKkOKfPjd5+u+99nZJQjGz9b zqffgmGKO3p49JA8n8ZYey+DHAnjMrEfY5hz/LAPZeBqfQV5UmFQUb3UWU5zo2MKCT b0ga5VDyeQaXuLHcMC76WtiLaDWwYw0AFwTAkawISG4mDL8+QEq6VyUmp70onF9iiI kwcmHv6gRI2SdyelPAQLx4BtgMa4imTEKSlLb7WlWOcccRXN/kgoPrFfpYJPXRnPKE u61L/MMso0Y6PN75ImSfody/Z+fNY8PIn0sYOJ3nG9y9RCVdfYw72Yv8+Y/TH/g2/L 6JdSSEcErAVNZ8k0X8yw54S3QtKlPVrbgmube/YoUXW9YCR4dIVR3NSNJMP2jToi68 Y+3iVxrrlgQGUO1tsCoxRMsQCMhqO4WMKmOqUxFatS9p7sCnY89qwuedaIdsQTKc/D d+4po97KCPaMKzjI1F08jVlKe1JY2cN/O7fQdPAZniGqDYC8VKN0xw6rGwVhkBcxum NZ0XZ8QBskqE5cHZ9Asb0gR6fO3sHQZ2CZ+8apVlmliELiHcxGX6jxQJlzjulguGh9 RYTTdDi+2jwmLBV6GQ5JD554= From: Andrew Turner Message-Id: Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) Subject: Re: The future of ZFS in FreeBSD Date: Wed, 19 Dec 2018 17:52:24 +0000 In-Reply-To: Cc: Enji Cooper , freebsd-fs , freebsd-current To: Matthew Macy References: <9C23F0C0-DEF7-45A4-ADEF-58A00F9714D8@gmail.com> X-Mailer: Apple Mail (2.3445.9.1) X-Rspamd-Queue-Id: 2A1CF8BF81 X-Spamd-Bar: +++ Authentication-Results: mx1.freebsd.org; dkim=pass header.d=fubar.geek.nz header.s=mail header.b=pJutvXEZ; dmarc=pass (policy=none) header.from=fubar.geek.nz; spf=pass (mx1.freebsd.org: domain of andrew@fubar.geek.nz designates 139.59.165.16 as permitted sender) smtp.mailfrom=andrew@fubar.geek.nz X-Spamd-Result: default: False [3.25 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[fubar.geek.nz:s=mail]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+mx]; MV_CASE(0.50)[]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; NEURAL_SPAM_SHORT(0.75)[0.752,0]; NEURAL_SPAM_MEDIUM(0.60)[0.604,0]; URI_COUNT_ODD(1.00)[11]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[fubar.geek.nz:+]; MX_GOOD(-0.01)[fry.fubar.geek.nz]; DMARC_POLICY_ALLOW(-0.50)[fubar.geek.nz,none]; NEURAL_SPAM_LONG(0.68)[0.679,0]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+]; IP_SCORE(0.63)[asn: 14061(3.22), country: US(-0.08)]; ASN(0.00)[asn:14061, ipnet:139.59.160.0/20, country:US]; FREEMAIL_CC(0.00)[gmail.com]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Dec 2018 17:53:11 -0000 > On 19 Dec 2018, at 08:35, Matthew Macy wrote: >=20 > On Tue, Dec 18, 2018 at 11:49 PM Enji Cooper > wrote: >>=20 >> Hello Matthew, >>=20 >> I appreciate the long write up, as someone who still uses FreeBSD ZFS = on my NAS box and knowing some of the history with ZFS on *Solaris, etc. = Something like this was bound to happen with post the Oracle buyout. >>=20 >>> On Dec 18, 2018, at 10:49 PM, Matthew Macy = wrote: >>>=20 >>> The sources for FreeBSD's ZFS support are currently taken directly >>> from Illumos with local ifdefs to support the peculiarities of = FreeBSD >>> where the Solaris Portability Layer (SPL) shims fall short. FreeBSD >>> has regularly pulled changes from Illumos and tried to push back any >>> bug fixes and new features done in the context of FreeBSD. In the = past >>> few years the vast majority of new development in ZFS has taken = place >>> in DelphixOS and zfsonlinux (ZoL). Earlier this year Delphix = announced >>> that they will be moving to ZoL >>> https://www.delphix.com/blog/kickoff-future-eko-2018 This shift = means >>> that there will be little to no net new development of Illumos. = While >>> working through the git history of ZoL I have also discovered that >>> many races and locking bugs have been fixed in ZoL and never made it >>> back to Illumos and thus FreeBSD. This state of affairs has led to a >>> general agreement among the stakeholders that I have spoken to that = it >>> makes sense to rebase FreeBSD's ZFS on ZoL. Brian Behlendorf >>> has graciously encouraged me to add FreeBSD support directly to ZoL >>> https://github.com/zfsonfreebsd/ZoF so that we might all have a = single >>> shared code base. >>>=20 >>> A port for ZoF can be found at https://github.com/miwi-fbsd/zof-port >>> Before it can be committed some additional functionality needs to be >>> added to the FreeBSD opencrypto framework. These can be found at >>> https://reviews.freebsd.org/D18520 >>>=20 >>> This port will provide FreeBSD users with multi modifier protection, >>> project quotas, encrypted datasets, allocation classes, vectorized >>> raidz, vectorized checksums, and various command line improvements. >>>=20 >>> Before ZoF can be merged back in to ZoL several steps need to be = taken: >>> - Integrate FreeBSD support into ZoL CI >>> - Have most of the ZFS test suite passing >>> - Complete additional QA testing at iX >>=20 >> Can you please describe the testing process that will be employed to = verify the sanity of the ZoL on FreeBSD port? Should other large = companies who use ZFS on FreeBSD (Panzura?) chime in and the ZFS on = FreeBSD community (as a whole) collaborate to better suss out issues = with the ZoL port? >=20 > The ZFS test suite itself provides ~80% coverage > https://codecov.io/gh/zfsonlinux/zfs/branch/master = - FreeBSD currently > lacks equivalent gcov support, but presumably it would provide > comparable coverage here. Andrew Turner has some form of kernel gcov > support that he uses with syzkaller. However, I believe that it isn't > sufficient for this purpose. The code I have is to trace the kernel part of a single thread, e.g. = what happens in the kernel when you make a system call. It can trace = function either function entry or places in the code with a conditional = statement, e.g. an if, while, or switch statement. If this is enough for = your case a tool could be written to track coverage from the tests. I expect to update the review soon. I=E2=80=99m working on a man page, = but have been too busy with work and other projects recently to finish = writing it. Andrew