From 3813a135d53758b09c5b9b6e8e5611b0840c333f Mon Sep 17 00:00:00 2001 From: Serhiy Katsyuba Date: Thu, 3 Aug 2023 18:07:29 +0200 Subject: [PATCH] audio: Put buffer state log under CONFIG_SOF_LOG_DBG_BUFFER switch comp_update_buffer_consume() and comp_update_buffer_produce() generate too much log output. Usually such amount of logs results in many log messages been dropped. It is also results in significant CPU load if selected log backend formats log messages at runtime. This patch adds a separate switch to enable these logs only when necessary. Default value is 'n'. Signed-off-by: Serhiy Katsyuba --- Kconfig.zephyr-log | 10 ++++++++++ src/audio/buffer.c | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/Kconfig.zephyr-log b/Kconfig.zephyr-log index f536d5246..ca0f54c64 100644 --- a/Kconfig.zephyr-log +++ b/Kconfig.zephyr-log @@ -51,4 +51,14 @@ config SOF_LOG_LEVEL default 3 if SOF_LOG_LEVEL_INF default 4 if SOF_LOG_LEVEL_DBG +config SOF_LOG_DBG_BUFFER + bool "Log buffer state on each consume/produce call" + default n + help + Dumps buffer struct audio_stream values on each call to comp_update_buffer_consume() + and comp_update_buffer_produce(). + WARNING: Produces too much log output which usually results in many log messaged been + dropped! Also, if selected log backend formats log messages at runtime, enabling this + option results in significant CPU load! + endmenu diff --git a/src/audio/buffer.c b/src/audio/buffer.c index 9a9d6bddb..c9c86cf8d 100644 --- a/src/audio/buffer.c +++ b/src/audio/buffer.c @@ -228,11 +228,13 @@ void comp_update_buffer_produce(struct comp_buffer __sparse_cache *buffer, uint3 /* return if no bytes */ if (!bytes) { +#if CONFIG_SOF_LOG_DBG_BUFFER buf_dbg(buffer, "comp_update_buffer_produce(), no bytes to produce, source->comp.id = %u, source->comp.type = %u, sink->comp.id = %u, sink->comp.type = %u", buffer->source ? dev_comp_id(buffer->source) : (unsigned int)UINT32_MAX, buffer->source ? dev_comp_type(buffer->source) : (unsigned int)UINT32_MAX, buffer->sink ? dev_comp_id(buffer->sink) : (unsigned int)UINT32_MAX, buffer->sink ? dev_comp_type(buffer->sink) : (unsigned int)UINT32_MAX); +#endif return; } @@ -242,6 +244,7 @@ void comp_update_buffer_produce(struct comp_buffer __sparse_cache *buffer, uint3 notifier_event(cache_to_uncache(buffer), NOTIFIER_ID_BUFFER_PRODUCE, NOTIFIER_TARGET_CORE_LOCAL, &cb_data, sizeof(cb_data)); +#if CONFIG_SOF_LOG_DBG_BUFFER buf_dbg(buffer, "comp_update_buffer_produce(), ((buffer->avail << 16) | buffer->free) = %08x, ((buffer->id << 16) | buffer->size) = %08x", (audio_stream_get_avail_bytes(&buffer->stream) << 16) | audio_stream_get_free_bytes(&buffer->stream), @@ -251,6 +254,7 @@ void comp_update_buffer_produce(struct comp_buffer __sparse_cache *buffer, uint3 (char *)audio_stream_get_addr(&buffer->stream)) << 16 | ((char *)audio_stream_get_wptr(&buffer->stream) - (char *)audio_stream_get_addr(&buffer->stream))); +#endif } void comp_update_buffer_consume(struct comp_buffer __sparse_cache *buffer, uint32_t bytes) @@ -263,11 +267,13 @@ void comp_update_buffer_consume(struct comp_buffer __sparse_cache *buffer, uint3 /* return if no bytes */ if (!bytes) { +#if CONFIG_SOF_LOG_DBG_BUFFER buf_dbg(buffer, "comp_update_buffer_consume(), no bytes to consume, source->comp.id = %u, source->comp.type = %u, sink->comp.id = %u, sink->comp.type = %u", buffer->source ? dev_comp_id(buffer->source) : (unsigned int)UINT32_MAX, buffer->source ? dev_comp_type(buffer->source) : (unsigned int)UINT32_MAX, buffer->sink ? dev_comp_id(buffer->sink) : (unsigned int)UINT32_MAX, buffer->sink ? dev_comp_type(buffer->sink) : (unsigned int)UINT32_MAX); +#endif return; } @@ -276,6 +282,7 @@ void comp_update_buffer_consume(struct comp_buffer __sparse_cache *buffer, uint3 notifier_event(cache_to_uncache(buffer), NOTIFIER_ID_BUFFER_CONSUME, NOTIFIER_TARGET_CORE_LOCAL, &cb_data, sizeof(cb_data)); +#if CONFIG_SOF_LOG_DBG_BUFFER buf_dbg(buffer, "comp_update_buffer_consume(), (buffer->avail << 16) | buffer->free = %08x, (buffer->id << 16) | buffer->size = %08x, (buffer->r_ptr - buffer->addr) << 16 | (buffer->w_ptr - buffer->addr)) = %08x", (audio_stream_get_avail_bytes(&buffer->stream) << 16) | audio_stream_get_free_bytes(&buffer->stream), @@ -284,6 +291,7 @@ void comp_update_buffer_consume(struct comp_buffer __sparse_cache *buffer, uint3 (char *)audio_stream_get_addr(&buffer->stream)) << 16 | ((char *)audio_stream_get_wptr(&buffer->stream) - (char *)audio_stream_get_addr(&buffer->stream))); +#endif } /*