Menu
Sign In Search Podcasts Charts People & Topics Add Podcast API Blog Pricing

Eliza Weisman

๐Ÿ‘ค Speaker
138 total appearances

Appearances Over Time

Podcast Appearances

Oxide and Friends
Crates We Love

when compiling for arm you will actually see like loads and stores reordered in ways that will result in this data race that you've never seen in real life and so you've used loom it sounds like to actually debug weight and lock free data structures i have learned used it not to debug weight and lock free data structures so much as to learn that my weight and lock free data structures are wrong

Oxide and Friends
Crates We Love

when compiling for arm you will actually see like loads and stores reordered in ways that will result in this data race that you've never seen in real life and so you've used loom it sounds like to actually debug weight and lock free data structures i have learned used it not to debug weight and lock free data structures so much as to learn that my weight and lock free data structures are wrong

Oxide and Friends
Crates We Love

it's like it will log um you know i'm doing this operation at this time and it will try to tell you it it's logging is like somewhat useful it will try to use track collar a lot so that it like captures like where was this mutex constructed in the program at what line uh where was this atomic constructed at what line was it accessed at what line was this um this unsafe cell accessed

Oxide and Friends
Crates We Love

it's like it will log um you know i'm doing this operation at this time and it will try to tell you it it's logging is like somewhat useful it will try to use track collar a lot so that it like captures like where was this mutex constructed in the program at what line uh where was this atomic constructed at what line was it accessed at what line was this um this unsafe cell accessed

Oxide and Friends
Crates We Love

And which thread did that? Or which simulated thread in this test that you've written? and it will try to sort of give you some helpful information about that.

Oxide and Friends
Crates We Love

And which thread did that? Or which simulated thread in this test that you've written? and it will try to sort of give you some helpful information about that.

Oxide and Friends
Crates We Love

But honestly, it also is just sort of very useful as a trial and error mechanism that sometimes you just sort of end up going, oh, I think I understand what the problem is, and I'm going to kind of permute the program a little bit, and I'm going to run it through Loom again, and maybe now this model will actually, you know, after running through tens of thousands of iterations, I've actually not found anything that causes a data race.

Oxide and Friends
Crates We Love

But honestly, it also is just sort of very useful as a trial and error mechanism that sometimes you just sort of end up going, oh, I think I understand what the problem is, and I'm going to kind of permute the program a little bit, and I'm going to run it through Loom again, and maybe now this model will actually, you know, after running through tens of thousands of iterations, I've actually not found anything that causes a data race.

Oxide and Friends
Crates We Love

Or a deadlock, it also does deadlock detection, and it has a leak detection facility similarly. If you also use looms, wrappers around box or other ways of allocating and deallocating, it will tell you it leaked a box or an arc. And again, the thing about this is that it sounds at the surface level similar to tools like

Oxide and Friends
Crates We Love

Or a deadlock, it also does deadlock detection, and it has a leak detection facility similarly. If you also use looms, wrappers around box or other ways of allocating and deallocating, it will tell you it leaked a box or an arc. And again, the thing about this is that it sounds at the surface level similar to tools like

Oxide and Friends
Crates We Love

t-san or asan or valgrind but it's actually quite different because it's a model checker rather than a sanitizer that you run your program under and then get back oh while it was executing it did a bad thing but you know it's possible that you'll just never see the bad thing happen during that execution whereas with this sort of deterministic model checking

Oxide and Friends
Crates We Love

t-san or asan or valgrind but it's actually quite different because it's a model checker rather than a sanitizer that you run your program under and then get back oh while it was executing it did a bad thing but you know it's possible that you'll just never see the bad thing happen during that execution whereas with this sort of deterministic model checking

Oxide and Friends
Crates We Love

Of course, there might be bugs in the model checker, or you might have set bounds on how much it can explore the state space. And you might have missed a bug. But if you set aside those things, you know that you've actually deterministically explored everything that the compiler is allowed to generate. So anything that is outside of that is not permitted by the model.

Oxide and Friends
Crates We Love

Of course, there might be bugs in the model checker, or you might have set bounds on how much it can explore the state space. And you might have missed a bug. But if you set aside those things, you know that you've actually deterministically explored everything that the compiler is allowed to generate. So anything that is outside of that is not permitted by the model.

Oxide and Friends
Crates We Love

Describe a little bit how this comes back to you. Yeah, this stuff is incredibly hard to reason about. And every time you think that you're actually good at it, that's very dangerous, right? Because this stuff is incredibly difficult for us to deterministically explore all of the interleaves permitted by the model in our head.

Oxide and Friends
Crates We Love

Describe a little bit how this comes back to you. Yeah, this stuff is incredibly hard to reason about. And every time you think that you're actually good at it, that's very dangerous, right? Because this stuff is incredibly difficult for us to deterministically explore all of the interleaves permitted by the model in our head.

Oxide and Friends
Crates We Love

And so it's just sort of like it has really kneecapped me every time I've used it. And it just sort of taught me about my own insignificance and how small my mind is relative to what is permitted by this extremely complex memory model.

Oxide and Friends
Crates We Love

And so it's just sort of like it has really kneecapped me every time I've used it. And it just sort of taught me about my own insignificance and how small my mind is relative to what is permitted by this extremely complex memory model.