emper merge requestshttps://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests2022-01-28T08:18:44Zhttps://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/322[CI] Move iwyu and clang-tidy out of the smoke-test stage2022-01-28T08:18:44ZFlorian Schmaus[CI] Move iwyu and clang-tidy out of the smoke-test stagehttps://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/321[CI] Bump container image to 1.202022-01-27T13:06:57ZFlorian Schmaus[CI] Bump container image to 1.20https://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/320Various improvements2022-01-26T15:04:16ZFlorian SchmausVarious improvementshttps://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/319[Runtime] Set a name for every worker thread2022-01-25T15:39:27ZFlorian Schmaus[Runtime] Set a name for every worker threadhttps://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/318[Context] Fix DBG message2022-01-25T14:41:23ZFlorian Schmaus[Context] Fix DBG messageThe thread local currentContext was already set to nullptr when we
logged it. Use the right field instead.The thread local currentContext was already set to nullptr when we
logged it. Use the right field instead.https://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/316[meson] add option to ignore wakeup hints2022-01-23T11:37:44ZFlorian Fischer[meson] add option to ignore wakeup hintsI think wakeup hints should never be ignored but having the option
seams usefull to observe their benefits/cost.I think wakeup hints should never be ignored but having the option
seams usefull to observe their benefits/cost.https://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/315[ScheduleOnTest] block worker thread if IO is not available2022-01-22T10:24:19ZFlorian Fischer[ScheduleOnTest] block worker thread if IO is not availableThe alpha fiber waits to ensure the worker threads are suspended before
starting to schedule work on specific threads.
emper::sleep uses an AlarmFuture and thus needs emper to be build with IO
support. If IO is not available we now just ...The alpha fiber waits to ensure the worker threads are suspended before
starting to schedule work on specific threads.
emper::sleep uses an AlarmFuture and thus needs emper to be build with IO
support. If IO is not available we now just block the whole worker thread.https://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/314[Runtime] Move EMPER_* environment variable handling into module2022-01-22T10:51:51ZFlorian Schmaus[Runtime] Move EMPER_* environment variable handling into moduleAlso add a DBG message that is emitted if such a EMPER_* environment
variable has been processed.Also add a DBG message that is emitted if such a EMPER_* environment
variable has been processed.https://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/313[Context] Move switchToOriginalStack() into module and add DBG statement2022-01-21T16:20:09ZFlorian Schmaus[Context] Move switchToOriginalStack() into module and add DBG statementhttps://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/312[Coordinator] allow listen socket port reuse2022-01-21T16:22:50ZFlorian Fischer[Coordinator] allow listen socket port reusehttps://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/311Improve log messages2022-01-18T15:47:31ZFlorian SchmausImprove log messageshttps://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/310[TimeoutTest] fix timeout return assertion for linux 5.162022-01-16T19:12:11ZFlorian Fischer[TimeoutTest] fix timeout return assertion for linux 5.16I could not identify the commit that changes this behavior but
it is reproducible on our bigboxes and my arch system.I could not identify the commit that changes this behavior but
it is reproducible on our bigboxes and my arch system.https://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/309[log] Use system_clock instead of high_resolution_clock2022-01-16T18:02:47ZFlorian Schmaus[log] Use system_clock instead of high_resolution_clockAccording 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_c...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.https://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/308[meson] Add use_bundled_deps option2022-01-14T09:22:55ZFlorian Schmaus[meson] Add use_bundled_deps optionhttps://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/307Optionally build with libc++2022-01-15T18:01:04ZFlorian SchmausOptionally build with libc++https://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/306[PipeSleepStrategy] Fix memory_order of atomic.store()2022-01-13T15:49:38ZFlorian Schmaus[PipeSleepStrategy] Fix memory_order of atomic.store()The memory order of stores must be one of relaxed, release, or
seq_cst. Using 'acquire' with a store is, not allowed.The memory order of stores must be one of relaxed, release, or
seq_cst. Using 'acquire' with a store is, not allowed.https://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/304[IoContext] fix types when tracking request in flight2022-01-12T07:49:12ZFlorian Fischer[IoContext] fix types when tracking request in flightThe count used to track the requests is unsigned and negating it before
using it as long does not what we want.
C types are hard :(
Fixes: 799e505534f0dcda5412d538768edb0f2add5b6aThe count used to track the requests is unsigned and negating it before
using it as long does not what we want.
C types are hard :(
Fixes: 799e505534f0dcda5412d538768edb0f2add5b6ahttps://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/303[UnblockOnMainActorTest] adjust workload to log level2022-01-11T16:51:11ZFlorian Fischer[UnblockOnMainActorTest] adjust workload to log levelThe 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/em...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.https://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/302[Dispatcher] replace deprecated pthread_yield with sched_yield2022-01-10T19:27:12ZFlorian Fischer[Dispatcher] replace deprecated pthread_yield with sched_yieldCompilation 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
```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
```https://gitlab.cs.fau.de/i4/manycore/emper/-/merge_requests/301[meson] add boost as dependency2022-01-11T09:40:34ZFlorian Fischer[meson] add boost as dependencyI 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...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.