- Aug 27, 2021
-
-
Florian Fischer authored
-
- Aug 24, 2021
-
-
Florian Schmaus authored
[Debug] fix nanos in log timestamp See merge request i4/manycore/emper!242
-
Florian Fischer authored
The timestamp consists of <hour><minutes>.<nanos> but the calculation of the nanos in the current minute was broken. A minute are 60 * 10^9 nanoseconds and not 10^9.
-
- Aug 23, 2021
-
-
Florian Schmaus authored
[liburing] bump the used wrap See merge request i4/manycore/emper!241
-
Florian Fischer authored
Now EMPER builds using the liburing wrap succeed because they no longer include liburing/src which contains a custom syscall header.
-
- Aug 20, 2021
-
-
Florian Schmaus authored
[Makefile] Make static-analysis depend on iwyu See merge request i4/manycore/emper!240
-
Florian Schmaus authored
[build] Emit a message if liburing subproject is used See merge request !239
-
Florian Schmaus authored
The ninja 'iwyu' target does not depend nor generates compile_commands_wo_subprojects/compile_commands.json. Hence iwyu would fail if the database is not yet generated or run with an outdated compile_commands.json. Instead of iwyu being added to STATIC_ANALYSIS_NINJA_TARGETS, we now have the static-analysis make target depend on iwyu. This ensures that compile_commands_wo_subprojects/compile_commands.json is generated or updated (if required) before iwyu is run.p
-
- Aug 19, 2021
-
-
Florian Schmaus authored
-
Florian Schmaus authored
[IO] add shutdown(3) support See merge request i4/manycore/emper!190
-
Florian Fischer authored
-
Florian Schmaus authored
Consume liburing as meson wrap if native is not recent enough See merge request i4/manycore/emper!238
-
Florian Schmaus authored
[Future] Also log 'res' in LOGD of setCompletion(int32_t res) See merge request !237
-
Florian Schmaus authored
[GlobalIoContext] Add CompleterSchedParam option See merge request i4/manycore/emper!236
-
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
It can't hurt to provide more information in log messages, especially 'res' is a good candidate in this case.
-
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 i4/manycore/emper!233
-
Florian Schmaus authored
This adds an option to make the scheduling parameters of the completer thread configurable via a meson option.
-
- 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 i4/manycore/emper!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 i4/manycore/emper!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
-