- Apr 12, 2021
-
-
Florian Schmaus authored
This required that we backport iwyu_tool.py from https://github.com/include-what-you-use/include-what-you-use/pull/891 into tools/, which supports --load.
-
- Apr 11, 2021
-
-
Florian Schmaus authored
Fix race condition in io::Stats See merge request !160
-
Florian Schmaus authored
The workerStats std::vector was modified concurrently without being synchronized. The Stats are constructed together with IoContext and the worker IoContexts are constructed concurrently at the beginning of the worker loop. And in the Stats constructor the workerStats std::vector was modified by adding the Stats instance that is currently being constructed to it. Turns out, we don't need the workerStats data structure at all. We simply provide the global and worker IoContexts to io::Stats::printStats(). This results IMHO in a cleaner design of printStats() since there is no longer a data structure called workerStats, that in fact, not only holds the worker's stats. And while we at it, we rename io::Stats::printWorkerStats() to io::Stats::printsStats(), since it does, in fact, not only print the worker stats, but more or less all related worker stats.
-
Florian Schmaus authored
-
- Apr 08, 2021
-
-
Florian Schmaus authored
[EchoClient] collect the total amount of unexpected echos See merge request !157
-
Florian Fischer authored
My first test runs don't show unexpected echos. Therefore I think unexpected echos are rare and their average will always be 0 even if some sparse unexpected echos occur.
-
Florian Schmaus authored
[EchoClient] changes to easier debug our IO evaluation artifact See merge request !156
-
Florian Fischer authored
* Use emper::lib::math::RunningAverage instead of doing it manually * Count the unexpected Echos, print a error to the log and go continue * Return a duration and error message pair from our clientIteration* functions * Print the current iteration on error * Wait 10 seconds after an error before terminating
-
Florian Fischer authored
This seams more intuitive. A macro called EMPER_BUILD_STR actually returning a string and not a lambda which when called returns the built string.
-
Florian Schmaus authored
[EchoClient] improve unexpected echo output See merge request !155
-
Florian Fischer authored
Build up output string and don't incrementally output it to stderr to hopefully prevent error messages interleaving. Only output the least significant byte of the unsigned int cast. Always use two digits per byte and remove the whitespace. Should have used printf in the first place.
-
- Apr 06, 2021
-
-
Florian Schmaus authored
[EchoClient] output buffers if they do not match See merge request !154
-
Florian Fischer authored
-
- Apr 03, 2021
-
-
Florian Schmaus authored
[EchoClient] output the number of all echos done See merge request !153
-
- Apr 02, 2021
-
-
Florian Fischer authored
-
- Apr 01, 2021
-
-
Florian Schmaus authored
[tests] restructure tests directory See merge request !152
-
Florian Fischer authored
Move io and lib related tests into io/ and lib/. Our test dictionaries not must have a 'source' key with an array created with files(). This ensures we use always correct paths regardless of the actual directory we are currently in. Until https://github.com/mesonbuild/meson/issues/8608 is not solved we have to separately specify the tests name in a 'name' key.
-
- Mar 29, 2021
-
-
Florian Schmaus authored
[Debug.hpp] wrap actual logging in log-level constexpr See merge request !150
-
Florian Fischer authored
According to godbolt.org do { if constexpr(false) { break; } int foo = 42; foo++; } while(false); does result in code generation for gcc 10.2 and clang 11.0.1 as opposed to do { if constexpr(false) { int foo = 42; foo++; }} while(false); which does not result in code generation for both gcc and clang. And this simple change did indeed significantly increases our echo benchmark performance. We were probably creating a lot of std::stringstream objects without ever using them.
-
- Mar 24, 2021
-
-
Florian Schmaus authored
[Makefile] Make ninja consider the load average See merge request !149
-
Florian Fischer authored
[Runtime] print stats in the destructor not at exit See merge request !147
-
Florian Schmaus authored
-
Florian Fischer authored
-
Florian Schmaus authored
Various test-runner improvements Closes #14 See merge request !142
-
Florian Schmaus authored
[io/Stats] introduce named constants for special workerIds See merge request !148
-
Florian Schmaus authored
Allocate the Actor and the BPS on the heap as otherwise Fibers may access already destructed Actor data.
-
Florian Schmaus authored
While this does not fix anything, it appears sensible that we call stop() prior destruction.
-
Florian Schmaus authored
This should, at least for the EXIT_SUCCESS case, fix #14.
-
Florian Schmaus authored
The test fixture will automatically assume that the test was successful if emperTest() returns.
-
Florian Schmaus authored
Resetting the Future on the last iteration may cause the assert that the Future was never awaited to trigger (which is in the Future's destructor).
-
Florian Schmaus authored
-
Florian Schmaus authored
There was no reason that invokeTest() is part of the test-runner API.
-
Florian Fischer authored
-
Florian Schmaus authored
[tests] Do not set EMPER_STACKTRACE_ON_ABORTS See merge request i4/manycore/emper!146
-
Florian Schmaus authored
Stack unwinding via ligbcc does not (yet) work correctly within EMPER. As result, the unwinding often causes a segfault shadowing the actual cause.
-
- Mar 23, 2021
-
-
Florian Schmaus authored
[IO] make the behavior of the completer thread configurable See merge request i4/manycore/emper!143
-
Florian Schmaus authored
reduce log level for io_uring_submit -> -EBUSY message and fix TIME_NS See merge request !144
-
Florian Schmaus authored
[Debug] s/WDBG/DBG and always terminate a log messager with a new line See merge request !145
-
Florian Fischer authored
Rename the macro used to build up the debug message, to better reflect its generality. It can be used anywhere to build a string with C++ stream formatting. std::string s = EMPER_BUILD_STR("foo = " << 1 " , bar = " << bar(42)); Since WDBG was the only log macro without a terminating newline, which was in fact broken according to flow, we can remove it and the new line handling code in the LOG macro.
-
Florian Fischer authored
Available behaviors: * none - the completer thread is not started * schedule (default) - the completer thread will reap and schedule available completions from worker IoContexts * wakeup - the completer thread will wakeup all workers if it observes completions in a worker IoContext. The Fiber produced by the completion will be scheduled when the worker in which's IoContext the cqe lies reaps its completions.
-