logging: Adapt logging to use new cbprintf feature

Adapt logging to always use static packaging. Runtime packaging
is used only when configuration requires that. Static packaging
significantly speeds up logging when there are string arguments.

Update log_stack test to new stack usage.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
This commit is contained in:
Krzysztof Chruscinski 2022-03-08 09:34:30 +01:00 committed by Anas Nashif
commit b98f8e39fa
4 changed files with 62 additions and 63 deletions

View file

@ -19,15 +19,6 @@
#include <ztest.h>
#include <sys/cbprintf.h>
#if defined(CONFIG_ARCH_POSIX)
/* On some platforms all strings are considered RW, that impacts size of the
* package.
*/
#define TEST_LOG_MSG2_RW_STRINGS 1
#else
#define TEST_LOG_MSG2_RW_STRINGS 0
#endif
#if CONFIG_NO_OPTIMIZATIONS
#define EXP_MODE(name) Z_LOG_MSG2_MODE_RUNTIME
#else
@ -372,9 +363,6 @@ void test_mode_size_plain_string(void)
*/
exp_len = sizeof(struct log_msg2_hdr) +
/* package */2 * sizeof(const char *);
if (mode == Z_LOG_MSG2_MODE_RUNTIME && TEST_LOG_MSG2_RW_STRINGS) {
exp_len += 2 + strlen("test str");
}
exp_len = ROUND_UP(exp_len, Z_LOG_MSG2_ALIGNMENT) / sizeof(int);
get_msg_validate_length(exp_len);
@ -434,9 +422,6 @@ void test_mode_size_plain_str_data(void)
*/
exp_len = sizeof(struct log_msg2_hdr) + sizeof(data) +
/* package */2 * sizeof(char *);
if (mode == Z_LOG_MSG2_MODE_RUNTIME && TEST_LOG_MSG2_RW_STRINGS) {
exp_len += 2 + strlen("test str");
}
exp_len = ROUND_UP(exp_len, Z_LOG_MSG2_ALIGNMENT) / sizeof(int);
get_msg_validate_length(exp_len);
}
@ -488,32 +473,30 @@ void test_mode_size_str_with_2strings(void)
uint32_t exp_len;
int mode;
static const char *prefix = "prefix";
char sufix[] = "sufix";
Z_LOG_MSG2_CREATE3(1, mode,
1 /* accept one string pointer*/,
domain, source, level,
NULL, 0, TEST_STR, prefix, "sufix");
zassert_equal(mode, EXP_MODE(RUNTIME),
NULL, 0, TEST_STR, prefix, sufix);
zassert_equal(mode, EXP_MODE(FROM_STACK),
"Unexpected creation mode");
Z_LOG_MSG2_CREATE3(0, mode,
1 /* accept one string pointer*/,
domain, source, level,
NULL, 0, TEST_STR, prefix, "sufix");
zassert_equal(mode, EXP_MODE(RUNTIME),
NULL, 0, TEST_STR, prefix, sufix);
zassert_equal(mode, EXP_MODE(FROM_STACK),
"Unexpected creation mode");
/* Calculate expected message length. Message consists of:
* - header
* - package: header + fmt pointer + 2 pointers (on some platforms
* strings are included in the package)
* - package: header + fmt pointer + 2 pointers
* - index location of read only string
*
* Message size is rounded up to the required alignment.
*/
exp_len = sizeof(struct log_msg2_hdr) +
/* package */4 * sizeof(const char *);
if (TEST_LOG_MSG2_RW_STRINGS) {
exp_len += strlen("sufix") + 2; /* null + header */
}
/* package */4 * sizeof(const char *) + 2 + strlen(sufix);
exp_len = ROUND_UP(exp_len, Z_LOG_MSG2_ALIGNMENT) / sizeof(int);

View file

@ -61,9 +61,9 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#if defined(CONFIG_CPU_CORTEX_M0)
#if !defined(CONFIG_LOG_MODE_IMMEDIATE) && !defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 64
#define HEXDUMP_USAGE 88
#define MORE_ARGS_USAGE 80
#define SIMPLE_USAGE 96
#define HEXDUMP_USAGE 96
#define MORE_ARGS_USAGE 112
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && !defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 412
#define HEXDUMP_USAGE 412
@ -81,9 +81,9 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#elif defined(CONFIG_CPU_CORTEX_M3)
#if !defined(CONFIG_LOG_MODE_IMMEDIATE) && !defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 40
#define HEXDUMP_USAGE 72
#define MORE_ARGS_USAGE 56
#define SIMPLE_USAGE 88
#define HEXDUMP_USAGE 88
#define MORE_ARGS_USAGE 104
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && !defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 388
#define HEXDUMP_USAGE 388
@ -121,9 +121,9 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#elif defined(CONFIG_X86_64)
#if !defined(CONFIG_LOG_MODE_IMMEDIATE) && !defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 32
#define HEXDUMP_USAGE 304
#define MORE_ARGS_USAGE 64
#define SIMPLE_USAGE 80
#define HEXDUMP_USAGE 80
#define MORE_ARGS_USAGE 112
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && !defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 1088
#define HEXDUMP_USAGE 1088
@ -161,9 +161,9 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#elif defined(CONFIG_RISCV) && !defined(CONFIG_64BIT) && defined(CONFIG_SMP)
#if !defined(CONFIG_LOG_MODE_IMMEDIATE) && !defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 24
#define SIMPLE_USAGE 44
#define HEXDUMP_USAGE 60
#define MORE_ARGS_USAGE 40
#define MORE_ARGS_USAGE 60
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && !defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 456
#define HEXDUMP_USAGE 456
@ -181,13 +181,13 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#elif defined(CONFIG_RISCV) && defined(CONFIG_64BIT) && defined(CONFIG_SMP)
#if !defined(CONFIG_LOG_MODE_IMMEDIATE) && !defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 80
#define HEXDUMP_USAGE 96
#define MORE_ARGS_USAGE 112
#define SIMPLE_USAGE 112
#define HEXDUMP_USAGE 112
#define MORE_ARGS_USAGE 144
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && !defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 688
#define HEXDUMP_USAGE 688
#define MORE_ARGS_USAGE 720
#define SIMPLE_USAGE 704
#define HEXDUMP_USAGE 768
#define MORE_ARGS_USAGE 736
#elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 272
#define HEXDUMP_USAGE 272
@ -201,9 +201,9 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#elif defined(CONFIG_RISCV) && defined(CONFIG_64BIT)
#if !defined(CONFIG_LOG_MODE_IMMEDIATE) && !defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 104
#define HEXDUMP_USAGE 144
#define MORE_ARGS_USAGE 136
#define SIMPLE_USAGE 152
#define HEXDUMP_USAGE 152
#define MORE_ARGS_USAGE 184
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && !defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 704
#define HEXDUMP_USAGE 704