Announcement

Collapse
No announcement yet.

Linux 6.6 To Better Protect Against The Illicit Behavior Of NVIDIA's Proprietary Driver

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Originally posted by oiaohm View Post
    No that does not solve it.
    I see that went waaaay over your head
    Obviously it doesn't solve it.
    Open source Nvidia code doesn't make the closed source nvidia code any more open
    Any more than open source DTrace code doesn't make closed source DTrace code any more open

    You went on this little charade because you disagreed Oracle kernel module re-exports
    EXPORT_SYMBOL_GPL​(ktime_get_raw_fast_ns​)
    with
    EXPORT_SYMBOL(dtrace_gethrtime);​​
    for use in the closed source DTrace.

    Originally posted by oiaohm View Post
    mSparks basically Dtrace is unless item

    Exactly my point tho.....
    not just DTrace
    any GPL kernel module that maps

    EXPORT_SYMBOL_GPL​(larryWeDontLikeYou)
    with a
    EXPORT_SYMBOL​(larryWeLoveYou)

    That can then be used with closed source kernel and userspace modules.

    Heck, this entire commit can be worked around by anyone who needs it just slapping together a new GPL kernel module with the old version of symbol_get() and calling it symbol_get_original()

    But, that isn't nvidia, because just like you, this Christoph Hellwig guy is full of shit, and there is no "importing exports from their proprietary modules into an allegedly GPL licensed module and then re-exporting them using symbol_get()" on the part of nvidia, Christoph Hellwig never highlighted what this "allegedly GPL licensed module" is, and no one can find it.

    It's all fabricated bullshit of the highest order, the only impact is to destroy trust to the core of the Linux kernel developers.

    And wtf are they doing still accepting patches from him after he bricked the 5.9 Kernel.
    Last edited by mSparks; 04 September 2023, 09:39 PM.

    Comment


    • Originally posted by mSparks View Post
      EXPORT_SYMBOL_GPL​(ktime_get_raw_fast_ns​)
      with
      EXPORT_SYMBOL(dtrace_gethrtime);​​
      for use in the closed source DTrace.
      Thing is there is no such thing as closed source DTrace on Linux never has been. Remember it was CDDL. Question what is the derivative work of "dtrace_gethrtime" symbol. The answer is Solaris. So dtrace_gethrtime is a preexisting symbol from a preexisting API/ABI.

      The copyright in a derivative work covers only the additions, changes, or other new material appearing for the first time in the work. Protection does not extend to any preexisting material, that is, previously published or previously registered works or works in the public domain or owned by a third party.​​​
      Yes read the law. Derivative work does not cover preexisting and preexisting is something that is not a derivative work of the GPL work.

      Originally posted by mSparks View Post
      EXPORT_SYMBOL_GPL​(larryWeDontLikeYou)
      with a
      EXPORT_SYMBOL​(larryWeLoveYou)
      That can then be used with closed source kernel and userspace modules.
      This is horrible wrong. Told you it was not a good idea to go near dtrace. Just because something is EXPORT_SYMBOL does not make it safe to use with a closed source module. EXPORT_SYMBOL(dtrace_gethrtime) your license choice here is CDDL or GPL because of what dtrace_gethrtime is a derivative work of. Just because something is

      EXPORT_SYMBOL does not mean it safe to use from Linux userspace or closed source module dtrace symbols are a good one like this where you find yourself either agree with GPL or be on the hook for CDDL.



      mSparks the reality is like it or not dtrace_gethrtime is not new material and how it functions implemented on the Linux kernel exactly matches its orgin point being Solaris. No new material GPL wording of derivative work does not apply but that does not mean what it truly a derivative of license does not apply.

      Originally posted by mSparks View Post
      Heck, this entire commit can be worked around by anyone who needs it just slapping together a new GPL kernel module with the old version of symbol_get() and calling it symbol_get_original()
      Not legal this would be DMCA technical measure circumvention. You are missing the all important that what you have done is preexisting work that not GPL.

      Yes its legally possible to take a GPL only system and export it for closed source modules and userspace to use but you have to have non GPL preexisting material to base this bridge off. Yes the dtrace symbols are good ones to say o hell this is not straight forwards sometimes you can by mistake by not using the Linux kernel license activate the license of the preexisting material that the EXPORT_SYMBOL is based on that can be way worse than GPLv2.

      There are legal ways Nvidia can export EXPORT_SYMBOL_GPL to be used in their kernel module. None the legal ways have you using symbol_get(). Big one is they need a function define from somewhere else that is preexisting and not GPL so they can EXPORT_SYMBOL legally to convert the symbol. Yes you would want to attempt upstream the change just in case there is some other license at play.

      mSparks there is a legal way todo and always has been.

      The following for a closed source linux kernel module todo is not legal.
      1) Linking directly against EXPORT_SYMBOL_GPL
      2) using symbol_get to runtime dynamic link against EXPORT_SYMBOL_GPL by a function pointer.
      3) Linking against any EXPORT_SYMBOL that happens to be of a incompatible license.

      Please also note dtrace_gethrtime->ktime_get_raw_fast_ns​ you have the function call operations to dtrace_gethrtime then the function call operations to ktime_get_raw_fast_ns. This is slightly slower than what Nvidia doing of getting the direct function pointer by using symbol_get.

      mSparks the legal way of getting around EXPORT_SYMBOL_GPL and other symbols that are not licensed the way you want requires a wrapper function that causes a slight bit of overhead.

      mSparks like it or not copyright law defines how you should get around the EXPORT_SYMBOL_GPL with the copyright law define of what is derivative work. Like or not Nvidia has not been obeying copyright law. that why everything exploded with 5.9.

      The changes to symbol_get() should do nothing to Nvidia drivers if Nvidia has been obeying the copyright law. Yes the changes in 5.9 also should have done nothing if Nvidia had been obeying the copyright law.

      Yes the DTrace​ example you are point at is how it should be done. This is where the exported API to something not GPL from a GPL work is a preexisting API out of something not GPL. Remember not all EXPORT_SYMBOL from the Linux kernel are based on other preexisting API and not all of those preexisting API licensing was compatible with closed source and some cases preexisting code that is not GPL that still under that other license was brought into the Linux kernel as well.

      Yes using random EXPORT_SYMBOL from the Linux kernel and your kernel module is not GPL you might be on the hook for a AIX developer license from IBM or the like because that where the preexisting function came from so you are now a derivative work of.(yes there is dual licensed AIX/GPL code in the Linux kernel and those symbols are not exposed as EXPORT_SYMBOL_GPL but are EXPORT_SYMBOL) Making a non GPLv2 kernel module for the Linux kernel is a tricky business and you can dig yourself into a.deep legal hole very quickly.

      Comment


      • Originally posted by Magissia View Post

        It is very low to attack grammar on international discussion, not everyone one is British perfect English.
        I'm not a native speaker either, but poor grammar makes you sound childish

        Comment


        • Originally posted by oiaohm View Post

          Yes using random EXPORT_SYMBOL from the Linux kernel and your kernel module is not GPL you might be on the hook for a AIX developer license from IBM or the like because that where the preexisting function came from so you are now a derivative work of.(yes there is dual licensed AIX/GPL code in the Linux kernel and those symbols are not exposed as EXPORT_SYMBOL_GPL but are EXPORT_SYMBOL) Making a non GPLv2 kernel module for the Linux kernel is a tricky business and you can dig yourself into a.deep legal hole very quickly.
          Not even close, DTrace is from Solaris and Sun Microsystems proprietry kernel code. The only new code was the Linux kernel module. Code can't be derived from something written after the original. Even if what you are saying is true, which it isn't.

          Next you'll be telling us Michael Jackson derived smooth criminal from Alien Ant Farm?

          And the kernel code nvidia needs to bring their windows drivers to Linux weren't stolen from the windows source link and marked GPL_ONLY.
          Last edited by mSparks; 05 September 2023, 05:10 AM.

          Comment


          • Originally posted by mSparks View Post
            Not even close, DTrace is from Solaris and Sun Microsystems proprietry kernel code.
            Not quite proprietary does not equal always closed source. DTrace came into existence 2005 first published in fact under Sun Public License please note CDDL is classed as version 2 of Sun Public License. Just because something is propriety does not mean it all closed source. The reality is Dtrace like it or not has always been open source in one form or another. All versions and all parts of Dtrace ever made fall under SPL, CDDL or GPLv2 or UPL Dtrace has never existed as closed source.

            Its also surprising how much of the Solaris kernel was published open source over the years under SPL to allow NSA and others to review sections of the OS that was interesting to them.

            There are parts of Solaris that did exist as closed source Dtrace is just not one of therm.

            Originally posted by mSparks View Post
            The only new code was the Linux kernel module. Code can't be derived from something written after the original. Even if what you are saying is true, which it isn't.
            Exactly read the copyright law and understand what it means what you wrote.
            https://www.copyright.gov/circs/circ14.pdf
            The copyright in a derivative work covers only the additions, changes, or other new material appearing for the first time in the work. Protection does not extend to any preexisting material, that is, previously published or previously registered works or works in the public domain or owned by a third party.​​​
            Since the function define "EXPORT_SYMBOL(dtrace_gethrtime)" cannot derived because dtrace_gethrtime comes from preexisting dtrace open source code for solaris material the GPL derivative work clauses does not work when you interface with this function. Please note the "dtrace_gethrtime" does not exist in the SPL version of dtrace it added in the CDDL version latter in 2005. The example you pulled is talking about Dtrace 2005 CDDL as point of origin and the Linux dtrace kernel module is made after that is that function define is preexisting and being preexisting stops GPL derivative work clause dead in it tracks.


            Originally posted by mSparks View Post
            And the kernel code nvidia needs to bring their windows drivers to Linux weren't stolen from the windows source link and marked GPL_ONLY.
            Nvidia gets themselves into trouble using EXPORT_SYMBOL_GPL. Nvidia could use "Windows Display Driver Model (WDDM)" defined functions to create legal wrappers.

            OpenZFS has a stack of legal wrappers that goes from Linux API to Solaris API between Linux kernel and the CDDL parts of OpenZFS. Yes since its Solaris API coming into contact with CDDL work you no longer have the GPL derivative work problem because the Solaris API is preexisting work.

            Copyright law is kind of a pain here you need to have a preexisting work to be able block the derivative work clauses.

            Nvidia need to pick one of the two legal paths. OpenZFS has gone done one legal path it does have it problems. Dtrace has gone down the other legal path.

            Yes the OpenZFS path Nvidia need to pick a safe API to write wrappers from the linux API to that safe preexisting API this can be a wrapper written in GPL because the preexisting stops GPL in it tracks. This does come with a performance cost and a miss match in functionality issues.

            Nvidia wants to have closed source driver on Linux and high performance. One problem Linux due to GPL license is pick 1 not pick both.
            1) Closed source driver done legal on Linux you will have overhead.
            2) Open source GPL Linux driver you can use lowest overhead solution and have the highest performance.but you have to release source code and for stability upstream.

            Comment


            • Originally posted by oiaohm View Post
              DTrace came into existence 2005
              Not for Linux, work on the linux kernel module didn't start until 2010
              Originally posted by oiaohm View Post
              please note CDDL is classed as version 2 of Sun Public License.
              DTrace was open sourced at the end 2017
              OK… Technically, it’s not “just” but last year… I’m just catching up on some things.


              All that time it was using dtrace_gethrtime, even before being made compatible with the Linux Kernel, and plenty of closed source DTrace blobs will still be in use in production.

              Originally posted by oiaohm View Post
              Nvidia wants to have closed source driver on Linux and high performance. One problem Linux due to GPL license is pick 1 not pick both.
              1) Closed source driver done legal on Linux you will have overhead.
              2) Open source GPL Linux driver you can use lowest overhead solution and have the highest performance.but you have to release source code and for stability upstream.
              If anything this whole thread demonstrates that Kernel developers cannot be trusted,
              But overhead is the price everyone will now pay for the dishonesty being demonstrated here, whether they use NVidia or not. The code he added to __symbol_get is a performance regression, not improvement. It's only other potential impact is to break modules that use it and do not declare GPL_ONLY (such as DTrace).


              Hasn't held Nvidia back before tho, wont hold them back in the future, treating successful software business like this only hurts Linux and the reputation of those submitting the patches.

              Unfortunately intentionally bricking a kernel release didn't damage his reputation enough to get his rights revoked last time, if he is successful in bricking it again its probably time to start a campaign to get these morons the hell away from our OS.

              Originally posted by oiaohm View Post
              Nvidia need to pick one of the two legal paths.
              If anything you said was true​, but since it isn't they absolutely do not and will not listen to anything these morons have to say or let it influence them in any way. They will simply respond "fuck you Christoph Hellwig" and continue making hundreds of billions of dollars year selling 100% original software, and nothing you, Christoph Hellwig, or any of the other dishonest bad actors say or do will affect that.

              Last edited by mSparks; 05 September 2023, 08:10 AM.

              Comment


              • Originally posted by oleid View Post
                Who is "they"?
                Since 1983, developing the free Unix style operating system GNU, so that computer users can have the freedom to share and improve the software they use.

                Comment


                • Originally posted by jorgepl View Post
                  I'm not a native speaker either, but poor grammar makes you sound childish
                  Since we are doing callouts, lack of punctuation makes for incomplete sentences and implies incoherent thought. It is petty to call out international community like that.

                  "Correct use of end punctuation contributes to the order and readability of the text."

                  Comment


                  • NVIDIA is que real SKYNET!!

                    I really love NVIDIA GPUs, but once AMD equals o make RT better I'll move to AMD.

                    But if my nvidia card stops working with latest kernels I think I'll buy AMD instead of moving to Windows.. period!

                    Comment


                    • Originally posted by mSparks View Post
                      DTrace was open sourced at the end 2017
                      https://medium.gravier.org/did-oracl...e-c8bf2239f84a
                      http://dtrace.org/blogs/ahl/2011/10/...e-for-linux-2/
                      2011 Oracle Linux Dtrace is CDDL by the way.

                      2017 is when Oracle changes their DTrace from CDDL with SPL wrapper to GPL compatible licenses. Oracle never released a Linux version of Dtrace that was in fact closed source.

                      There is no such thing as a closed source blob of Dtrace it never existed mSparks. Dtrace the issue is license incompatibility between GPL and CDDL from 2011 to 2017 on Linux. Yes 2011 dtrace on Linux was a buggy mess. Orcale did not start dtrace on Linux until 2011,

                      mSparks Dtrace is one of those things. Sun never released a closed source version of Dtrace, Oracle Never released a closed source version of Dtrace. Dtrace has not always been under a GPL compatible open source license but Dtrace has always been under an Open source license.

                      Also old versions Dtrace that are not GPL compatible on Linux will not have a problem with the change why because they will not work due to other changes in the Linux kernel on the kernel version that has this change.

                      Comment

                      Working...
                      X