qthreads icon indicating copy to clipboard operation
qthreads copied to clipboard

Lightweight locality-aware user-level threading runtime.

Results 79 qthreads issues
Sort by recently updated
recently updated
newest added

Re-enables CI testing on Mac OS.

1.19

As reported by @ronawho > I'm seeing failures for a couple types of tests. > > One failure for tests that sleep, [here](https://github.com/chapel-lang/chapel/blob/4c48d6191fa2ea46e2dcb8964a6b2d2327f865a4/runtime/src/tasks/qthreads/tasks-qthreads.c#L950-L983) it seems like when doing sleeps from...

This adds the API calls needed to help the thread sanitizer correctly carry its happens-before relationships across context swaps.

I'm seeing a handful of thread sanitizer errors about race conditions in the `qutil` code. One example: apparently the macro invoked at https://github.com/sandialabs/qthreads/blob/a2d1dbadb80a161a4a287c1056348808b022ba04/src/qutil.c#L152, https://github.com/sandialabs/qthreads/blob/a2d1dbadb80a161a4a287c1056348808b022ba04/src/qutil.c#L156, and https://github.com/sandialabs/qthreads/blob/a2d1dbadb80a161a4a287c1056348808b022ba04/src/qutil.c#L160 includes both a read...

bug
medium priority
tsan

The current implementation of FEB synchronization depends on the guarantees of x86 loads and stores. For example, when running the `hello_world_multi` test with thread sanitizer enabled numerous data races show...

bug
medium priority
tsan

The thread sanitizer is flagging several issues with the Sherwood threadqueue too. Here are a few of them: Non-atomic write: https://github.com/sandialabs/qthreads/blob/a2d1dbadb80a161a4a287c1056348808b022ba04/src/threadqueues/sherwood_threadqueues.c#L322 Non-atomic read: https://github.com/sandialabs/qthreads/blob/a2d1dbadb80a161a4a287c1056348808b022ba04/src/threadqueues/sherwood_threadqueues.c#L845 Something non-atomic is still happening in...

bug
medium priority

The thread sanitizer is flagging various issues in the distrib threadqueue. A few examples: Non-atomic write: https://github.com/sandialabs/qthreads/blob/a2d1dbadb80a161a4a287c1056348808b022ba04/src/threadqueues/distrib_threadqueues.c#L207 Non-atomic read: https://github.com/sandialabs/qthreads/blob/a2d1dbadb80a161a4a287c1056348808b022ba04/src/threadqueues/distrib_threadqueues.c#L265 Non-atomic read: https://github.com/sandialabs/qthreads/blob/a2d1dbadb80a161a4a287c1056348808b022ba04/src/threadqueues/distrib_threadqueues.c#L216 Non-atomic write: https://github.com/sandialabs/qthreads/blob/a2d1dbadb80a161a4a287c1056348808b022ba04/src/threadqueues/distrib_threadqueues.c#L374 There are several more.

bug
medium priority

It's generally a good a idea to set the default symbol visibility to "hidden" while compiling a library so that internal functions don't get automatically included in the interface exposed...

enhancement
low priority

Our syncvar implementation also needs to be updated to use explicit atomic reads and writes instead of just relying on the x86 memory consistency guarantees. One example race: https://github.com/sandialabs/qthreads/blob/d6ce514a70c65b74c5e04906615ec51c7f288e0f/src/syncvar.c#L175 and...

bug
medium priority
tsan

We currently have a ton of old untested ifdefs for a bunch of crazy architectures that don't really exist in practice anymore (e.g. Tilera). We should get rid of that...

enhancement
medium priority