- Feb 23, 2022
-
-
Florian Fischer authored
Fix fsearch by using a sharded file buffer See merge request !352
-
- Feb 22, 2022
-
-
Florian Fischer authored
Each worker thread has it own stringstream per ShardedFileBuffer. All streams are joined and flushed to the file when a ShardedFileBuffer is destructed. Flushing a ShardedFileBuffer is not thread-safe and must not be called concurrently to any modifications to the ShardedFileBuffer. Use a ShardedFileBuffer to accumulate and print all paths during fsearch.
-
- Feb 21, 2022
-
-
Florian Fischer authored
-
Florian Schmaus authored
[StealingResult] Improve docstring See merge request i4/manycore/emper!349
-
Florian Fischer authored
fsearch: write only found files to stdout and use implicit file offset See merge request i4/manycore/emper!350
-
Florian Schmaus authored
-
Florian Schmaus authored
Use std::function based factory See merge request i4/manycore/emper!71
-
Florian Fischer authored
In the emper-fs-eval I would like to validate the output of the fsearch variants against a list of known files. Not writing any log messages to stdout make that easier. Use -1 as the offset of the write to stdout. Passing offset -1 means to use the file's implicit offset just like write(2). When using a tty as stdout offset 0 is fine but when redirecting stdout to a file 0 will cause that previously found paths will always be overwritten.
-
Florian Schmaus authored
-
- Feb 19, 2022
-
-
Florian Fischer authored
[LinuxVersion] Use "Construct on first use" idiom and add mutex See merge request i4/manycore/emper!348
-
Florian Schmaus authored
Use the "Construct on first use" idom for UTS Release (aka Linux version) initialization. The previous implementation was fragle and could lead to segfaults like __s2=0x7fffffffe480 "5.16.10-arch1-1", __s1=<optimized out>) at /usr/include/c++/11.2.0/bits/char_traits.h:409 __n=<optimized out>, __s=0x7fffffffe480 "5.16.10-arch1-1", __d=<optimized out>) at /usr/include/c++/11.2.0/bits/basic_string.h:359 __n=<optimized out>, __s=0x7fffffffe480 "5.16.10-arch1-1", __d=<optimized out>) at /usr/include/c++/11.2.0/bits/basic_string.h:354 __str=..., this=0x7ffff7fbd2a0 <emper::lib::LinuxVersion::globalVersion[abi:cxx11]>) at /usr/include/c++/11.2.0/bits/basic_string.h:739 at ../emper/lib/LinuxVersion.cpp:46 at /usr/include/c++/11.2.0/ext/new_allocator.h:79 if globalVersion's constructor was not yet called. This is the so called "static initialization order fiasco" in C++. While the mutex may not be strictly requires, as we do not call LinuxVersion's non-argument constructor nor getUtsRelease() concurrently, it can not hurt to have one.
-
Florian Fischer authored
do not define futex_waitv if already done in linux/futex.h See merge request i4/manycore/emper!345
-
Florian Fischer authored
-
Florian Schmaus authored
Make the implementations of the work-stealing queue(s) selectable See merge request !343
-
Florian Schmaus authored
Make subprojects See merge request i4/manycore/emper!344
-
Florian Schmaus authored
-
Florian Schmaus authored
-
- Feb 18, 2022
-
-
Florian Schmaus authored
io: make max unbounded io worker configurable See merge request i4/manycore/emper!340
-
Florian Fischer authored
Since Linux 5.15 io_uring can limit the number of iow threads created using IORING_REGISTER_IOWQ_MAX_WORKERS. Bump liburing wrap to version 2.1 to use io_uring_register_iowq_max_workers. Expose this via the meson variable io_unbounded_iow_max and the environment variable EMPER_IO_UNBOUNDED_IOW_MAX. See for an detailed explanation: https://blog.cloudflare.com/missing-manuals-io_uring-worker-pool
-
Florian Schmaus authored
This required to break an include cycle between Fibril and LockedQueue.
-
Florian Schmaus authored
Improve LinuxVersion See merge request i4/manycore/emper!342
-
Florian Schmaus authored
Memory manager See merge request i4/manycore/emper!339
-
- Feb 17, 2022
-
-
Florian Schmaus authored
A Linux version including non-digits, like 5.15.23-gentoo-dist, is very common and nothing we should warn about.
-
Florian Schmaus authored
[Runtime] Prefix EMPER workers names with EMPER See merge request i4/manycore/emper!341
-
Florian Schmaus authored
-
Florian Schmaus authored
Also add error handling to uname() call.
-
Florian Schmaus authored
-
- Feb 16, 2022
-
-
Florian Schmaus authored
-
Florian Schmaus authored
-
- Feb 15, 2022
-
-
Florian Schmaus authored
Add stack-usage stats See merge request i4/manycore/emper!338
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
add Context out of bounds write test See merge request i4/manycore/emper!336
-
Florian Schmaus authored
EMPER's Runtime now installs the SIGSEGV handler that checks if the segmentation fault was caused by hitting the guard page. If the guard page was hit, then the handler prints an error message. Also make ContextOutOfBoundsTest more robust by not creating an infinite recursion, which may be optmized out by the compiler.
-
- Feb 14, 2022
-
-
Florian Schmaus authored
[Emper.hpp] Remove unnecessary 'static' keyword See merge request i4/manycore/emper!337
-
- Feb 12, 2022
-
-
Florian Fischer authored
Add an SIGSEGV handler to the ContextOutOfBoundsTest to ensure that the received SIGSEGV is caused by accessing the guard page.
-
Florian Schmaus authored
-