- 17 Jan, 2022 5 commits
-
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
-
- 16 Jan, 2022 4 commits
-
-
Florian Schmaus authored
[log] Use system_clock instead of high_resolution_clock See merge request i4/manycore/emper!309
-
Florian Schmaus authored
[TimeoutTest] fix timeout return assertion for linux 5.16 See merge request i4/manycore/emper!310
-
Florian Fischer authored
I could not identify the commit that changes this behavior but it is reproducible on our bigboxes and my arch system.
-
Florian Schmaus authored
According to the 'Notes' section of https://en.cppreference.com/w/cpp/chrono/high_resolution_clock one should just use steady_clock or system_clock. Furthermore, the notes state that with GCC's libstdc++ high_resolution_clock is system_clock, but for LLVM's libc++ it depends on the configuration (and is steady_clock). But steady_clock has no to_time_t() member function. Hence we explicitly uses system_clock now, which always has to_time_t(), i.e. in libstdc++ and in libc++. This allows us to get rid of the GLIBCXX (libstdc++) specific code.
-
- 15 Jan, 2022 3 commits
-
-
Florian Schmaus authored
Optionally build with libc++ See merge request i4/manycore/emper!307
-
Florian Schmaus authored
-
Florian Schmaus authored
-
- 14 Jan, 2022 3 commits
-
-
Florian Schmaus authored
[meson] Add use_bundled_deps option See merge request i4/manycore/emper!308
-
Florian Schmaus authored
-
Florian Schmaus authored
-
- 13 Jan, 2022 6 commits
-
-
Florian Schmaus authored
[PipeSleepStrategy] Fix memory_order of atomic.store() See merge request i4/manycore/emper!306
-
Florian Schmaus authored
-
Florian Schmaus authored
The memory order of stores must be one of relaxed, release, or seq_cst. Using 'acquire' with a store is, not allowed.
-
Florian Schmaus authored
The memory order of stores must be one of relaxed, release, or seq_cst. Using 'acquire' with a store is, not allowed.
-
Florian Schmaus authored
-
Florian Schmaus authored
-
- 12 Jan, 2022 1 commit
-
-
Florian Schmaus authored
[IoContext] fix types when tracking request in flight See merge request i4/manycore/emper!304
-
- 11 Jan, 2022 5 commits
-
-
Florian Fischer authored
The count used to track the requests is unsigned and negating it before using it as long does not what we want. Fixes: 799e5055
-
Florian Schmaus authored
[UnblockOnMainActorTest] adjust workload to log level See merge request i4/manycore/emper!303
-
Florian Fischer authored
The UnblockOnMainActorTest regularly timeout in our CI which looks to be a regular timeout because I could easily reproduce the timeout on fauibig03. Hopefully this change fixes regular timeouts like https://gitlab.cs.fau.de/aj46ezos/emper/-/jobs/506757 in the CI and only leaves real faulty timeouts.
-
Florian Schmaus authored
[meson] add boost as dependency See merge request i4/manycore/emper!301
-
Florian Fischer authored
I setup a new development environment and emper did not compile because emper::io::Stats use the circular_buffer provided by boost. Boost was not installed and our build-system failed to detect it. This change adds the header-only boost dependency to emper. https://mesonbuild.com/Dependencies.html#boost The header-only dependency is enough to build emper default configuration. When linking against boost is required we use the 'modules' karg.
-
- 10 Jan, 2022 2 commits
-
-
Florian Schmaus authored
[Dispatcher] replace deprecated pthread_yield with sched_yield See merge request i4/manycore/emper!302
-
Florian Fischer authored
Compilation with gcc on ubuntu 21.10 fails because pthread_yield is apparently deprecated and should be replaced with sched_yield. gcc --version gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0
-
- 27 Dec, 2021 1 commit
-
-
Florian Schmaus authored
properly cancel future callbacks See merge request i4/manycore/emper!297
-
- 25 Dec, 2021 1 commit
-
-
Florian Fischer authored
* Document data races of a future's state. * Get and set a Future's state only through methods. This helps to add possibly needed atomic operations. * Use atomics to get/set cancel and prepare state in IO_SINGLE_URING vaiant * Add more IO debug messages * Use the BPS of Futures with callbacks similar to those of forgotten ones to signal their preparation. The preparation mark the last moment where the Future is used in EMPER and after that the memory can be dropped. ATTENTION: This means not that the used resources of the IO request can be dropped. The kernel may still use a supplied buffer for example. * Fix Future chain cancellation in SubmitActor
-
- 24 Dec, 2021 1 commit
-
-
Florian Fischer authored
Currently canceling Futures would never happen because we issued the cancel request only with the pointer of the future. This works more by coincidence than by design because the PointerTags::Future tagged onto the submitted future pointer is 0. This does not work for callbacks because they are tagged with a PointerTags != 0 and they don't use their callback pointer rather than the future pointer. Fix this by exporting the tagging from IoContext::prepareFutureChain into IoContext::createFutureTag and use this when submitting a cancel sqe. Warn the user that they have to manually take care of the memory safety of the callback because we can not await the callback in Future::cancel. Add a test case to CancelFutureTest.
-
- 22 Dec, 2021 7 commits
-
-
Florian Schmaus authored
[Common] introduce a CACHE_LINE_SIZE define See merge request i4/manycore/emper!299
-
Florian Schmaus authored
[SpuriousFutexSemaphore] futex are 32 bits on all platforms See merge request i4/manycore/emper!300
-
Florian Fischer authored
-
Florian Fischer authored
This define will be used in future patches.
-
Florian Fischer authored
Make Scheduler within Runtime public API See merge request i4/manycore/emper!298
-
Florian Schmaus authored
-
Florian Schmaus authored
The Runtime class was never a good place for inRuntime(): due its central role in EMPER's architecture, it causes easily include cycles. Furthermore, the API was not ideal, once we would move Runtime into emper::, it would become emper::Runtime::inRuntime(). We declare emper::Emper::inRuntime and emper::Emper::assertInRuntime() as static struct functions to avoid multiple definitions, and then use a constexpr function "alias" to have those functions available in the emper:: namespace.
-
- 17 Dec, 2021 1 commit
-
-
Florian Schmaus authored
[IO] overhaul SQPOLL support See merge request i4/manycore/emper!210
-