All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Limonciello, Mario" <mario.limonciello@amd.com>
To: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>,
	hdegoede@redhat.com, markgross@kernel.org
Cc: platform-driver-x86@vger.kernel.org, Patil.Reddy@amd.com
Subject: Re: [PATCH 2/3] platform/x86/amd/pmf: Add PMF debug facilities
Date: Thu, 6 Apr 2023 11:51:38 -0500	[thread overview]
Message-ID: <608f08ef-edfc-0132-02ba-ce96f34728c1@amd.com> (raw)
In-Reply-To: <20230406164807.50969-3-Shyam-sundar.S-k@amd.com>

On 4/6/2023 11:48, Shyam Sundar S K wrote:
> At times, when the mode transitions fail to happen, the current
> driver does not give enough debug information on why the transition
> failed or the default preset values did not load. Having an on-demand
> logs guarded by CONFIG would be helpful in such cases.
> 
> Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
> ---
>   drivers/platform/x86/amd/pmf/Kconfig     | 10 ++++++++++
>   drivers/platform/x86/amd/pmf/auto-mode.c | 22 ++++++++++++++++++++++
>   drivers/platform/x86/amd/pmf/cnqf.c      | 19 +++++++++++++++++++
>   3 files changed, 51 insertions(+)
> 
> diff --git a/drivers/platform/x86/amd/pmf/Kconfig b/drivers/platform/x86/amd/pmf/Kconfig
> index f4fd764e55a6..7129de0fb9fb 100644
> --- a/drivers/platform/x86/amd/pmf/Kconfig
> +++ b/drivers/platform/x86/amd/pmf/Kconfig
> @@ -26,3 +26,13 @@ config AMD_PMF_ACPI_DEBUG
>   	 in the PMF config store.
>   
>   	 Say Y here to enable more debug logs and Say N here if you are not sure.
> +
> +config AMD_PMF_DEBUG_FACILITIES
> +	bool "PMF debug facilities"
> +	depends on AMD_PMF
> +	help
> +	 Enabling this option would give more debug information on the PMF interna
> +	 counters such as time constants, power thresholds, target modes and
> +	 power mode transitions of auto mode and CnQF features.

With the availability of dynamic debugging is there a lot of benefit to 
guarding all the new dev_dbg statements behind a config option?

Is it because of performance impact?

