- 03 Jun, 2020 1 commit
-
-
The strain_local resources can be used to get unique IDs for resources that would, in a serial execution, only be used once in the call chain. This is a first prototype implementation and needs further tesitng. The current implementation adds linear overhead to each steal proportional to the number of used resources. We might be able to reduce it, but for a first version it is fine.
FritzFlorian committed
-
- 29 May, 2020 2 commits
-
-
The flag can be used to run code annotated with PLS outside of a scheduler environment, i.e. the app does not crash if the code is called without context. The compile option allows to omit all spawn and sync calls during compilation, creating the equivalent serial code.
FritzFlorian committed -
FritzFlorian committed
-
- 27 May, 2020 1 commit
-
-
FritzFlorian committed
-
- 26 May, 2020 1 commit
-
-
FritzFlorian committed
-
- 19 May, 2020 1 commit
-
-
FritzFlorian committed
-
- 18 May, 2020 2 commits
-
-
FritzFlorian committed
-
Basic profiling works. Next steps are to 'refine' the interface, i.e. allow to disable parts of the profiling and better output for some stats. Maybe look at storing/loading the DAG's with stats to/from disk.
FritzFlorian committed
-
- 17 May, 2020 1 commit
-
-
Add key-points required to capture an execution DAG. Currently all data is in-memory and printed out. In future work it would be good to store the DAG's and/or process them further.
FritzFlorian committed
-
- 16 May, 2020 1 commit
-
-
Remove easy profiler for now. It might be useful for later on to get a grasp of general behaviour, but because of its issues with coroutines it is not worth profiling code with it right now.
FritzFlorian committed
-
- 24 Apr, 2020 3 commits
-
-
FritzFlorian committed
-
FritzFlorian committed
-
FritzFlorian committed
-
- 23 Apr, 2020 1 commit
-
-
FritzFlorian committed
-
- 17 Apr, 2020 2 commits
-
-
FritzFlorian committed
-
FritzFlorian committed
-
- 06 Apr, 2020 2 commits
-
-
FritzFlorian committed
-
FritzFlorian committed
-
- 30 Mar, 2020 3 commits
-
-
FritzFlorian committed
-
FritzFlorian committed
-
FritzFlorian committed
-
- 26 Mar, 2020 1 commit
-
-
I am not sure if this is appropriate, but it works and is no focus of this project.
FritzFlorian committed
-
- 25 Mar, 2020 1 commit
-
-
Make sure that the guard page leads to sigsegv as expected.
FritzFlorian committed
-
- 24 Mar, 2020 1 commit
-
-
It is now possible to use a memory mapped stack that throws a SIGSEV if thes coroutine stacks are exhausted.
FritzFlorian committed
-
- 18 Mar, 2020 1 commit
-
-
Remove the strict static memory allocation scheme in favour of placing objects on the heap at startup. This still keeps the requirements posed for modern, high performance embedded systems, but makes APIs a lot cleaner.
FritzFlorian committed
-
- 13 Mar, 2020 2 commits
-
-
The cas size could exceed an unsigned long, so we use the correct cas_integer type for the traded_cas_field representations.
FritzFlorian committed -
We fixed the bug in tsan causing it to crash after creating/deleting many fibers, because of that there is no need for this cache mechanism (you have to use the most recent clang build with the patch for it to work thought).
FritzFlorian committed
-
- 23 Feb, 2020 1 commit
-
-
We yield after num_thread failed steals in a row. This parameter can be tuned for better performance, but we stick to a sensible default just to prevent massive spinning.
FritzFlorian committed
-
- 09 Feb, 2020 2 commits
-
-
FritzFlorian committed
-
FritzFlorian committed
-
- 05 Feb, 2020 2 commits
-
-
FritzFlorian committed
-
Tsan does not cope well with rapidely destroyed/created fibers. As it is currently too much effort to fully investigate the tsan issue we work around it by caching the shourt lived fibers based on their stack base address. This allows us to use thread sanitizer for now.
FritzFlorian committed
-
- 03 Feb, 2020 1 commit
-
-
FritzFlorian committed
-
- 30 Jan, 2020 3 commits
-
-
Older CMAKE versions wont work with export targets in different directories. For now we simply add the context_switcher manually to the export target of pls.
FritzFlorian committed -
FritzFlorian committed
-
We still see very sporadic crashes, however the current version is at least a starting point for refactoring and debugging. Next steps have to be to re-enable tooling support (i.e. add code to let sanitizers do their work).
FritzFlorian committed
-
- 29 Jan, 2020 1 commit
-
-
The current version has race conditions and is hard to debug (especially because of the fibers, if a wrong thread executes on a fiber we get segfalts very fast). To combat this mess we now refactor the code bit by bit while also adding tests where it can be done with reasonably effort).
FritzFlorian committed
-
- 27 Jan, 2020 2 commits
-
-
The project is currently really messy and there are sporadic sigsevs. This indicates that we still have a race in our code. Thread Sanitizer does not work with our current implementation, as it needs annotations for fibers. The next step is to clean up the project and maybe add thread sanitizer support to our fiber implementation. This should help finding the remaining bugs.
FritzFlorian committed -
FritzFlorian committed
-
- 26 Jan, 2020 1 commit
-
-
FritzFlorian committed
-