Long-term plans for growing list of EXPORT_SYMBOL_GPL #14630
Replies: 5 comments 5 replies
-
Seconded, would like to see something being done for this. Arch updated it's zen kernel to 6.2.8 and suddenly there are a bunch of symbols that causes zfs modules to not compile. |
Beta Was this translation helpful? Give feedback.
-
Sigh. This was clearly written by a user who has never used ZFS personally. A lot of the cons on this list are or will be mitigated by pending planned changes. The ARC contention is definitely not well understood by non-habitual ZFS users. ARC can and often is clamped to a max value on systems that absolutely need it. And while there have been some cases of that limit being violated at certain points in history, it's not the pain point a lot of naysayers make it out to be. Now, the page cache fighting with ARC and causing memory starvation for one or another: that is a potential issue, though mostly a Linux specific one. The page cache size is also tunable, though. The dedupe table consuming too much memory has long been mitigated by special vdevs (and prior to that, could be somewhat helped by having a larger L2ARC). The reflink copy gripe is already being addressed by a very recent PR that just went in. The layering violation is a strength rather than a weakness. The "layering" is a dumb abstraction that grew from volume management from AIX and other ilk (Sun's SVM, etc). Having a file system aware of which blocks are backing what and a robust checksum allows for better error recovery scenarios and visibility to where the corruption lives.
What on Earth is this guy talking about? The distinction of a "file RAID" makes no sense in this context. In spite of all of the flaws in this blog post, the point that does need to be contended is that Linux kernel maintainers are constantly hiding previously exported symbols behind GPL protection for very unclear reasons. I would like to know the opinion of high level maintainers that are working on ZFS specifically for Linux professionally on this and what can be done to make the situation better. Surely LLNL and other national labs are getting pretty fed up with this? |
Beta Was this translation helpful? Give feedback.
-
@KungFuJesus Sorry but you missed the point of this discussion, it's only about how to deal with increasing number of changes from EXPORT_SYMBOL to EXPORT_SYMBOL_GPL. The "ONLY" reason I included that link was specifically to ask @ryao if it "would it be possible and any good advantages for zfs to be able to use the kernel's page cache..." I had actually started to write a "rebuttal" to that very "subjective" anti-ZFS article, but that's another story and not the topic for which I opened this discussion. But here's a preview of a point from my draft rebuttal that I had started "some time ago" but never finished: "rebuttal exposing the dishonesty of: https://storytime.ivysaur.me/posts/why-not-zfs/ where he shows none of the weaknesses of btrfs even after recommending bcachefs, which has even today at TOP in BOLD BIG letters: "The COW filesystem for Linux that won't eat your data." And OBVIOUSLY it is making fun of BTRFS and its reputation for having eaten people's DATA, there's no other COW filesystem for Linux that it could be referring to other than BTRFS! And he keeps comparing ext4 to ZFS though ext4 has none of the ZFS features, when he compares performance etc, and he shields and protects btrfs from same criticisms and only brings up BTRFS to mention some feature it has that ZFS doesn't but never the other way around. It's very dishonest and subjective while 'pretending' to be an objective analysis..." So yes, I agree with you that the article is not a good valid critique of ZFS, but my specific question about using the Linux page cache still stands, look forward to an answer from someone knowledgeable on that. And main point of discussion is as title says: "Long-term plans for growing list of export_symbol_gpl". To answer your last question, if you read a lot of the linux kernel emails, you'll see they did plan on making more and more symbols to be GPL-only. I can only hope that it is all genuinely just to hurt "closed source" proprietary kernel modules, ie nvidia etc. Because if that's the case then I see some hope that we can use all the symbols ourselves being copyleft/CDDL and still stay on good terms with them. Also, I think a lot of people, even organizations internally might already be using all the symbols via patch and just not saying anything publicly about it. I'm in favor of considering all export symbols to be "practically" Export_Symbol_Copyleft, and build ZFS as GPL binary by changing CDDL to GPL in META file. |
Beta Was this translation helpful? Give feedback.
-
@YaroKasear @eirnym @stalkerg Unfortunately there has been a lot of misinformation on the ZFS CDDL license chosen by Sun way back. I've looked into this quite a lot, I had started a "draft" issue on here to try and explain the history and actual reasons behind license choice to dispel the insidious conspiracy theories making Sun out to be as bad as Oracle. You can read the draft here: #13415 but note draft was never finished due to discomfort with the topic and impatience. To summarize, Sun was a great company, we owe a lot to them, and the truth is that the GPL is not the greatest copyleft license, you can actually be more likely to get sued with GPL, than CDDL, due to lack of "patent grant". What people don't realize, is whatever perceived insult from Linux kernel developers or even Linus himself at times, against the CDDL, the exact "same" applies to GPLv3! Try to let that "sink in" before getting all confused that CDDL is 'incompatible'. As long as Oracle hasn't retired their closed-source ZFS, they will do what they can to hurt OpenZFS integration into Linux. (Take a look at: https://www.patreon.com/posts/33178775 The "reason" that Oracle is "silent", is because they are using their "silence" as a "big bluff", to instill "fear", and sadly it appears to have worked even on Linus to some extent. The "reality" is, that OpenZFS with it's CDDL license can live long and prosperous with Linux without any license change. For all practical intents and purposes, OpenZFS project is "just as" copyleft as the Linux kernel and its GPLv2 license. I've always said the best solution is for Linus to accept that GPL export symbols should be treated as "Copyleft Exports" instead of "GPLv2" exports which are only to be used by GPL "v2", because GPLv3 code is in the "exact same boat" as CDDL. Or Linus and the Kernel devs can easily say: "Hey guys, since you/OpenZFS are literally fully Open Source and copyleft just like us, go ahead and use a "Condom" and we can hook up no problem anytime!" In this way we/zfs can go ahead and continue modularizing and include more and more code into our current GPL shim while allowing it to freely use any "GPL" labelled export symbols. Currently I think that even though we/zfs uses a GPL shim https://github.com/openzfs/spl that the decision had been made to "still avoid" using GPL export symbols even though this GPL shim module is the way that actual "CLOSED SOURCE" (not open source at all imagine that) have been in use by Linux for "ages", and apparently without anyone on the Linux side doing anything about it legally, regardless of any "talk" etc. If Linux knows it can't win court cases against closed source using "condom" shims, then they surely know they will never win a court case against open-source copyleft code using condoms/shims when their "copyleft intents" have been practically met. So if closed source software can live with Linux, how much more so can OPENzfs. Point is that I think Linus would/should not have any problem with OpenZFS using Linux kernel "GPL" export symbols, all our code is fully "open source" and "copyleft". His own stated "intent" (copyleft) for when he stumbled on GPL long ago and chose it, is not interfered by OpenZFS at all. Anyway, main point is Oracle can't do nothing about it, all they do is fearmongering "bluffs" which too many have fallen for. And until Linus decides to give his official blessing for GPL exports to be considered as "Copyleft exports", anyone is 100% free to do so already when "building" ZFS, and distributions can provide a "script" to enable end users to easily do so also. |
Beta Was this translation helpful? Give feedback.
-
@YaroKasear Thanks I can see by the points you made that you're definitely a lot more knowledgeable on the license issue than most of others whose lack of knowledge perhaps leads to their fudding and fearmongering, so I have "hope" for them. If I didn't have such hope to be able to change and convince others, I wouldn't have wasted my time trying to explain things. You made a huge point by the way, which is that Linus himself is on record (in writing also), that as you said, "even" closed source kernel modules can link to the kernel without becoming "derivative works", hence in that way they are "compatible", simply if the closed-source module had not been developed specifically "for Linux", he gave example of "ported" modules. And if he admits that for "closed source" modules, he would/should have no problem with a fully "open source" module like O-zfs which not only also more than meets all his criteria of not being a derivative work, but even his "intent" of "copyleft" : ) Anyway, though Linus isn't a lawyer and has said some inaccurate things at times perhaps, I still think that he's not really an enemy of openzfs. I actually think he's more open minded than others in the Linux kernel, so I have "hope he can be an ally". And as far as Oracle, yep, they "would" do anything to hurt their competition, if they have not, it's only because they can't : ) |
Beta Was this translation helpful? Give feedback.
-
@ryao This is continuation from #14555
I was also wondering; would it be possible and any good advantages for zfs to be able to use the kernel's page cache? (some criticism can be found over at https://storytime.ivysaur.me/posts/why-not-zfs/ )
(Update, for reference: #13689 (comment) )
So how will/should zfs deal with ever growing list of export symbols being made GPL only?
Beta Was this translation helpful? Give feedback.
All reactions