From: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
To: lgirdwood@gmail.com, broonie@kernel.org,
pierre-louis.bossart@linux.intel.com
Cc: guennadi.liakhovetski@linux.intel.com,
alsa-devel@alsa-project.org, ranjani.sridharan@linux.intel.com,
kai.vehmanen@linux.intel.com
Subject: [PATCH 04/19] ASoC: SOF: Print the dbg_dump and ipc_dump once to reduce kernel log noise
Date: Wed, 6 Oct 2021 14:06:30 +0300 [thread overview]
Message-ID: <20211006110645.26679-5-peter.ujfalusi@linux.intel.com> (raw)
In-Reply-To: <20211006110645.26679-1-peter.ujfalusi@linux.intel.com>
Do not print the dump more than once to keep the kernel log cleaner in case
of a firmware failure.
When the DSP is rebooted due to suspend or runtime_suspend reset the flags
to re-enable the dump prints.
Add also a debug flag to print all dumps to get more coverage if needed.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
sound/soc/sof/debug.c | 4 +++-
sound/soc/sof/loader.c | 4 ++++
sound/soc/sof/ops.h | 8 ++++++--
sound/soc/sof/sof-priv.h | 3 +++
4 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/sound/soc/sof/debug.c b/sound/soc/sof/debug.c
index 3b85e0484411..221808a8e759 100644
--- a/sound/soc/sof/debug.c
+++ b/sound/soc/sof/debug.c
@@ -827,7 +827,9 @@ void snd_sof_handle_fw_exception(struct snd_sof_dev *sdev)
if (IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG_RETAIN_DSP_CONTEXT) ||
(sof_core_debug & SOF_DBG_RETAIN_CTX)) {
/* should we prevent DSP entering D3 ? */
- dev_info(sdev->dev, "info: preventing DSP entering D3 state to preserve context\n");
+ if (!sdev->ipc_dump_printed)
+ dev_info(sdev->dev,
+ "preventing DSP entering D3 state to preserve context\n");
pm_runtime_get_noresume(sdev->dev);
}
diff --git a/sound/soc/sof/loader.c b/sound/soc/sof/loader.c
index 62e6f257c3f0..6a3bc1927627 100644
--- a/sound/soc/sof/loader.c
+++ b/sound/soc/sof/loader.c
@@ -791,6 +791,10 @@ int snd_sof_run_firmware(struct snd_sof_dev *sdev)
init_waitqueue_head(&sdev->boot_wait);
+ /* (re-)enable dsp dump */
+ sdev->dbg_dump_printed = false;
+ sdev->ipc_dump_printed = false;
+
/* create read-only fw_version debugfs to store boot version info */
if (sdev->first_boot) {
ret = snd_sof_debugfs_buf_item(sdev, &sdev->fw_version,
diff --git a/sound/soc/sof/ops.h b/sound/soc/sof/ops.h
index d143a35f16fc..c7670514aa68 100644
--- a/sound/soc/sof/ops.h
+++ b/sound/soc/sof/ops.h
@@ -243,19 +243,23 @@ snd_sof_dsp_set_power_state(struct snd_sof_dev *sdev,
/* debug */
static inline void snd_sof_dsp_dbg_dump(struct snd_sof_dev *sdev, u32 flags)
{
- if (sof_ops(sdev)->dbg_dump) {
+ if (sof_ops(sdev)->dbg_dump && !sdev->dbg_dump_printed) {
dev_err(sdev->dev, "------------[ DSP dump start ]------------\n");
sof_ops(sdev)->dbg_dump(sdev, flags);
dev_err(sdev->dev, "------------[ DSP dump end ]------------\n");
+ if (!(sof_core_debug & SOF_DBG_PRINT_ALL_DUMPS))
+ sdev->dbg_dump_printed = true;
}
}
static inline void snd_sof_ipc_dump(struct snd_sof_dev *sdev)
{
- if (sof_ops(sdev)->ipc_dump) {
+ if (sof_ops(sdev)->ipc_dump && !sdev->ipc_dump_printed) {
dev_err(sdev->dev, "------------[ IPC dump start ]------------\n");
sof_ops(sdev)->ipc_dump(sdev);
dev_err(sdev->dev, "------------[ IPC dump end ]------------\n");
+ if (!(sof_core_debug & SOF_DBG_PRINT_ALL_DUMPS))
+ sdev->ipc_dump_printed = true;
}
}
diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
index 0ca64f0f8873..bb6de1c1e3ec 100644
--- a/sound/soc/sof/sof-priv.h
+++ b/sound/soc/sof/sof-priv.h
@@ -33,6 +33,7 @@
#define SOF_DBG_DISABLE_MULTICORE BIT(5) /* schedule all pipelines/widgets
* on primary core
*/
+#define SOF_DBG_PRINT_ALL_DUMPS BIT(6) /* Print all ipc and dsp dumps */
#define SOF_DBG_DUMP_REGS BIT(0)
#define SOF_DBG_DUMP_MBOX BIT(1)
@@ -421,6 +422,8 @@ struct snd_sof_dev {
/* debug */
struct dentry *debugfs_root;
struct list_head dfsentry_list;
+ bool dbg_dump_printed;
+ bool ipc_dump_printed;
/* firmware loader */
struct snd_dma_buffer dmab;
--
2.33.0
next prev parent reply other threads:[~2021-10-06 11:09 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-06 11:06 [PATCH 00/19] ASoC: SOF: Improvements for debugging Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 01/19] ASoC: SOF: core: debug: force all processing on primary core Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 02/19] ASoC: SOF: debug: Swap the dsp_dump and ipc_dump sequence for fw_exception Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 03/19] ASoC: SOF: ipc and dsp dump: Add markers for better visibility Peter Ujfalusi
2021-10-06 11:06 ` Peter Ujfalusi [this message]
2021-10-06 11:06 ` [PATCH 05/19] ASoC: SOF: loader: Print the DSP dump if boot fails Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 06/19] ASoC: SOF: intel: atom: No need to do a DSP dump in atom_run() Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 07/19] ASoC: SOF: debug/ops: Move the IPC and DSP dump functions out from the header Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 08/19] ASoC: SOF: debug: Add SOF_DBG_DUMP_OPTIONAL flag for DSP dumping Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 09/19] ASoC: SOF: intel: hda-loader: Use snd_sof_dsp_dbg_dump() for DSP dump Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 10/19] ASoC: SOF: Drop SOF_DBG_DUMP_FORCE_ERR_LEVEL and sof_dev_dbg_or_err Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 11/19] ASoC: SOF: debug: Print out the fw_state along with the DSP dump Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 12/19] ASoC: SOF: ipc: Re-enable dumps after successful IPC tx Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 13/19] ASoC: SOF: ops: Force DSP panic dumps to be printed Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 14/19] ASoC: SOF: Introduce macro to set the firmware state Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 15/19] ASoC: SOF: intel: hda: Drop 'error' prefix from error dump functions Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 16/19] ASoC: SOF: core: Clean up snd_sof_get_status() prints Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 17/19] ASoC: SOF: loader: Drop SOF_DBG_DUMP_REGS flag when firmware start fails Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 18/19] ASoC: SOF: Intel: hda-loader: Drop SOF_DBG_DUMP_REGS flag from dbg_dump calls Peter Ujfalusi
2021-10-06 11:06 ` [PATCH 19/19] ASoC: SOF: Intel: hda: Dump registers and stack when SOF_DBG_DUMP_REGS is set Peter Ujfalusi
2021-10-06 11:23 ` [PATCH 00/19] ASoC: SOF: Improvements for debugging Mark Brown
2021-10-06 12:32 ` Pierre-Louis Bossart
2021-10-07 6:42 ` Péter Ujfalusi
2021-10-07 6:46 ` Péter Ujfalusi
2021-10-07 21:37 ` Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211006110645.26679-5-peter.ujfalusi@linux.intel.com \
--to=peter.ujfalusi@linux.intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=guennadi.liakhovetski@linux.intel.com \
--cc=kai.vehmanen@linux.intel.com \
--cc=lgirdwood@gmail.com \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=ranjani.sridharan@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox