qthreads
qthreads copied to clipboard
Lightweight locality-aware user-level threading runtime.
Once #310 and #311 are resolved, we need some kind of automated benchmarking system to run the benchmarks on a regularly scheduled interval to help alert us of performance regressions/improvements...
Not all tasks need or want an associated stack. We should have a programming model and interface that allows creating tasks that don't require context swaps for entry/exit.
After some kind of runtime environment update to the github actions CI runners (as of Wednesday 9/25) we're now seeing very occasional hangs during the CI tests. This affects all...
The current main execution loop is structured so that each qthread jumps back to the worker thread running it so that the worker thread can then jump to whichever qthread...
After re-enabling the queue test recently I'm seeing an extremely rare segfault in CI. Currently the only example is https://github.com/sandialabs/qthreads/actions/runs/11448461793/job/31852075400?pr=305. I can't reproduce this locally. Given that it's such an...
Due to some fundamental limitations of thread sanitizer's implementation it's not able to trace the happens-before relationships through our threadqueues reliably. I suspect this is causing most (if not all)...
We have some initial logic for detecting the cache line size using cpuid, but it doesn't really apply cleanly to the modern architectures that we care about now. It should...
In a release build (i.e. no `assert`), there is an unused variable warning in `syncvar.hpp` ```C++ int status = readFF(&ret); assert(status == QTHREAD_SUCCESS); ``` `status` is only used in the...
We need to confirm that we handle the memory fencing correctly for the case where a qthread suspends and then gets stolen to another shepherd. It's not currently obvious to...