Slashdot Mirror


Despite 'Painful' Spectre Response, Linus Torvalds Says He Still Loves Speculative Execution (youtube.com)

At this year's Open Source Summit, Linus Torvalds sat for a wide-ranging "keynote" interview with Dirk Hohndel, chief open source officer at VMWare, which has been partially transcribed below. And Linus explained, among other things, why the last merge window was harder than others: One of the issues we have is when we've had these hardware security issues, and they've kept happening now, the last year -- they're kept under wraps. So we knew about the issue for the last several months, but because it was secret and we weren't allowed to talk about it, we couldn't do our usual open development model. We do the best we can, and people really care deeply about getting a good product out, but when you have to do things in secret, and when you can't use all the nice infrastructure for development and for testing that we have for all the usual code, it just is way more painful than it should be. And then that just means that, especially when the information becomes public during what is otherwise a busy period anyway, it's just annoying...

I still love speculative execution. Don't get me wrong. I used to work for a CPU company. We did it in software, back when I worked there. I think a CPU has to do speculative execution. It's somewhat sad that then people didn't always think about or didn't always heed the warnings about what can go wrong when you take a few shortcuts in the name of making it slightly simpler for everybody, because you're going to throw away all that work anyway, so why bother to do it right. And that's when the security -- every single security problem we've had has been basically of that kind, where people knew that "Hey, this is speculative work. If something goes wrong we'll throw all the data away, so we don't need to be as careful as we would otherwise." I think it was a good lesson for the industry, but it was certainly not a fun lesson for us on the OS side, where we had to do a lot of extra work for problems that weren't our problems.

It feels somehow unfair. I mean, when we have a security bug that was our own fault, it's like, "Okay, it was us screwing up. It's fair that we have to do all the work to then fix our own bugs." But it feels slightly less fair when you have to fix somebody else's...

"The good news -- I mean the really good news, and I'm serious about this -- is that the bugs have become clearly more and more esoteric," Linus adds. "So it impacts fewer and fewer cases, and clearly hardware people at Intel and other places are now so aware of it that I'm hoping we're really getting to the dregs of the hardware security bugs, and going forward we'll have much fewer of them. I think we're going to the better days, when A.) we got the bugs fixed, and B.) people were thinking about them beforehand."

There's a lot more, so read on for more excerpts...
When it comes to quantum computing, Linus says he's "a huge unbeliever in that whole thing. I don't think it will ever happen. And if I'm wrong, I'm pretty sure that I'll be long dead by the time people can prove me wrong..."

"Hey, it has been known to happen that I've been wrong before, so maybe the whole quantum thing is going to be a thing. But I think if you actually look at where hardware is going today, the much more relevant part is that traditional computers are not scaling, and people really don't see a lot of realistic paths forward to go on the hardware side. And I actually think that's probably healthy for the industry, eventually, and especially for us software people who have gotten kind of complacent...

"The saying used to be that every two years performance doubles, and that has clearly not been very true lately, and it's not going to be true going forward. And I think that's good. Maybe not fun, but it means that we'll maybe go back partly to the time where you cared more about performance on the software side, and you had to be more careful, and you can't just rely on hardware getting better all the time... I do think it's pretty clear that the whole Moore's Law thing is definitely not something you should take for granted. This very much impacts the hardware people, but I'm saying it also impacts, I think, us software people and especially us system people, where it means that software itself has to take that into account...

"I'm a software person, so asking me about hardware is kind of questionable to begin with. I'm actually a huge believer in neural networks. Back way in the days when I was at University, I was studying artificial intelligence -- the traditional kind of artificial intelligence -- and always felt that that was snake oil, and that the real model of AI is to actually look at what we know works, right? And I'm really happy to see that this is clearly the direction that the industry has been going lately."

Watch a 40-minute video of Linus's remarks on the Linux Foundation's page on YouTube.

