- Sep 05, 2022
-
-
Florian Fischer authored
When the custom logic of the IO-based sleep strategies returns false we already have set the sleeper state to Sleeping and must reset it.
-
Florian Fischer authored
With Linux 5.18 io_uring supports sending notifications between io_urings. This removes the need of writing to a specific eventfd to notify specific sleeping workers. This greatly reduces the complexity of the sued algorithm because we do not longer need to prepare two sleeps in an atomic way. The notify specific algorithm no can be similar to the one used by the semaphore implementation. The notifier sets the state of the specific worker to Notified and if its was previously sleeping it is responsible to send a wakeup message. When a worker is going to sleep it sets its state to Running if it was notified the state is reset and the sleep attempt skipped. Otherwise a global read is prepared if needed and the worker waits on its io_uring.
-
Florian Fischer authored
-
Florian Fischer authored
-
Florian Fischer authored
-
Florian Fischer authored
Eventfds are pollable (no iow thread is blocked reading from the IO object) contrary to waitfds. And using pipes seams also rather excessive especially since we ensure that only a single notification is written before it is consumed. This makes the code of the IO-based sleep strategies easier and I would expect also faster.
-
Florian Fischer authored
-
Florian Fischer authored
Introduce AbstractIoSleepStrategy holding most of the code needed for a sleep strategy using an IO object fur suspension/notification. This changes are used in future patches to implement more IO-based sleep strategies.
-
Florian Fischer authored
-
- Jul 20, 2022
-
-
Florian Schmaus authored
[gitlab-ci] Bump debian-testing-dev image to 1.24 See merge request i4/manycore/emper!410
-
- Jul 19, 2022
-
-
Florian Schmaus authored
-
Florian Schmaus authored
-
- Jul 12, 2022
-
-
Florian Fischer authored
use liburing 2.2 wrap file provided via meson wrapdb See merge request i4/manycore/emper!405
-
Florian Fischer authored
-
Florian Fischer authored
fix Future cancellation when using SINGLE_URING See merge request i4/manycore/emper!407
-
Florian Fischer authored
When using the SINGLE_URING configuration the Future semaphore is used to ensure that a forgotten Future is dropped after it is prepared and not needed anymore. Using the future after signaling its semaphore and thus allowing its concurrent destruction is obviously broken. Signal the semaphore after all preparation work is done. Fixes: 9c0f2143
-
Florian Fischer authored
Fixes: 3fb3892b
-
Florian Schmaus authored
[Semaphore] make default constructor more explicit See merge request i4/manycore/emper!408
-
Florian Fischer authored
The CancelFutureTest fails for libc++ because it uses two emper::Semaphores to coordinate the involved fibers. Using gcc and stdlibc++ the default constructor initialized the semaphore count to 0. The default constructor using clang and libc++ does not initialize the semaphore count member and thus causing the CancelFutureTest to misbehave.
-
- Jun 10, 2022
-
-
Florian Schmaus authored
Add the Big Fancy Pulser 9000 (BFP 9K) evaluation See merge request !397
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
[README] Fibirl uses spawn/sync as keywords (and no longer fork/join) See merge request i4/manycore/emper!403
-
- Jun 09, 2022
-
-
Florian Schmaus authored
-
Florian Schmaus authored
[io/Stats] For AlarmFutures (TIMEOUT) expect them to return ETIME See merge request i4/manycore/emper!402
-
Florian Schmaus authored
[Makefile] Add asan(-test) targets See merge request i4/manycore/emper!398
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
LTO See merge request i4/manycore/emper!401
-
Florian Schmaus authored
-
Florian Schmaus authored
This prevents a linker error because of undefined symbols when LTO is used.
-
- Jun 08, 2022
-
-
Florian Schmaus authored
[Runtime] Switch logging of env var handling from DBG() to LOGI() See merge request i4/manycore/emper!400
-
Florian Schmaus authored
Also use std::boolalpha to print ture/false.
-
Florian Schmaus authored
[SpuriousFutex2Semaphore] Add missing emper-config.h include See merge request i4/manycore/emper!399
-
Florian Schmaus authored
Fixes: f4e72a97 ("[iwyu] Fix includes as per iwyu 0.18")
-
- Jun 05, 2022
-
-
Florian Schmaus authored
[ContextManager] Remove the put/get free context cycle See merge request i4/manycore/emper!396
-
Florian Schmaus authored
The put/get free context cycle in ContextManager::start() (if continuation stealing is enabled) became unnecessary with c66551bf ("[Context] Use 'jmp' instead of 'ret' to kickoff the context").
-
Florian Schmaus authored
Fix ContextManager with MemoryManager See merge request i4/manycore/emper!395
-