ZFS On Linux Landing Workaround For Linux 5.0 Kernel Support
This ZOL + Linux 5.0 issue stems from a set of functions used by this ZFS Linux port for vectorized file-system checksums no longer being exported. The kernel developers don't want to re-export the functionality since as Greg Kroah-Hartman put it, "my tolerance for ZFS is pretty non-existant."
Since that Phoronix article last week, Greg KH followed up on the mailing list with, "Sorry, no, we do not keep symbols exported for no in-kernel users." Longtime Linux kernel developer Christoph Hellwig also suggested users switch instead to FreeBSD if caring about ZFS.
Greg KH also commented on Tuesday that Oracle/Sun are the ones to fundamentally blame for the license by which they put out ZFS as for upstream kernel developers not caring about the support. "ZFS could be the best filesystem ever to grace this planet, that's fantastic, but given that the creators of that code placed it under a license that was specifically designed to not be compatible with Linux to prevent it from ever being used on Linux, well, you can see why I really don't care about it. Why would I?"
So while these symbols are important for SIMD vectorized checksums for ZFS in the name of performance, with Linux 5.0+ they are not going to be exported for use by non-GPL modules. ZFS On Linux developer Tony Hutter has now staged a change that would disable vector instructions on Linux 5.0+ kernels. "The 5.0 kernel no longer exports the functions we need to vector (SSE/SSE2/SSE3/AVX...) instructions. Disable vector-based checksum algorithms when building against those kernels."
There's no word yet on how this would affect ZFS Linux performance for end-users. Those wishing to track the progress of this patch can do so via this issue ticket. Expect the fix to get in the very exciting ZOL 0.8 release.