19 of 82 comments (clear)

  1. Of course he does by Snotnose · · Score: 2

    Why not? The theory is great. The implementation sucked.

    1. Re:Of course he does by WorBlux · · Score: 3, Informative

      The theory requires you to eliminate side effects to be secure, but to speculate to any depth of calculaton you need access to intermediary results (e.i side effects). The implementation didn't suck, it was a very good implementation, but speculation at its core has a strong rellelence to security. To actually do it securely you need a lot of setup, adding costs to context switches, or you need to to design the pipeline to guarantee an undo on failed speculation including undoing the side effects such as cache loads and evictions.

    2. Re:Of course he does by ebyrob · · Score: 2

      So the VM envelope is broken and has vulnerabilities. That's a big deal and it's great it can be fixed. That makes sense. But how did it ever become a good idea to Just In Time compile javascript in the browser environment and rely on the hardware instruction set to keep us safe? That really seems like the major problem here. I don't see how anyone could ever expect to run potentially hostile web scripts at full native speed. Nor why they would want to if they bother to stop and think about it.

      I know I have to let users see some dancing bunnies sometimes, but do the bunnies have to dance fast? Especially so fast they can't pause for some basic software bounds-checking.

    3. Re:Of course he does by citizenr · · Score: 3, Informative

      >The implementation didn't suck

      Dude, intel implementation IGNORED privilege boundaries.

      --
      Who logs in to gdm? Not I, said the duck.
    4. Re:Of course he does by Wrath0fb0b · · Score: 2

      Dude, intel implementation IGNORED privilege boundaries.

      It didn't IGNORE them, it speculatively executed past them and then ROLLED BACK all visible result.

      The bug was not in executing over the boundary at all, it was that the roll-back did not also reverse the side effects to the cache.

  2. Speculative Executive? by Anonymous Coward · · Score: 3, Funny

    A guy in a suit that makes predictions?

    1. Re: Speculative Executive? by Anonymous Coward · · Score: 5, Informative

      Damn, they fixed the headline. Just so they can't hide it, the original headline was "Despite 'Painful' Spectre Response, Linus Torvalds Says He Still Loves Speculative Executive"

  3. Itanium beats x86 by Anonymous Coward · · Score: 5, Interesting

    According to http://secure64.com/not-vulnerable-intel-itanium-secure64-sourcet,

    The Itanium platform is naturally immune to both Spectre and Meltdown precisely because the complex, expensive methods used to speed up a 44-year old architecture are completely absent in Itanium.

    Itanium execution is explicitly parallel. It is the job of the compiler or coder to lay out the instructions and tell the hardware what can be done in parallel. Linus once quipped that he’d like to see an out-of-order Itanium (probably something he regrets saying, now), showing himself clueless about what EPIC and Itanium were about.

    Without out-of-order execution, there is no way for the Meltdown attack to work.

    Likewise, there is no speculative execution in Itanium. Instead, the architecture provides powerful branch prediction and predication, a concept generalized from ARM (sadly, abandoned in AArch64) to avoid branching altogether.

    1. Re:Itanium beats x86 by Waffle+Iron · · Score: 2

      It would probably be easy to make an X86 just as safe and just as slow as the Itanium by simply disabling X86 speculative features altogether.

    2. Re:Itanium beats x86 by Sique · · Score: 3, Informative
      Branch prediction is speculative execution. If I have a pipelined processor, and the process execution arrives at a branch statement, I can either hold execution until the condition for the branch statement is calculated. Then the pipelines of my processor run empty until the calculation of the condition has finished. Or I predict the branch the execution is going to and start to fill up the execution pipeline with the commands of the branch I predicted and start decoding and executing them. But that is speculative, as the exact value of my condition is not known yet.

      Branch prediction was introduced to keep the pipelines of the processor as much filled as possible. Branch prediction without speculative execution does not make any sense. Why would I try to estimate beforehand what branch the process is taking when I don't use that estimate for anything?

      --
      .sig: Sique *sigh*
  4. Suggestion: by Gravis+Zero · · Score: 3, Insightful

    Intel should show a bit of appreciation and donate like... ten million to a large pool of unfunded/underfunded open source software projects (especially projects with kernels that had to make fixes). Frankly, it would be a good PR move in the wake of their eternally shitty chips and make less people hate them.

    As for me, I still know they are anti-competitive rat bastards and will keep buying AMD.

    --
    Anons need not reply. Questions end with a question mark.
    1. Re:Suggestion: by MAXOMENOS · · Score: 4, Informative

      Intel is a Platinum Member of the Linux Foundation - which, btw, doesn't just sponsor the Linux kernel, but a bunch of projects, similarly to the Apache Foundation. Does this satisfy?

    2. Re:Suggestion: by Waffle+Iron · · Score: 2

      There are lots of members of the Linux Foundation, but most of them don't repeatedly inflict thousands of man-hours of emergency bug fix work on the core developers.

    3. Re:Suggestion: by Andtalath · · Score: 5, Informative

      Intel is by far the single company writing most of the linux kernel.
      Nr 1: Intel 12.9%
      Nr 2: Red Hat 8.0%
      The rest are 4% or under, while about 15% can not be attributed to companies.

      Meaning, a lot of those man-hours ARE intel man-hours, especially since they primarily focus on making their own hardware work well in linux...

    4. Re:Suggestion: by Anonymous Coward · · Score: 2, Interesting

      I wonder how much of that time is dedicated to sabotage their competitors.

      Like the first Intel-sourced Meltdown-patches explicitly hamstrung all x86 cpus in the name of "security", and the AMD people had quite a fight to stop it from being in inflicted on them, remember?

      I wonder how much of that is going on that we never hear of.

    5. Re:Suggestion: by drinkypoo · · Score: 4, Interesting

      And yet the only thing that works better with intel than AMD under Linux is power management. Why does it take so much more code for intel hardware to work correctly than AMD? Errata?

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  5. Maybe. by Hallux-F-Sinister · · Score: 4, Insightful

    Despite 'Painful' Spectre Response, Linus Torvalds Says He Still Loves Speculative Execution

    I love speculative execution too... in theory. Hypothetically. In truth, how I feel about it depends on certain considerations, to be determined.

    --
    Our reign has gone on long enough. Indeed. Summon the meteors.
  6. Re:Torvalds is a moron by Z00L00K · · Score: 2

    OpenVMS for life in the security realm.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  7. It's somewhat sad that then people didn't ... by Plumpaquatsch · · Score: 2
    Wow, careful there Linus. Forgot all about the Copy On Write bug that you fixed in the Linux kernel in 2005, but which you then unfixed, declared "theoretical" and which was then ignored for over a decade until it hit the fan in 2016?

    This is an ancient bug that was actually attempted to be fixed once (badly) by me eleven years ago [] but that was then undone due to problems on s390 [W]hat used a purely theoretical race back then has become easier to trigger.

    https://nakedsecurity.sophos.com/2016/10/21/linux-kernel-bug-dirtycow-easyroot-hole-and-what-you-need-to-know/

    --
    Of course news about a fake are Fake News.