zephyr/subsys/logging
Krzysztof Chruściński a68cdb0558 logging: Optimize handling of simple and common log messages
Some compilers (e.g. riscv32) does not handle well complex macros
for logging. Generated code is bigger than expected (e.g. riscv32
code is almost twice bigger than cortex-m code). Use of logging can
lead to unexpected code increase.

To handle that an analysis of the zephyr code base was performed and
it shown that 75-80% of logs are simple strings with 0 arguments
(~45%), one 32 bit argument (~26%) or two 32 bit arguments (~6%).
Given that a set of dedicated macro were created which are applied
to those 3 cases which on 32 bit platform create very simple log
messages without padding or alignment needed.

Such dedicated macros save up to 40% of code (riscv32) and also
executes 30% faster (arm cortex and riscv32).

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2023-10-27 10:50:39 +02:00
..
backends logging: net: changing syslog server address while running bug 2023-09-29 16:27:04 +02:00
mipi_syst
CMakeLists.txt logging: cmake: Remove duplicate source entry 2023-07-07 09:20:11 +02:00
Kconfig
Kconfig.filtering
Kconfig.formatting logging: Add option to store tid in the log message 2023-08-31 14:08:19 +02:00
Kconfig.frontends
Kconfig.links
Kconfig.misc logging: Optimize handling of simple and common log messages 2023-10-27 10:50:39 +02:00
Kconfig.mode logging: log_frontend: Add optional API for common messages 2023-10-27 10:50:39 +02:00
Kconfig.processing ztest: remove old ztest api 2023-10-20 15:04:29 +02:00
Kconfig.template.log_config
Kconfig.template.log_config_inherit
Kconfig.template.log_format_config
log_cache.c logging: fix few mismatched CONTAINER_OF 2023-08-31 14:08:31 +02:00
log_cache.h
log_cmds.c
log_core.c logging: log_core: correct timeout of -1 ms to K_FOREVER 2023-10-16 12:06:42 +02:00
log_frontend_dict_uart.c logging: fix few mismatched CONTAINER_OF 2023-08-31 14:08:31 +02:00
log_link_ipc_service.c
log_mgmt.c logging: return actual filter level when runtime filter is disabled 2023-09-29 09:48:49 +02:00
log_minimal.c
log_msg.c logging: Optimize handling of simple and common log messages 2023-10-27 10:50:39 +02:00
log_multidomain_link.c
log_output_custom.c
log_output_dict.c
log_output_syst.c logging: rename shadow variables 2023-08-22 11:39:58 +02:00
log_output.c logging: Fix misuse of const and k_tid_t 2023-10-20 15:08:42 +02:00