Bryan Cantrill
๐ค SpeakerAppearances Over Time
Podcast Appearances
I assume. Do you want to describe what we saw on the internet and where that kind of led you?
I assume. Do you want to describe what we saw on the internet and where that kind of led you?
Yes, and it has become a Hacker News story on January 1st, 2018, if memory serves. And... I think I am. I mean, certainly, Alex, I'm sure saw it first. I definitely DM'd you being like, are we? Do you think this affects us? You're like, I don't know. We're learning about this for the first time.
Yes, and it has become a Hacker News story on January 1st, 2018, if memory serves. And... I think I am. I mean, certainly, Alex, I'm sure saw it first. I definitely DM'd you being like, are we? Do you think this affects us? You're like, I don't know. We're learning about this for the first time.
And this is us learning about Spectre and Meltdown and then discovering that we are vulnerable and we are running in production and a public cloud and Meltdown in particular. was really, really acute. John Masters had done terrific work having a real vivid proof of concept of Meltdown.
And this is us learning about Spectre and Meltdown and then discovering that we are vulnerable and we are running in production and a public cloud and Meltdown in particular. was really, really acute. John Masters had done terrific work having a real vivid proof of concept of Meltdown.
I... You know, it's funny. Like that is definitely like not a question we were going to go answer because it was like, it's not actionable. It's you're just like, how far is it down to the bottom? And it's like, it is enough. And you're at a height where you're going to die and nothing else actually matters. So it's like, beyond that, right.
I... You know, it's funny. Like that is definitely like not a question we were going to go answer because it was like, it's not actionable. It's you're just like, how far is it down to the bottom? And it's like, it is enough. And you're at a height where you're going to die and nothing else actually matters. So it's like, beyond that, right.
It was a lot. And Alex and Robert needed to go implement kernel page table isolation. And I mean, Robert, maybe that doesn't stand out for you as much as it does for me, but that is one of the singular engineering efforts I feel I've ever been kind of in the proximity of. I mean, it was really... extraordinary.
It was a lot. And Alex and Robert needed to go implement kernel page table isolation. And I mean, Robert, maybe that doesn't stand out for you as much as it does for me, but that is one of the singular engineering efforts I feel I've ever been kind of in the proximity of. I mean, it was really... extraordinary.
Maybe the pressure was clarifying because you're just like, well, I didn't create this problem. It's very clear what to go do. There's not a question about what is the highest priority thing to go do, which I feel is something as engineers we always grapple with. It's like the highest priority thing is to go do this neurosurgery on the VM system.
Maybe the pressure was clarifying because you're just like, well, I didn't create this problem. It's very clear what to go do. There's not a question about what is the highest priority thing to go do, which I feel is something as engineers we always grapple with. It's like the highest priority thing is to go do this neurosurgery on the VM system.
but could you talk a little bit about the problem we were solving? Like what was the problem that we needed to go solve? What actually is this? And this is to be clear, this is for meltdown, not for specter, but meltdown was a much more acute.
but could you talk a little bit about the problem we were solving? Like what was the problem that we needed to go solve? What actually is this? And this is to be clear, this is for meltdown, not for specter, but meltdown was a much more acute.
And this has always been in x86. I mean, other architectures have done, like Spark did things differently with address space identifiers.
And this has always been in x86. I mean, other architectures have done, like Spark did things differently with address space identifiers.
And to be clear, the way you would do that is because you can, what you are controlling, you should not have been able to control, but you are able to get this thing to do a load for you, but you can't see the results. So the trick is how do I exploit the side effects of that load, namely allocating in the cache and, And then what can I go do to exploit those?
And to be clear, the way you would do that is because you can, what you are controlling, you should not have been able to control, but you are able to get this thing to do a load for you, but you can't see the results. So the trick is how do I exploit the side effects of that load, namely allocating in the cache and, And then what can I go do to exploit those?
And the things you can go support, as it turns out, you can have a conditional branch that then also gets executed speculatively. And then that can do something else in the cache that you can then go observe the side effects of. So you can kind of chain together.
And the things you can go support, as it turns out, you can have a conditional branch that then also gets executed speculatively. And then that can do something else in the cache that you can then go observe the side effects of. So you can kind of chain together.