* [PATCH] powercap: intel_rapl: Don't warn about BIOS locked limits during resume
@ 2023-10-04 18:34 Ville Syrjala
2023-10-04 18:45 ` Pandruvada, Srinivas
2023-10-24 19:17 ` [PATCH v2] powercap: intel_rapl: Downgrade BIOS locked limits pr_warn() to pr_debug() Ville Syrjala
0 siblings, 2 replies; 9+ messages in thread
From: Ville Syrjala @ 2023-10-04 18:34 UTC (permalink / raw)
To: linux-pm
Cc: linux-kernel, intel-gfx, Zhang Rui, Wang Wendy,
Rafael J . Wysocki, Srinivas Pandruvada
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Restore enough of the original behaviour to stop spamming
dmesg with warnings about BIOS locked limits when trying
to restore them during resume.
This still doesn't 100% match the original behaviour
as we no longer attempt to blindly restore the BIOS locked
limits. No idea if that makes any difference in practice.
Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Wang Wendy <wendy.wang@intel.com>
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
Fixes: 9050a9cd5e4c ("powercap: intel_rapl: Cleanup Power Limits support")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/powercap/intel_rapl_common.c | 28 ++++++++++++++++++++--------
1 file changed, 20 insertions(+), 8 deletions(-)
diff --git a/drivers/powercap/intel_rapl_common.c b/drivers/powercap/intel_rapl_common.c
index 40a2cc649c79..9a6a40c83f82 100644
--- a/drivers/powercap/intel_rapl_common.c
+++ b/drivers/powercap/intel_rapl_common.c
@@ -882,22 +882,34 @@ static int rapl_read_pl_data(struct rapl_domain *rd, int pl,
return rapl_read_data_raw(rd, prim, xlate, data);
}
-static int rapl_write_pl_data(struct rapl_domain *rd, int pl,
- enum pl_prims pl_prim,
- unsigned long long value)
+static int rapl_write_pl_data_nowarn(struct rapl_domain *rd, int pl,
+ enum pl_prims pl_prim,
+ unsigned long long value)
{
enum rapl_primitives prim = get_pl_prim(rd, pl, pl_prim);
if (!is_pl_valid(rd, pl))
return -EINVAL;
- if (rd->rpl[pl].locked) {
- pr_warn("%s:%s:%s locked by BIOS\n", rd->rp->name, rd->name, pl_names[pl]);
+ if (rd->rpl[pl].locked)
return -EACCES;
- }
return rapl_write_data_raw(rd, prim, value);
}
+
+static int rapl_write_pl_data(struct rapl_domain *rd, int pl,
+ enum pl_prims pl_prim,
+ unsigned long long value)
+{
+ int ret;
+
+ ret = rapl_write_pl_data_nowarn(rd, pl, pl_prim, value);
+ if (ret == -EACCES)
+ pr_warn("%s:%s:%s locked by BIOS\n", rd->rp->name, rd->name, pl_names[pl]);
+
+ return ret;
+}
+
/*
* Raw RAPL data stored in MSRs are in certain scales. We need to
* convert them into standard units based on the units reported in
@@ -1634,8 +1646,8 @@ static void power_limit_state_restore(void)
rd = power_zone_to_rapl_domain(rp->power_zone);
for (i = POWER_LIMIT1; i < NR_POWER_LIMITS; i++)
if (rd->rpl[i].last_power_limit)
- rapl_write_pl_data(rd, i, PL_LIMIT,
- rd->rpl[i].last_power_limit);
+ rapl_write_pl_data_nowarn(rd, i, PL_LIMIT,
+ rd->rpl[i].last_power_limit);
}
cpus_read_unlock();
}
--
2.41.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] powercap: intel_rapl: Don't warn about BIOS locked limits during resume
2023-10-04 18:34 [PATCH] powercap: intel_rapl: Don't warn about BIOS locked limits during resume Ville Syrjala
@ 2023-10-04 18:45 ` Pandruvada, Srinivas
2023-10-04 18:59 ` Ville Syrjälä
2023-10-24 19:17 ` [PATCH v2] powercap: intel_rapl: Downgrade BIOS locked limits pr_warn() to pr_debug() Ville Syrjala
1 sibling, 1 reply; 9+ messages in thread
From: Pandruvada, Srinivas @ 2023-10-04 18:45 UTC (permalink / raw)
To: ville.syrjala@linux.intel.com, linux-pm@vger.kernel.org
Cc: Zhang, Rui, Wysocki, Rafael J, linux-kernel@vger.kernel.org,
intel-gfx@lists.freedesktop.org, Wang, Wendy
On Wed, 2023-10-04 at 21:34 +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Restore enough of the original behaviour to stop spamming
> dmesg with warnings about BIOS locked limits when trying
> to restore them during resume.
>
> This still doesn't 100% match the original behaviour
> as we no longer attempt to blindly restore the BIOS locked
> limits. No idea if that makes any difference in practice.
>
I lost the context here. Why can't we simply change pr_warn to pr_debug
here?
Thanks,
Srinivas
> Cc: Zhang Rui <rui.zhang@intel.com>
> Cc: Wang Wendy <wendy.wang@intel.com>
> Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> Cc: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
> Fixes: 9050a9cd5e4c ("powercap: intel_rapl: Cleanup Power Limits
> support")
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/powercap/intel_rapl_common.c | 28 ++++++++++++++++++++------
> --
> 1 file changed, 20 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/powercap/intel_rapl_common.c
> b/drivers/powercap/intel_rapl_common.c
> index 40a2cc649c79..9a6a40c83f82 100644
> --- a/drivers/powercap/intel_rapl_common.c
> +++ b/drivers/powercap/intel_rapl_common.c
> @@ -882,22 +882,34 @@ static int rapl_read_pl_data(struct rapl_domain
> *rd, int pl,
> return rapl_read_data_raw(rd, prim, xlate, data);
> }
>
> -static int rapl_write_pl_data(struct rapl_domain *rd, int pl,
> - enum pl_prims pl_prim,
> - unsigned long long value)
> +static int rapl_write_pl_data_nowarn(struct rapl_domain *rd, int pl,
> + enum pl_prims pl_prim,
> + unsigned long long value)
> {
> enum rapl_primitives prim = get_pl_prim(rd, pl, pl_prim);
>
> if (!is_pl_valid(rd, pl))
> return -EINVAL;
>
> - if (rd->rpl[pl].locked) {
> - pr_warn("%s:%s:%s locked by BIOS\n", rd->rp->name,
> rd->name, pl_names[pl]);
> + if (rd->rpl[pl].locked)
> return -EACCES;
> - }
>
> return rapl_write_data_raw(rd, prim, value);
> }
> +
> +static int rapl_write_pl_data(struct rapl_domain *rd, int pl,
> + enum pl_prims pl_prim,
> + unsigned long long value)
> +{
> + int ret;
> +
> + ret = rapl_write_pl_data_nowarn(rd, pl, pl_prim, value);
> + if (ret == -EACCES)
> + pr_warn("%s:%s:%s locked by BIOS\n", rd->rp->name,
> rd->name, pl_names[pl]);
> +
> + return ret;
> +}
> +
> /*
> * Raw RAPL data stored in MSRs are in certain scales. We need to
> * convert them into standard units based on the units reported in
> @@ -1634,8 +1646,8 @@ static void power_limit_state_restore(void)
> rd = power_zone_to_rapl_domain(rp->power_zone);
> for (i = POWER_LIMIT1; i < NR_POWER_LIMITS; i++)
> if (rd->rpl[i].last_power_limit)
> - rapl_write_pl_data(rd, i, PL_LIMIT,
> - rd-
> >rpl[i].last_power_limit);
> + rapl_write_pl_data_nowarn(rd, i,
> PL_LIMIT,
> + rd-
> >rpl[i].last_power_limit);
> }
> cpus_read_unlock();
> }
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] powercap: intel_rapl: Don't warn about BIOS locked limits during resume
2023-10-04 18:45 ` Pandruvada, Srinivas
@ 2023-10-04 18:59 ` Ville Syrjälä
2023-10-24 17:11 ` [Intel-gfx] " Ville Syrjälä
0 siblings, 1 reply; 9+ messages in thread
From: Ville Syrjälä @ 2023-10-04 18:59 UTC (permalink / raw)
To: Pandruvada, Srinivas
Cc: linux-pm@vger.kernel.org, Zhang, Rui, Wysocki, Rafael J,
linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org,
Wang, Wendy
On Wed, Oct 04, 2023 at 06:45:22PM +0000, Pandruvada, Srinivas wrote:
> On Wed, 2023-10-04 at 21:34 +0300, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Restore enough of the original behaviour to stop spamming
> > dmesg with warnings about BIOS locked limits when trying
> > to restore them during resume.
> >
> > This still doesn't 100% match the original behaviour
> > as we no longer attempt to blindly restore the BIOS locked
> > limits. No idea if that makes any difference in practice.
> >
> I lost the context here. Why can't we simply change pr_warn to pr_debug
> here?
I presume someone wanted to make it pr_warn() for a reason.
I don't mind either way.
>
> Thanks,
> Srinivas
>
> > Cc: Zhang Rui <rui.zhang@intel.com>
> > Cc: Wang Wendy <wendy.wang@intel.com>
> > Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > Cc: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
> > Fixes: 9050a9cd5e4c ("powercap: intel_rapl: Cleanup Power Limits
> > support")
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> > drivers/powercap/intel_rapl_common.c | 28 ++++++++++++++++++++------
> > --
> > 1 file changed, 20 insertions(+), 8 deletions(-)
> >
> > diff --git a/drivers/powercap/intel_rapl_common.c
> > b/drivers/powercap/intel_rapl_common.c
> > index 40a2cc649c79..9a6a40c83f82 100644
> > --- a/drivers/powercap/intel_rapl_common.c
> > +++ b/drivers/powercap/intel_rapl_common.c
> > @@ -882,22 +882,34 @@ static int rapl_read_pl_data(struct rapl_domain
> > *rd, int pl,
> > return rapl_read_data_raw(rd, prim, xlate, data);
> > }
> >
> > -static int rapl_write_pl_data(struct rapl_domain *rd, int pl,
> > - enum pl_prims pl_prim,
> > - unsigned long long value)
> > +static int rapl_write_pl_data_nowarn(struct rapl_domain *rd, int pl,
> > + enum pl_prims pl_prim,
> > + unsigned long long value)
> > {
> > enum rapl_primitives prim = get_pl_prim(rd, pl, pl_prim);
> >
> > if (!is_pl_valid(rd, pl))
> > return -EINVAL;
> >
> > - if (rd->rpl[pl].locked) {
> > - pr_warn("%s:%s:%s locked by BIOS\n", rd->rp->name,
> > rd->name, pl_names[pl]);
> > + if (rd->rpl[pl].locked)
> > return -EACCES;
> > - }
> >
> > return rapl_write_data_raw(rd, prim, value);
> > }
> > +
> > +static int rapl_write_pl_data(struct rapl_domain *rd, int pl,
> > + enum pl_prims pl_prim,
> > + unsigned long long value)
> > +{
> > + int ret;
> > +
> > + ret = rapl_write_pl_data_nowarn(rd, pl, pl_prim, value);
> > + if (ret == -EACCES)
> > + pr_warn("%s:%s:%s locked by BIOS\n", rd->rp->name,
> > rd->name, pl_names[pl]);
> > +
> > + return ret;
> > +}
> > +
> > /*
> > * Raw RAPL data stored in MSRs are in certain scales. We need to
> > * convert them into standard units based on the units reported in
> > @@ -1634,8 +1646,8 @@ static void power_limit_state_restore(void)
> > rd = power_zone_to_rapl_domain(rp->power_zone);
> > for (i = POWER_LIMIT1; i < NR_POWER_LIMITS; i++)
> > if (rd->rpl[i].last_power_limit)
> > - rapl_write_pl_data(rd, i, PL_LIMIT,
> > - rd-
> > >rpl[i].last_power_limit);
> > + rapl_write_pl_data_nowarn(rd, i,
> > PL_LIMIT,
> > + rd-
> > >rpl[i].last_power_limit);
> > }
> > cpus_read_unlock();
> > }
>
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Intel-gfx] [PATCH] powercap: intel_rapl: Don't warn about BIOS locked limits during resume
2023-10-04 18:59 ` Ville Syrjälä
@ 2023-10-24 17:11 ` Ville Syrjälä
2023-10-24 18:31 ` Rafael J. Wysocki
0 siblings, 1 reply; 9+ messages in thread
From: Ville Syrjälä @ 2023-10-24 17:11 UTC (permalink / raw)
To: Pandruvada, Srinivas
Cc: linux-pm@vger.kernel.org, intel-gfx@lists.freedesktop.org,
Wysocki, Rafael J, linux-kernel@vger.kernel.org, Zhang, Rui
On Wed, Oct 04, 2023 at 09:59:47PM +0300, Ville Syrjälä wrote:
> On Wed, Oct 04, 2023 at 06:45:22PM +0000, Pandruvada, Srinivas wrote:
> > On Wed, 2023-10-04 at 21:34 +0300, Ville Syrjala wrote:
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > >
> > > Restore enough of the original behaviour to stop spamming
> > > dmesg with warnings about BIOS locked limits when trying
> > > to restore them during resume.
> > >
> > > This still doesn't 100% match the original behaviour
> > > as we no longer attempt to blindly restore the BIOS locked
> > > limits. No idea if that makes any difference in practice.
> > >
> > I lost the context here. Why can't we simply change pr_warn to pr_debug
> > here?
>
> I presume someone wanted to make it pr_warn() for a reason.
> I don't mind either way.
Ping. Can someone make a decision on how this should get fixed
so we get this moving forward?
>
> >
> > Thanks,
> > Srinivas
> >
> > > Cc: Zhang Rui <rui.zhang@intel.com>
> > > Cc: Wang Wendy <wendy.wang@intel.com>
> > > Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > > Cc: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
> > > Fixes: 9050a9cd5e4c ("powercap: intel_rapl: Cleanup Power Limits
> > > support")
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > > drivers/powercap/intel_rapl_common.c | 28 ++++++++++++++++++++------
> > > --
> > > 1 file changed, 20 insertions(+), 8 deletions(-)
> > >
> > > diff --git a/drivers/powercap/intel_rapl_common.c
> > > b/drivers/powercap/intel_rapl_common.c
> > > index 40a2cc649c79..9a6a40c83f82 100644
> > > --- a/drivers/powercap/intel_rapl_common.c
> > > +++ b/drivers/powercap/intel_rapl_common.c
> > > @@ -882,22 +882,34 @@ static int rapl_read_pl_data(struct rapl_domain
> > > *rd, int pl,
> > > return rapl_read_data_raw(rd, prim, xlate, data);
> > > }
> > >
> > > -static int rapl_write_pl_data(struct rapl_domain *rd, int pl,
> > > - enum pl_prims pl_prim,
> > > - unsigned long long value)
> > > +static int rapl_write_pl_data_nowarn(struct rapl_domain *rd, int pl,
> > > + enum pl_prims pl_prim,
> > > + unsigned long long value)
> > > {
> > > enum rapl_primitives prim = get_pl_prim(rd, pl, pl_prim);
> > >
> > > if (!is_pl_valid(rd, pl))
> > > return -EINVAL;
> > >
> > > - if (rd->rpl[pl].locked) {
> > > - pr_warn("%s:%s:%s locked by BIOS\n", rd->rp->name,
> > > rd->name, pl_names[pl]);
> > > + if (rd->rpl[pl].locked)
> > > return -EACCES;
> > > - }
> > >
> > > return rapl_write_data_raw(rd, prim, value);
> > > }
> > > +
> > > +static int rapl_write_pl_data(struct rapl_domain *rd, int pl,
> > > + enum pl_prims pl_prim,
> > > + unsigned long long value)
> > > +{
> > > + int ret;
> > > +
> > > + ret = rapl_write_pl_data_nowarn(rd, pl, pl_prim, value);
> > > + if (ret == -EACCES)
> > > + pr_warn("%s:%s:%s locked by BIOS\n", rd->rp->name,
> > > rd->name, pl_names[pl]);
> > > +
> > > + return ret;
> > > +}
> > > +
> > > /*
> > > * Raw RAPL data stored in MSRs are in certain scales. We need to
> > > * convert them into standard units based on the units reported in
> > > @@ -1634,8 +1646,8 @@ static void power_limit_state_restore(void)
> > > rd = power_zone_to_rapl_domain(rp->power_zone);
> > > for (i = POWER_LIMIT1; i < NR_POWER_LIMITS; i++)
> > > if (rd->rpl[i].last_power_limit)
> > > - rapl_write_pl_data(rd, i, PL_LIMIT,
> > > - rd-
> > > >rpl[i].last_power_limit);
> > > + rapl_write_pl_data_nowarn(rd, i,
> > > PL_LIMIT,
> > > + rd-
> > > >rpl[i].last_power_limit);
> > > }
> > > cpus_read_unlock();
> > > }
> >
>
> --
> Ville Syrjälä
> Intel
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Intel-gfx] [PATCH] powercap: intel_rapl: Don't warn about BIOS locked limits during resume
2023-10-24 17:11 ` [Intel-gfx] " Ville Syrjälä
@ 2023-10-24 18:31 ` Rafael J. Wysocki
2023-10-24 18:48 ` Ville Syrjälä
0 siblings, 1 reply; 9+ messages in thread
From: Rafael J. Wysocki @ 2023-10-24 18:31 UTC (permalink / raw)
To: Ville Syrjälä
Cc: Pandruvada, Srinivas, linux-pm@vger.kernel.org,
intel-gfx@lists.freedesktop.org, Wysocki, Rafael J,
linux-kernel@vger.kernel.org, Zhang, Rui
On Tue, Oct 24, 2023 at 7:11 PM Ville Syrjälä
<ville.syrjala@linux.intel.com> wrote:
>
> On Wed, Oct 04, 2023 at 09:59:47PM +0300, Ville Syrjälä wrote:
> > On Wed, Oct 04, 2023 at 06:45:22PM +0000, Pandruvada, Srinivas wrote:
> > > On Wed, 2023-10-04 at 21:34 +0300, Ville Syrjala wrote:
> > > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > >
> > > > Restore enough of the original behaviour to stop spamming
> > > > dmesg with warnings about BIOS locked limits when trying
> > > > to restore them during resume.
> > > >
> > > > This still doesn't 100% match the original behaviour
> > > > as we no longer attempt to blindly restore the BIOS locked
> > > > limits. No idea if that makes any difference in practice.
> > > >
> > > I lost the context here. Why can't we simply change pr_warn to pr_debug
> > > here?
> >
> > I presume someone wanted to make it pr_warn() for a reason.
> > I don't mind either way.
>
> Ping. Can someone make a decision on how this should get fixed
> so we get this moving forward?
I thought we were going to replace the pr_warn() with pr_debug().
> > > > Cc: Zhang Rui <rui.zhang@intel.com>
> > > > Cc: Wang Wendy <wendy.wang@intel.com>
> > > > Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > > > Cc: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
> > > > Fixes: 9050a9cd5e4c ("powercap: intel_rapl: Cleanup Power Limits
> > > > support")
> > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > ---
> > > > drivers/powercap/intel_rapl_common.c | 28 ++++++++++++++++++++------
> > > > --
> > > > 1 file changed, 20 insertions(+), 8 deletions(-)
> > > >
> > > > diff --git a/drivers/powercap/intel_rapl_common.c
> > > > b/drivers/powercap/intel_rapl_common.c
> > > > index 40a2cc649c79..9a6a40c83f82 100644
> > > > --- a/drivers/powercap/intel_rapl_common.c
> > > > +++ b/drivers/powercap/intel_rapl_common.c
> > > > @@ -882,22 +882,34 @@ static int rapl_read_pl_data(struct rapl_domain
> > > > *rd, int pl,
> > > > return rapl_read_data_raw(rd, prim, xlate, data);
> > > > }
> > > >
> > > > -static int rapl_write_pl_data(struct rapl_domain *rd, int pl,
> > > > - enum pl_prims pl_prim,
> > > > - unsigned long long value)
> > > > +static int rapl_write_pl_data_nowarn(struct rapl_domain *rd, int pl,
> > > > + enum pl_prims pl_prim,
> > > > + unsigned long long value)
> > > > {
> > > > enum rapl_primitives prim = get_pl_prim(rd, pl, pl_prim);
> > > >
> > > > if (!is_pl_valid(rd, pl))
> > > > return -EINVAL;
> > > >
> > > > - if (rd->rpl[pl].locked) {
> > > > - pr_warn("%s:%s:%s locked by BIOS\n", rd->rp->name,
> > > > rd->name, pl_names[pl]);
> > > > + if (rd->rpl[pl].locked)
> > > > return -EACCES;
> > > > - }
> > > >
> > > > return rapl_write_data_raw(rd, prim, value);
> > > > }
> > > > +
> > > > +static int rapl_write_pl_data(struct rapl_domain *rd, int pl,
> > > > + enum pl_prims pl_prim,
> > > > + unsigned long long value)
> > > > +{
> > > > + int ret;
> > > > +
> > > > + ret = rapl_write_pl_data_nowarn(rd, pl, pl_prim, value);
> > > > + if (ret == -EACCES)
> > > > + pr_warn("%s:%s:%s locked by BIOS\n", rd->rp->name,
> > > > rd->name, pl_names[pl]);
> > > > +
> > > > + return ret;
> > > > +}
> > > > +
> > > > /*
> > > > * Raw RAPL data stored in MSRs are in certain scales. We need to
> > > > * convert them into standard units based on the units reported in
> > > > @@ -1634,8 +1646,8 @@ static void power_limit_state_restore(void)
> > > > rd = power_zone_to_rapl_domain(rp->power_zone);
> > > > for (i = POWER_LIMIT1; i < NR_POWER_LIMITS; i++)
> > > > if (rd->rpl[i].last_power_limit)
> > > > - rapl_write_pl_data(rd, i, PL_LIMIT,
> > > > - rd-
> > > > >rpl[i].last_power_limit);
> > > > + rapl_write_pl_data_nowarn(rd, i,
> > > > PL_LIMIT,
> > > > + rd-
> > > > >rpl[i].last_power_limit);
> > > > }
> > > > cpus_read_unlock();
> > > > }
> > >
> >
> > --
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Intel-gfx] [PATCH] powercap: intel_rapl: Don't warn about BIOS locked limits during resume
2023-10-24 18:31 ` Rafael J. Wysocki
@ 2023-10-24 18:48 ` Ville Syrjälä
2023-10-24 18:52 ` Rafael J. Wysocki
0 siblings, 1 reply; 9+ messages in thread
From: Ville Syrjälä @ 2023-10-24 18:48 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Pandruvada, Srinivas, linux-pm@vger.kernel.org,
intel-gfx@lists.freedesktop.org, Wysocki, Rafael J,
linux-kernel@vger.kernel.org, Zhang, Rui
On Tue, Oct 24, 2023 at 08:31:34PM +0200, Rafael J. Wysocki wrote:
> On Tue, Oct 24, 2023 at 7:11 PM Ville Syrjälä
> <ville.syrjala@linux.intel.com> wrote:
> >
> > On Wed, Oct 04, 2023 at 09:59:47PM +0300, Ville Syrjälä wrote:
> > > On Wed, Oct 04, 2023 at 06:45:22PM +0000, Pandruvada, Srinivas wrote:
> > > > On Wed, 2023-10-04 at 21:34 +0300, Ville Syrjala wrote:
> > > > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > >
> > > > > Restore enough of the original behaviour to stop spamming
> > > > > dmesg with warnings about BIOS locked limits when trying
> > > > > to restore them during resume.
> > > > >
> > > > > This still doesn't 100% match the original behaviour
> > > > > as we no longer attempt to blindly restore the BIOS locked
> > > > > limits. No idea if that makes any difference in practice.
> > > > >
> > > > I lost the context here. Why can't we simply change pr_warn to pr_debug
> > > > here?
> > >
> > > I presume someone wanted to make it pr_warn() for a reason.
> > > I don't mind either way.
> >
> > Ping. Can someone make a decision on how this should get fixed
> > so we get this moving forward?
>
> I thought we were going to replace the pr_warn() with pr_debug().
I didn't get any answer whether anyone wants to keep the pr_warn().
If everyone is happy with pr_debug() that then I can send a patch
for it.
>
> > > > > Cc: Zhang Rui <rui.zhang@intel.com>
> > > > > Cc: Wang Wendy <wendy.wang@intel.com>
> > > > > Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > > > > Cc: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
> > > > > Fixes: 9050a9cd5e4c ("powercap: intel_rapl: Cleanup Power Limits
> > > > > support")
> > > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > > ---
> > > > > drivers/powercap/intel_rapl_common.c | 28 ++++++++++++++++++++------
> > > > > --
> > > > > 1 file changed, 20 insertions(+), 8 deletions(-)
> > > > >
> > > > > diff --git a/drivers/powercap/intel_rapl_common.c
> > > > > b/drivers/powercap/intel_rapl_common.c
> > > > > index 40a2cc649c79..9a6a40c83f82 100644
> > > > > --- a/drivers/powercap/intel_rapl_common.c
> > > > > +++ b/drivers/powercap/intel_rapl_common.c
> > > > > @@ -882,22 +882,34 @@ static int rapl_read_pl_data(struct rapl_domain
> > > > > *rd, int pl,
> > > > > return rapl_read_data_raw(rd, prim, xlate, data);
> > > > > }
> > > > >
> > > > > -static int rapl_write_pl_data(struct rapl_domain *rd, int pl,
> > > > > - enum pl_prims pl_prim,
> > > > > - unsigned long long value)
> > > > > +static int rapl_write_pl_data_nowarn(struct rapl_domain *rd, int pl,
> > > > > + enum pl_prims pl_prim,
> > > > > + unsigned long long value)
> > > > > {
> > > > > enum rapl_primitives prim = get_pl_prim(rd, pl, pl_prim);
> > > > >
> > > > > if (!is_pl_valid(rd, pl))
> > > > > return -EINVAL;
> > > > >
> > > > > - if (rd->rpl[pl].locked) {
> > > > > - pr_warn("%s:%s:%s locked by BIOS\n", rd->rp->name,
> > > > > rd->name, pl_names[pl]);
> > > > > + if (rd->rpl[pl].locked)
> > > > > return -EACCES;
> > > > > - }
> > > > >
> > > > > return rapl_write_data_raw(rd, prim, value);
> > > > > }
> > > > > +
> > > > > +static int rapl_write_pl_data(struct rapl_domain *rd, int pl,
> > > > > + enum pl_prims pl_prim,
> > > > > + unsigned long long value)
> > > > > +{
> > > > > + int ret;
> > > > > +
> > > > > + ret = rapl_write_pl_data_nowarn(rd, pl, pl_prim, value);
> > > > > + if (ret == -EACCES)
> > > > > + pr_warn("%s:%s:%s locked by BIOS\n", rd->rp->name,
> > > > > rd->name, pl_names[pl]);
> > > > > +
> > > > > + return ret;
> > > > > +}
> > > > > +
> > > > > /*
> > > > > * Raw RAPL data stored in MSRs are in certain scales. We need to
> > > > > * convert them into standard units based on the units reported in
> > > > > @@ -1634,8 +1646,8 @@ static void power_limit_state_restore(void)
> > > > > rd = power_zone_to_rapl_domain(rp->power_zone);
> > > > > for (i = POWER_LIMIT1; i < NR_POWER_LIMITS; i++)
> > > > > if (rd->rpl[i].last_power_limit)
> > > > > - rapl_write_pl_data(rd, i, PL_LIMIT,
> > > > > - rd-
> > > > > >rpl[i].last_power_limit);
> > > > > + rapl_write_pl_data_nowarn(rd, i,
> > > > > PL_LIMIT,
> > > > > + rd-
> > > > > >rpl[i].last_power_limit);
> > > > > }
> > > > > cpus_read_unlock();
> > > > > }
> > > >
> > >
> > > --
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Intel-gfx] [PATCH] powercap: intel_rapl: Don't warn about BIOS locked limits during resume
2023-10-24 18:48 ` Ville Syrjälä
@ 2023-10-24 18:52 ` Rafael J. Wysocki
0 siblings, 0 replies; 9+ messages in thread
From: Rafael J. Wysocki @ 2023-10-24 18:52 UTC (permalink / raw)
To: Ville Syrjälä
Cc: Rafael J. Wysocki, Pandruvada, Srinivas, linux-pm@vger.kernel.org,
intel-gfx@lists.freedesktop.org, Wysocki, Rafael J,
linux-kernel@vger.kernel.org, Zhang, Rui
On Tue, Oct 24, 2023 at 8:48 PM Ville Syrjälä
<ville.syrjala@linux.intel.com> wrote:
>
> On Tue, Oct 24, 2023 at 08:31:34PM +0200, Rafael J. Wysocki wrote:
> > On Tue, Oct 24, 2023 at 7:11 PM Ville Syrjälä
> > <ville.syrjala@linux.intel.com> wrote:
> > >
> > > On Wed, Oct 04, 2023 at 09:59:47PM +0300, Ville Syrjälä wrote:
> > > > On Wed, Oct 04, 2023 at 06:45:22PM +0000, Pandruvada, Srinivas wrote:
> > > > > On Wed, 2023-10-04 at 21:34 +0300, Ville Syrjala wrote:
> > > > > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > > >
> > > > > > Restore enough of the original behaviour to stop spamming
> > > > > > dmesg with warnings about BIOS locked limits when trying
> > > > > > to restore them during resume.
> > > > > >
> > > > > > This still doesn't 100% match the original behaviour
> > > > > > as we no longer attempt to blindly restore the BIOS locked
> > > > > > limits. No idea if that makes any difference in practice.
> > > > > >
> > > > > I lost the context here. Why can't we simply change pr_warn to pr_debug
> > > > > here?
> > > >
> > > > I presume someone wanted to make it pr_warn() for a reason.
> > > > I don't mind either way.
> > >
> > > Ping. Can someone make a decision on how this should get fixed
> > > so we get this moving forward?
> >
> > I thought we were going to replace the pr_warn() with pr_debug().
>
> I didn't get any answer whether anyone wants to keep the pr_warn().
> If everyone is happy with pr_debug() that then I can send a patch
> for it.
Yes, please.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2] powercap: intel_rapl: Downgrade BIOS locked limits pr_warn() to pr_debug()
2023-10-04 18:34 [PATCH] powercap: intel_rapl: Don't warn about BIOS locked limits during resume Ville Syrjala
2023-10-04 18:45 ` Pandruvada, Srinivas
@ 2023-10-24 19:17 ` Ville Syrjala
2023-10-24 20:08 ` Rafael J. Wysocki
1 sibling, 1 reply; 9+ messages in thread
From: Ville Syrjala @ 2023-10-24 19:17 UTC (permalink / raw)
To: linux-pm
Cc: linux-kernel, intel-gfx, Zhang Rui, Wang Wendy,
Rafael J . Wysocki, Srinivas Pandruvada
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Before the refactoring the pr_warn() only triggered when
someone explicitly tried to write to a BIOS locked limit.
After the refactoring the warning is also triggering during
system resume. The user can't do anything about this so
printing scary warnings doesn't make sense
Keep the printk but make it pr_debug() instead of pr_warn()
to make it clear it's not a serious issue.
Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Wang Wendy <wendy.wang@intel.com>
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
Fixes: 9050a9cd5e4c ("powercap: intel_rapl: Cleanup Power Limits support")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/powercap/intel_rapl_common.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/powercap/intel_rapl_common.c b/drivers/powercap/intel_rapl_common.c
index 40a2cc649c79..2feed036c1cd 100644
--- a/drivers/powercap/intel_rapl_common.c
+++ b/drivers/powercap/intel_rapl_common.c
@@ -892,7 +892,7 @@ static int rapl_write_pl_data(struct rapl_domain *rd, int pl,
return -EINVAL;
if (rd->rpl[pl].locked) {
- pr_warn("%s:%s:%s locked by BIOS\n", rd->rp->name, rd->name, pl_names[pl]);
+ pr_debug("%s:%s:%s locked by BIOS\n", rd->rp->name, rd->name, pl_names[pl]);
return -EACCES;
}
--
2.41.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2] powercap: intel_rapl: Downgrade BIOS locked limits pr_warn() to pr_debug()
2023-10-24 19:17 ` [PATCH v2] powercap: intel_rapl: Downgrade BIOS locked limits pr_warn() to pr_debug() Ville Syrjala
@ 2023-10-24 20:08 ` Rafael J. Wysocki
0 siblings, 0 replies; 9+ messages in thread
From: Rafael J. Wysocki @ 2023-10-24 20:08 UTC (permalink / raw)
To: Ville Syrjala
Cc: linux-pm, linux-kernel, intel-gfx, Zhang Rui, Wang Wendy,
Rafael J . Wysocki, Srinivas Pandruvada
On Tue, Oct 24, 2023 at 9:17 PM Ville Syrjala
<ville.syrjala@linux.intel.com> wrote:
>
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Before the refactoring the pr_warn() only triggered when
> someone explicitly tried to write to a BIOS locked limit.
> After the refactoring the warning is also triggering during
> system resume. The user can't do anything about this so
> printing scary warnings doesn't make sense
>
> Keep the printk but make it pr_debug() instead of pr_warn()
> to make it clear it's not a serious issue.
>
> Cc: Zhang Rui <rui.zhang@intel.com>
> Cc: Wang Wendy <wendy.wang@intel.com>
> Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> Cc: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
> Fixes: 9050a9cd5e4c ("powercap: intel_rapl: Cleanup Power Limits support")
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/powercap/intel_rapl_common.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/powercap/intel_rapl_common.c b/drivers/powercap/intel_rapl_common.c
> index 40a2cc649c79..2feed036c1cd 100644
> --- a/drivers/powercap/intel_rapl_common.c
> +++ b/drivers/powercap/intel_rapl_common.c
> @@ -892,7 +892,7 @@ static int rapl_write_pl_data(struct rapl_domain *rd, int pl,
> return -EINVAL;
>
> if (rd->rpl[pl].locked) {
> - pr_warn("%s:%s:%s locked by BIOS\n", rd->rp->name, rd->name, pl_names[pl]);
> + pr_debug("%s:%s:%s locked by BIOS\n", rd->rp->name, rd->name, pl_names[pl]);
> return -EACCES;
> }
>
> --
Applied, thanks!
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-10-24 20:08 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-04 18:34 [PATCH] powercap: intel_rapl: Don't warn about BIOS locked limits during resume Ville Syrjala
2023-10-04 18:45 ` Pandruvada, Srinivas
2023-10-04 18:59 ` Ville Syrjälä
2023-10-24 17:11 ` [Intel-gfx] " Ville Syrjälä
2023-10-24 18:31 ` Rafael J. Wysocki
2023-10-24 18:48 ` Ville Syrjälä
2023-10-24 18:52 ` Rafael J. Wysocki
2023-10-24 19:17 ` [PATCH v2] powercap: intel_rapl: Downgrade BIOS locked limits pr_warn() to pr_debug() Ville Syrjala
2023-10-24 20:08 ` Rafael J. Wysocki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).