Announcement

Collapse
No announcement yet.

Golang Gets Cheaper Context Switching

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

  • Golang Gets Cheaper Context Switching

    Phoronix: Golang Gets Cheaper Context Switching

    As good news considering how much longer it takes to perform a full context switch on Intel CPUs due to various vulnerability mitigations, the Go programming language run-time now has the ability for performing cheaper context switches...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2

    I'd just like to interject for a moment. What you're referring to as Golang, is in fact, GCC/Golang, or as I've recently taken to calling it, GCC plus Golang. Golang is not a compiler collection unto itself, but rather another free component of a fully functioning GCC system made useful by the GCC compilers, libraries, and vital language extensions comprising a full compiler collection as defined by Rob Pike.

    Many programmers run a modified version of the GCC every day, without realizing it. Through a peculiar turn of events, the version of GCC which is widely used today is often called "Golang", and many of its users are not aware that it is basically the GNU Compiler Collection, developed by the GNU Project.

    There really is a Golang, and these people are using it, but it is just a part of the system they use. Golang is the language: the specification of symbols that are converted by the compiler into the programs they run. The language is an essential part of a computer program, but useless by itself; it can only function in the context of a complete compiler collection. Golang is normally used in combination with the GNU compiler collection: the whole system is basically GCC with Golang added, or GCC/Golang. All the so-called "Go" programs are really programs of GCC/Golang.
    Last edited by jamdox; 01 June 2019, 09:50 AM.

    Comment


    • #3
      When can I buy an Intel CPU with these things fixed in silicon?

      Comment


      • #4
        Originally posted by cl333r View Post
        When can I buy an Intel CPU with these things fixed in silicon?
        "MDS is addressed in hardware starting with select 8th and 9th Generation Intel® Core™ processors, as well as the 2nd Generation Intel® Xeon® processor Scalable family." ( https://www.intel.com/content/www/us...ology/mds.html )

        Comment


        • #5
          Originally posted by jamdox View Post
          I'd just like to interject for a moment. What you're referring to as Golang, is in fact, GCC/Golang, or as I've recently taken to calling it, GCC plus Golang. Golang is not a compiler collection unto itself, but rather another free component of a fully functioning GCC system made useful by the GCC compilers, libraries, and vital language extensions comprising a full compiler collection as defined by Rob Pike.

          Many programmers run a modified version of the GCC every day, without realizing it. Through a peculiar turn of events, the version of GCC which is widely used today is often called "Golang", and many of its users are not aware that it is basically the GNU Compiler Collection, developed by the GNU Project.

          There really is a Golang, and these people are using it, but it is just a part of the system they use. Golang is the language: the specification of symbols that are converted by the compiler into the programs they run. The language is an essential part of a computer program, but useless by itself; it can only function in the context of a complete compiler collection. Golang is normally used in combination with the GNU compiler collection: the whole system is basically GCC with Golang added, or GCC/Golang. All the so-called "Go" programs are really programs of GCC/Golang.
          GCC = GNU Compiler Collection
          Go is just a piece of this collection. Not sure why you feel the need to be so anal about it.

          Comment


          • #6
            Originally posted by bug77 View Post

            GCC = GNU Compiler Collection
            Go is just a piece of this collection. Not sure why you feel the need to be so anal about it.
            It was a harmless joke, I didn't see any issue with it. I'd rather have a joke like that than toxic elitism trolling.

            Comment


            • #7
              Context switching done by the kernel has nothing to do with context switching done in userspace, e.g. by Golang. The kernel has to do mitigations in order to avoid possible leakage of sensitive information from a different memory space. User space implementations have no such burden.

              So these graphs in the article should NOT be there.

              Comment


              • #8
                Originally posted by jamdox View Post
                I'd just like to interject for a moment. What you're referring to as Golang, is in fact, GCC/Golang, or as I've recently taken to calling it, GCC plus Golang. Golang is not a compiler collection unto itself, but rather another free component of a fully functioning GCC system made useful by the GCC compilers, libraries, and vital language extensions comprising a full compiler collection as defined by Rob Pike.

                Many programmers run a modified version of the GCC every day, without realizing it. Through a peculiar turn of events, the version of GCC which is widely used today is often called "Golang", and many of its users are not aware that it is basically the GNU Compiler Collection, developed by the GNU Project.

                There really is a Golang, and these people are using it, but it is just a part of the system they use. Golang is the language: the specification of symbols that are converted by the compiler into the programs they run. The language is an essential part of a computer program, but useless by itself; it can only function in the context of a complete compiler collection. Golang is normally used in combination with the GNU compiler collection: the whole system is basically GCC with Golang added, or GCC/Golang. All the so-called "Go" programs are really programs of GCC/Golang.
                Not to ruin that nerdy joke, but GCC isn't the standard compiler backend for Go. GC is, which is not in any way related to GCC or GNU.

                Comment


                • #9
                  Originally posted by unixfan2001 View Post

                  Not to ruin that nerdy joke, but GCC isn't the standard compiler backend for Go. GC is, which is not in any way related to GCC or GNU.
                  That's the joke. Or, half of it at any rate...

                  Comment


                  • #10
                    Just to make it clear, this only affects the GCCGo compiler which is part of GCC, in the Phoronix benchmarks, the official Go compiler is used (AFAIK) and thus will not be affected by these improvements.

                    Comment

                    Working...
                    X