- Apr 21, 2022
-
-
Florian Fischer authored
-
- Apr 10, 2022
-
-
Florian Schmaus authored
add io synchronous option See merge request !373
-
Florian Fischer authored
-
Florian Fischer authored
-
Florian Fischer authored
Eventfd's does not support seeking. This is also invalid code: int main() { int64_t b = 42; int efd = eventfd(0, 0); if (efd < 0) err(EXIT_FAILURE, "creating eventfd failed"); ssize_t res = pwrite(efd, &b, sizeof(b), 0); if (res != sizeof(b)) err(EXIT_FAILURE, "pwrite to evfd failed"); }
-
Florian Fischer authored
When EMPER is build with -Dio_synchronous each Future will be completed synchronously when calling Future::wait().
-
- Apr 08, 2022
-
-
Florian Schmaus authored
io: improve recursive_directory_walk See merge request !374
-
- Apr 06, 2022
-
-
Florian Fischer authored
* Add optional throttle Semaphore pointer to limit the number of spawned fn as well as directory walk fibers * Use const references to the passed functions instead of values * fsearch: Use max_running as fn and recursion throttle
-
- Apr 04, 2022
-
-
Florian Fischer authored
[EchoServers] improve the callback based echoserver See merge request !371
-
Florian Fischer authored
* Pass the IO results on the stack instead of storing them in the client object. * Terminate the runtime on quit to print stats. * Free Client objects.
-
Florian Schmaus authored
Run clang tidy in parallel See merge request !372
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
-
- Mar 30, 2022
-
-
Florian Schmaus authored
[tests] Infer test name from first test source file See merge request !370
-
Florian Schmaus authored
add assert message in future callback See merge request !369
-
Florian Schmaus authored
This also fixes a bug in source = test_dict['source'][0] so the source(s) used for the test was always only the first source file. I did/does not matter, as we do not have tests that span multiple source files (and I am not sure if we ever will have).
-
Florian Fischer authored
Add a message to help investigate CI failures for single-uring configurations like: https://gitlab.cs.fau.de/i4/manycore/emper/-/jobs/574828
-
- Mar 24, 2022
-
-
Florian Schmaus authored
[meson] Add build_only_emper_dep option See merge request !368
-
Florian Schmaus authored
-
- Mar 23, 2022
-
-
Florian Schmaus authored
[AbstractWorkStealingScheduler] assert in runtime system in pushBottom See merge request !367
-
- Mar 21, 2022
-
-
Florian Schmaus authored
-
Florian Schmaus authored
io: do not use IO_FORGOTTEN_FUTURES_SKIP_CQE on linux <= 5.17 See merge request !366
-
- Mar 17, 2022
-
-
Florian Fischer authored
Apparantly my assumption that io_uring ignores unknown cqe flags is wrong. And io_uring < Linux 5.17 completes forgotten futures with -EINVAL. Fixes: e140759d
-
- Mar 16, 2022
-
-
Florian Schmaus authored
[AbstractWorkStealingScheduler] Emit warning if overflow queue is used See merge request !365
-
- Mar 15, 2022
-
-
Florian Schmaus authored
incorporate new io_uring features See merge request !364
-
Florian Schmaus authored
-
Florian Fischer authored
-
Florian Fischer authored
We can not deal with cqes for forgotten Futures and not creating them prevents the kernel and userspace overhead introduced by them.
-
Florian Fischer authored
LinuxVersion::compare reported two versions as equal if it could find a new '.' in the first version but not in the second. But this is clearly wrong because it skips comparision of the valid last part. The comparision 5.16.12 >= 5.18 returned true because compare reported the version as equal after comparing the first parts and finding a second '.' in the first but not the second. Fix this behavior by marking the current position as the last but do not skip its comparision. Add tests for the desired behaviour.
-
Florian Fischer authored
Linux 5.18 introduces IORING_REGISTER_RING_FDS with e7a6c00dc77aedf27a601738ea509f1caea6d673. Registering the io_uring's fd prevents having to look it up for each io_uring_enter call reducing contention on the process file table. Jens Axboe reports good results in his fio based benchmarks and I see no reason for EMPER to not register the io_uring fds, especially because we never pass or share rings. Do not register the global io_uring since it is shared in the SINGLE_URING case or it is passed by the main thread to the completer thread breaking the assumption liburing has about the registered io_uring fd.
-
Florian Fischer authored
Liburing 2.2 and Linux 5.18 support IORING_REGISTER_RING_FDS, preventing the fget(ring_fd) overhead for each io_uring_enter call, as well as IORING_OP_MSG_RING, greatly simplifying the IO-based sleep strategy code.
-
- Mar 14, 2022
-
-
Florian Schmaus authored
Improve terminology See merge request !363
-
- Mar 05, 2022
-
-
Florian Schmaus authored
To avoid confusing the fork with a heavyweight (Unix) fork(), we use spawn/sync instead of fork/join in Fibril.
-
Florian Schmaus authored
While extensibility is still a feature of EMPER, a more important aspect is its efficiency.
-
- Mar 04, 2022
-
-
Florian Schmaus authored
Introduce EMPER_ASSERT_MSG See merge request !361
-
Florian Schmaus authored
[log] Improve timestamp format: HHMM.SS mmmuuunnn See merge request !360
-
- Mar 02, 2022
-
-
Florian Schmaus authored
-
Florian Schmaus authored
-