Announcement

Collapse
No announcement yet.

Golang Gets Cheaper Context Switching

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

  • phoronix
    started a topic Golang Gets Cheaper Context Switching

    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...

    http://www.phoronix.com/scan.php?pag...ntext-Switches

  • pal666
    replied
    https://www.boost.org/doc/libs/1_70_...ml#performance

    Leave a comment:


  • paulpach
    replied
    Originally posted by LubosD View Post
    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.
    This was my thought too. Golang now has faster userspace context switch. These were not affected by the mitigations at all. This article is mixing concepts.

    If those benchmarks change, they would change for both mitigations on/off
    Last edited by paulpach; 06-02-2019, 11:20 AM.

    Leave a comment:


  • F.Ultra
    replied
    Originally posted by GreenReaper View Post

    Unfortunately that doesn't help that much as they didn't change the SKU names (i.e. i9-9900K), just the stepping, so you could be buying an old one. Will a retailer know that? Doubt it, and if they do know it's an old one, they probably won't tell you.
    And it probably will not mean much anyway, the hw fix is equivalent to the micro code fix (if the linked Intel page is anything to go by).

    Leave a comment:


  • GreenReaper
    replied
    Originally posted by c117152 View Post

    "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 )
    Unfortunately that doesn't help that much as they didn't change the SKU names (i.e. i9-9900K), just the stepping, so you could be buying an old one. Will a retailer know that? Doubt it, and if they do know it's an old one, they probably won't tell you.

    Leave a comment:


  • Jabberwocky
    replied
    Michael please read ty: https://medium.com/@plotlygraphs/how...s-6ada49fdd891

    Leave a comment:


  • Grinch
    replied
    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.

    Leave a comment:


  • jamdox
    replied
    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...

    Leave a comment:


  • unixfan2001
    replied
    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.

    Leave a comment:


  • LubosD
    replied
    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.

    Leave a comment:

Working...
X