Ian Henriksen

Results 178 comments of Ian Henriksen

Case in point: https://github.com/sandialabs/qthreads/blob/d6ce514a70c65b74c5e04906615ec51c7f288e0f/src/syncvar.c#L263-L268 Basically the assumption described in that comment isn't true for ARM and this idiom is (rightly) being flagged by the thread sanitizer.

Alright, I did some more reading on this this morning. Apparently doing mixed-size atomics within the same block of memory *is* allowed by the x86 and ARM memory models as...

Actually this is fixed in #235. It can be closed once that's merged. Long story elsewhere (#215). Essentially we can get by without 128 bit atomics. Mixed-size atomics should be...

Another example in `aligned_writeFF_basic`: https://github.com/sandialabs/qthreads/blob/d6ce514a70c65b74c5e04906615ec51c7f288e0f/src/feb.c#L1155 can be run by different threads simultaneously and result in a racy write to the same address regardless of what we're doing with memory barriers.

Alright, the `hello_world_multi` fail seems to have been resolved by a different PR. The `writeFF` test is deliberately creating a data race so we're planning to suppress that one. Closing...

Reopening this one. I missed a few things that need to be atomic because there are cases that only get hit with the distrib and sherwood schedulers. Examples Read: https://github.com/sandialabs/qthreads/blob/85c5389c4a89707515ea8a6a83eaf4defe7e6927/src/qthread.c#L493...

I think these were all fixed by https://github.com/sandialabs/qthreads/pull/250, though the Sherwood scheduler hasn't been fully cleared of sanitizer errors yet.

Okay, doing another round of careful review of the fences in FEBs seems to have fixed the bugs I was trying to address here. On the other hand, this patch...

Rebased to depend on #256 to avoid conflicts.

Okay, I think this is at least nominally working. There's something wrong where if we free the tsan fiber objects at the end it segfaults which is bizarre. Maybe something's...