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 kconfig: logging: Add LOG_MIPI_SYST_ARGS_BUFFER_SIZE option. 2022-08-17 12:07:08 +02:00
CMakeLists.txt logging: cmake: Remove duplicate source entry 2023-07-07 09:20:11 +02:00
Kconfig log_core: Add Kconfig symbol for init priority 2022-12-14 15:16:54 +01:00
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 logging: Add ipc_service log link 2022-10-17 10:16:53 +02:00
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 logging: Changed log template to consider default log level 2023-04-05 13:47:06 +02:00
Kconfig.template.log_config_inherit Logging: Add Kconfig template for log inheriting 2022-11-30 14:37:58 +01:00
Kconfig.template.log_format_config logging: enable setting custom logging output func 2022-10-06 19:15:35 -04:00
log_cache.c logging: fix few mismatched CONTAINER_OF 2023-08-31 14:08:31 +02:00
log_cache.h logging: Add log_cache module for caching remote names 2022-10-17 10:16:53 +02:00
log_cmds.c iterable_sections: move to specific header 2023-05-22 10:42:30 +02:00
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 logging: Add ipc_service log link 2022-10-17 10:16:53 +02:00
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 logging: Add remote link and backend 2022-10-17 10:16:53 +02:00
log_output_custom.c logging: support custom timestamp formatting 2023-04-04 13:41:17 +02:00
log_output_dict.c logging: Removing v2 suffix from logging names 2022-06-23 15:46:37 -04:00
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