- Aug 19, 2021
-
-
Florian Fischer authored
Generate a new compile_commands database in compile_commands_wo_subprojects/ without the files in subprojects/. This new compile_commands database is than consumed by iwyu and clang-tidy. Co-Authored-By:
Florian Schmaus <schmaus@cs.fau.de> Suggested--By:
Florian Schmaus <schmaus@cs.fau.de>
-
Florian Fischer authored
-
Florian Fischer authored
-
Florian Schmaus authored
[IoContext] Add missing error handling in submitPreparedSqesAndWait() See merge request !235
-
Florian Schmaus authored
[IoContext] Remove duplicate CQE_BATCH_COUNT delcaration and definition See merge request !233
-
- Aug 18, 2021
-
-
Florian Schmaus authored
Within the do { reapAndScheduleCompletions() } while (io_uring_submit() == -EBUSY) loop, the return value of io_uring_submit could be a negative value other than EBUSY. In that case, we did not DIE. Looking at the SubmitActor, where we have a very similar loop, the error handling is correct. This changes the error handling in IoContext to match the one of SubmitActor, even though it has a little bit more overhead.
-
Florian Schmaus authored
-
Florian Fischer authored
[IO] Implement configurable "simple architecture" See merge request !230
-
Florian Fischer authored
-
Florian Fischer authored
Introduce a new meson option io_single_uring which causes EMPER to only use the GlobalIoContexts for all IO. To submit SQEs to the io_uring SQ SubmitActor is used. Futures can be in a new state where they are submitted to the SubmitActor but not to the io_uring yet. In this state isSubmitted && !isPrepared th Future must not be destroyed to ensure this we yield when forgetting a Future until it is prepared and thus it is safe to destroy it. This commit contains no optimizations (no batching, no try non blocking syscall first, ...) Refacter GlobalIoContext.cpp: * rename globalCompleter to completer * make the completer loop non-static
-
Florian Fischer authored
-
Florian Fischer authored
Move all definitions from emper.hpp in compilation unit See merge request !232
-
Florian Schmaus authored
-
Florian Schmaus authored
Move emper::sleep() implemention from header in compilation unit See merge request !231
-
Florian Schmaus authored
-
- Aug 11, 2021
-
-
Florian Schmaus authored
[AbstractWorkStealingScheduler] Get rid of "rand() % workerCount" See merge request !229
-
Florian Schmaus authored
The "rand() % workerCount" constructed used in the work-stealing scheduler is flawed. It has a bias toward lower worker IDs due the modulo operation. This is something I always wanted to get rid of, but never found the time to do it. Until know. Get rid of it and replace it with std::uniform_int_distribution<workerid_t> (as field the Worker instance). The main changes in AbstractWorkStealingScheduler are - use currentWorker->nextRandomWorkerId() (instead of the flawed construct) - currentWorker->getWorkerId() (instead of Runtime::getWorkerId())
-
- Aug 10, 2021
-
-
Florian Schmaus authored
[stats] blocked contexts See merge request !224
-
- Aug 09, 2021
-
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
Support distributing multiple echoclient over the network See merge request !228
-
Florian Fischer authored
-
- Aug 08, 2021
-
-
Florian Fischer authored
-
Florian Fischer authored
The Coordinator is used for our echo evaluation and implements a barrier style synchronization mechanism for processes spread across the network.
-
- Aug 02, 2021
-
-
Florian Schmaus authored
[meson] allow building EMPER on systems whithout <filesystem> See merge request i4/manycore/emper!221
-
Florian Schmaus authored
Add meson option for "check anywhere queue while stealing" See merge request !207
-
Florian Schmaus authored
-
Florian Schmaus authored
[io.hpp] add blocking functions using timeouts See merge request !226
-
Florian Schmaus authored
-
Florian Schmaus authored
[stats] Add max-queue-length stats to AbstractWorkStealingScheduler See merge request i4/manycore/emper!223
-
Florian Schmaus authored
-
- Jul 29, 2021
-
-
Florian Fischer authored
-
Florian Fischer authored
[echoclient] print a short description of parameters See merge request i4/manycore/emper!225
-
- Jul 28, 2021
-
-
Florian Fischer authored
-
- Jul 27, 2021
-
-
Florian Schmaus authored
Add docker tooling See merge request !219
-
- Jul 26, 2021
-
-
Florian Fischer authored
Check if std::filesystem::recursive_directory_iterator and std::filesystem::path are available before using those in EMPER code. We do not export the symbols using the not supported filesystem features in our public headers using preprocessor ifdef. But the code in the cpp files using it not removed using the preprocessor. To allow linkage we use a constexpr which throws a logic_error on runtime rendering the rest of the code dead und thus prevents its generation by the compiler. This methods allows the compiler to see the code in its analysis passes but does not fail during linking. Allow meson.build files in emper/ subdirectories add configuration options by consuming the conf_data object after all subdirectories were visited. Introduce a quasi naming standard for cpp feature flags in meson code: cpp_has_<namespace>_<feature> Examples: cpp_has_fs_path
-
Florian Fischer authored
-
Florian Fischer authored
Usage run "docker.sh <your command>" to execute <your command> in the docker image extracted from .gitlab-ci.yml in the emper root directory NOTE: seccomp filtering is disabled for now since io_uring_* syscalls are not working everywhere as expected.
-
Florian Schmaus authored
[fsearch] gracefully terminate the runtime to print the collected stats See merge request !222
-