> +
> +	 Say Y here to enable logs and Say N here if you are not sure.
> diff --git a/drivers/platform/x86/amd/pmf/auto-mode.c b/drivers/platform/x86/amd/pmf/auto-mode.c
> index 777490fcf8b9..560379b5cda7 100644
> --- a/drivers/platform/x86/amd/pmf/auto-mode.c
> +++ b/drivers/platform/x86/amd/pmf/auto-mode.c
> @@ -177,11 +177,33 @@ void amd_pmf_trans_automode(struct amd_pmf_dev *dev, int socket_power, ktime_t t
>   			config_store.transition[i].applied = false;
>   			update = true;
>   		}
> +
> +#ifdef CONFIG_AMD_PMF_DEBUG_FACILITIES
> +		dev_dbg(dev->dev, "[AUTO MODE] time_ms:%lld avg_power:%d mode:%s timer:%u tc:%d\n",
> +			time_elapsed_ms, avg_power,
> +			state_as_str(config_store.current_mode),
> +			config_store.transition[i].timer,
> +			config_store.transition[i].time_constant);
> +
> +		dev_dbg(dev->dev, "[AUTO MODE] shiftup:%d pt:%d pf:%d pd:%u\n",
> +			config_store.transition[i].shifting_up,
> +			config_store.transition[i].power_threshold,
> +			config_store.mode_set[i].power_floor,
> +			config_store.transition[i].power_delta);
> +#endif
>   	}
>   
>   	dev_dbg(dev->dev, "[AUTO_MODE] avg power: %u mW mode: %s\n", avg_power,
>   		state_as_str(config_store.current_mode));
>   
> +#ifdef CONFIG_AMD_PMF_DEBUG_FACILITIES
> +	dev_dbg(dev->dev, "[AUTO MODE] priority1: %u, priority2: %u, priority3: %u, priority4: %u",
> +		config_store.transition[0].applied,
> +		config_store.transition[1].applied,
> +		config_store.transition[2].applied,
> +		config_store. transition[3].applied);
> +#endif
> +
>   	if (update) {
>   		for (j = 0; j < AUTO_TRANSITION_MAX; j++) {
>   			/* Apply the mode with highest priority indentified */
> diff --git a/drivers/platform/x86/amd/pmf/cnqf.c b/drivers/platform/x86/amd/pmf/cnqf.c
> index 4b9691cd592a..1f25016b3865 100644
> --- a/drivers/platform/x86/amd/pmf/cnqf.c
> +++ b/drivers/platform/x86/amd/pmf/cnqf.c
> @@ -174,6 +174,13 @@ int amd_pmf_trans_cnqf(struct amd_pmf_dev *dev, int socket_power, ktime_t time_l
>   		config_store.trans_param[src][i].count++;
>   
>   		tp = &config_store.trans_param[src][i];
> +
> +#ifdef CONFIG_AMD_PMF_DEBUG_FACILITIES
> +		dev_dbg(dev->dev, "avg_power:%d total_power:%d count:%d timer:%d\n", avg_power,
> +			config_store.trans_param[src][i].total_power,
> +			config_store.trans_param[src][i].count,
> +			config_store.trans_param[src][i].timer);
> +#endif
>   		if (tp->timer >= tp->time_constant && tp->count) {
>   			avg_power = tp->total_power / tp->count;
>   
> @@ -194,6 +201,18 @@ int amd_pmf_trans_cnqf(struct amd_pmf_dev *dev, int socket_power, ktime_t time_l
>   	dev_dbg(dev->dev, "[CNQF] Avg power: %u mW socket power: %u mW mode:%s\n",
>   		avg_power, socket_power, state_as_str(config_store.current_mode));
>   
> +#ifdef AMD_PMF_DEBUG_FACILITIES
> +	dev_dbg(dev->dev, "[CNQF] priority 1: %u, priority 2: %u, priority 3: %u",
> +		config_store.trans_param[src][0].priority,
> +		config_store.trans_param[src][1].priority,
> +		config_store.trans_param[src][2].priority);
> +
> +	dev_dbg(dev->dev, "[CNQF] priority 4: %u, priority 5: %u, priority 6: %u",
> +		config_store.trans_param[src][3].priority,
> +		config_store.trans_param[src][4].priority,
> +		config_store.trans_param[src][5].priority);
> +#endif
> +
>   	for (j = 0; j < CNQF_TRANSITION_MAX; j++) {
>   		/* apply the highest priority */
>   		if (config_store.trans_param[src][j].priority) {


  reply	other threads:[~2023-04-06 16:51 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-06 16:48 [PATCH 0/3] platform/x86/amd/pmf: Updates to AMD PMF driver Shyam Sundar S K
2023-04-06 16:48 ` [PATCH 1/3] platform/x86/amd/pmf: Add PMF acpi debug support Shyam Sundar S K
2023-04-11  8:24   ` Hans de Goede
2023-04-06 16:48 ` [PATCH 2/3] platform/x86/amd/pmf: Add PMF debug facilities Shyam Sundar S K
2023-04-06 16:51   ` Limonciello, Mario [this message]
2023-04-09 17:02     ` Shyam Sundar S K
2023-04-11  8:25   ` Hans de Goede
2023-04-06 16:48 ` [PATCH 3/3] platform/x86/amd/pmf: Move out of BIOS SMN pair for driver probe Shyam Sundar S K
2023-04-06 16:53   ` Limonciello, Mario
2023-04-11  8:28   ` Hans de Goede

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=608f08ef-edfc-0132-02ba-ce96f34728c1@amd.com \
    --to=mario.limonciello@amd.com \
    --cc=Patil.Reddy@amd.com \
    --cc=Shyam-sundar.S-k@amd.com \
    --cc=hdegoede@redhat.com \
    --cc=markgross@kernel.org \
    --cc=platform-driver-x86@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.