Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Dec 2018 17:52:24 +0000
From:      Andrew Turner <andrew@fubar.geek.nz>
To:        Matthew Macy <mmacy@freebsd.org>
Cc:        Enji Cooper <yaneurabeya@gmail.com>, freebsd-fs <freebsd-fs@freebsd.org>, freebsd-current <freebsd-current@freebsd.org>
Subject:   Re: The future of ZFS in FreeBSD
Message-ID:  <C20CCEA8-2995-473A-8CA4-79A0103A404B@fubar.geek.nz>
In-Reply-To: <CAPrugNp=ysbM6Zn0b%2B89dPebQtzFTMMwHyFxKL%2Bu9YtxAKQ5Zg@mail.gmail.com>
References:  <CAPrugNriggEMMnLTZtf6xNQNYajBYNMnGdN96-ejDYQonoOhgw@mail.gmail.com> <9C23F0C0-DEF7-45A4-ADEF-58A00F9714D8@gmail.com> <CAPrugNp=ysbM6Zn0b%2B89dPebQtzFTMMwHyFxKL%2Bu9YtxAKQ5Zg@mail.gmail.com>

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


> On 19 Dec 2018, at 08:35, Matthew Macy <mmacy@freebsd.org> wrote:
>=20
> On Tue, Dec 18, 2018 at 11:49 PM Enji Cooper <yaneurabeya@gmail.com =
<mailto:yaneurabeya@gmail.com>> 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 <mmacy@freebsd.org> =
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 =
<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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C20CCEA8-2995-473A-8CA4-79A0103A404B>