- Sep 13, 2021
-
-
Florian Fischer authored
When setting the environment variable EMPER_LOG_FILE=<logfile> EMPER will write its log messages to <logfile> instead of stderr. This removes the need for the mutex protecting std::cerr as well as multiple write calls to flush std:cerr. To efficiently write log messages to the log file the algorithm uses three memory 1MiB mapped views into <logfile> to store the log messages. One buffer is active, one is new, and one is old. The next buffer ensures that threads can write log messages even if the active buffer would overflows. The old buffer allows slower threads to still write safely while everyone else uses the active buffer. When a thread changes from the active buffer to the new buffer it is responsible to renew the current old buffer and changing the semantic of the buffers: * active -> old * next -> active * old -> next This buffer scheme allows wait-free logging. But the approach is NOT sound because delayed thread may still use the old buffer which gets renewed by the first thread touching the next buffer. But the likeliness for this situation decreases with bigger sizes of the buffers. ATTENTION: Using SCHED_IDLE for the completer may break this likeliness assumption. Add new CI test job with mmaped log files. This contains code cleanups Suggested-By:
Florian Schmaus <flow@cs.fau.de>
-
- Jul 26, 2021
-
-
Florian Fischer authored
-
- May 28, 2021
-
-
Florian Schmaus authored
-
- May 20, 2021
-
-
Florian Schmaus authored
-
- May 05, 2021
-
-
Florian Schmaus authored
-
- Apr 12, 2021
-
-
Florian Schmaus authored
-
Florian Schmaus authored
The EMPER option Meson option for stats is called 'stats' not 'worker_stats'.
-
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.
-
- Mar 22, 2021
-
-
Florian Schmaus authored
-
- Mar 01, 2021
-
-
Florian Schmaus authored
-
Florian Schmaus authored
This should improve the CI response time, as we now (potentially) perform iwyu and clang-tidy in parallel.
-
- Feb 25, 2021
-
-
Florian Schmaus authored
-
- Feb 23, 2021
-
-
Florian Fischer authored
LockedSemaphore is the already existening Semaphore using a mutex and a condition variable. PosixMutex is a thin wrapper around a POSIX semaphore. SpuriousFutexSemaphore is a atomic/futex based implementation prune to spurious wakeups which is fine for the worker wakeup usecase.
-
- Feb 20, 2021
-
-
Florian Schmaus authored
This adds yet another target "smoke-test-suite", which just runs all tests in the 'smoke' test suite. The static-analysis target was changed to include *all* static analysis thingies we have, even 'doc' as Doxygen does also do some checks that the documentation is "correct". The smoke-test target is also kept, as it allows developers to simply run all smoke tests. Furthermore, this adds some missing PHONY declarations in the Makefile. The gitlab-ci now runs the smoke-test-suite and static-analysis targets in two different jobs. Previously the smoke-test would also run the static-analysis target, which was not intended.
-
- Feb 02, 2021
-
-
Florian Schmaus authored
The 'static-analysis' Make target runs all static analysis we currently have. This allows to run at least static analysis, in cases where we are able build a particular EMPER configuration, but no able to execute it (e.g. because the kernel lacks io_uring support).
-
- Feb 01, 2021
-
-
Florian Fischer authored
-
- Jan 26, 2021
-
-
Florian Fischer authored
-
- Jan 14, 2021
-
-
Florian Schmaus authored
-
- Jan 13, 2021
-
-
Florian Schmaus authored
This also changes emper_log so that a std::ostringstream is used to assemble the log message.
-
- Jan 11, 2021
-
-
Florian Schmaus authored
-
- Dec 17, 2020
-
-
Florian Schmaus authored
Co-authored-by:
Florian Fischer <florian.fl.fischer@fau.de>
-
- Dec 05, 2020
-
-
Florian Schmaus authored
-
- Dec 02, 2020
-
-
Florian Fischer authored
-
- Nov 30, 2020
-
-
Florian Fischer authored
-
- Nov 27, 2020
-
-
Florian Schmaus authored
And fix the #include issues reported by the newer IWYU version.
-
- Nov 17, 2020
-
-
Florian Fischer authored
The default flavor is the preferred way to use the userspace library it uses the sys_membarrier syscall or falls back to using userspace membarriers. This adds the liburcu dependency which must be installed regardless the 'liburcu' meson option.
-
- Nov 10, 2020
-
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
-
- Nov 05, 2020
-
-
Florian Schmaus authored
-