Add a zero-copy backend 33/278733/14
authorMichal Bloch <m.bloch@samsung.com>
Thu, 23 Jun 2022 14:51:54 +0000 (16:51 +0200)
committerMateusz Majewski <m.majewski2@samsung.com>
Tue, 30 Aug 2022 06:01:19 +0000 (08:01 +0200)
commitbc6a430b8240e8b2283ab3885f8015cb5ed80b9d
tree72a3e36b44b8ba2480a914063c16ec42c1e22c86
parent8dc31266bbb77d9bb94d3de1c7753ea725e08f4d
Add a zero-copy backend

This is the initial implementation of a zero-copy backend,
also known as 'zlog' in various places.

Many facilities (logutil, stdout redirection etc) are to be
implemented in further commits, only writing is supported
so far.

It aims to minimize the cost of writing logs above all else.
When it comes to perf, it's pushin' it to the max, rollin' deep, baby.

Some traits:
 + limited syscalls (one per N logs)
 + no needless copies (writes directly to destination)
 - no way to monitor logs efficiently (which also has
   consequences for features like QoS)
 - kernel-based and somewhat convoluted

Change-Id: I183ca7ee29aaeb6d24b2c5da96fc353f2c298d3e
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
19 files changed:
Makefile.am
documentation/overview.rst
include/dlogutil.h
include/logcommon.h
include/logconfig.h
include/zero_copy_backend.h [new file with mode: 0644]
src/libdlog/log.c
src/libdlog/log_zero_copy.c [new file with mode: 0644]
src/libdlogutil/lib.c
src/log-redirect-stdout/internal.c
src/logctl/logctl.c
src/logger/logger.c
src/logger/logger_internal.h
src/shared/logconfig.c
src/tests/config.c
src/tests/critical_log.c
src/tests/deduplicate_test.c
src/tests/libdlog_base_wrap.c
src/tests/libdlog_prio_filter_pos.c