* [PATCH] powercap, intel_rapl.c, fix BIOS lock check
@ 2015-12-08 18:33 Prarit Bhargava
2015-12-08 23:30 ` Jacob Pan
2015-12-09 0:12 ` Seiichi Ikarashi
0 siblings, 2 replies; 4+ messages in thread
From: Prarit Bhargava @ 2015-12-08 18:33 UTC (permalink / raw)
To: linux-kernel
Cc: Prarit Bhargava, Rafael J. Wysocki, Jacob Pan, Radivoje Jovanovic,
Seiichi Ikarashi, Mathias Krause, Ajay Thomas
Intel RAPL initialized on several systems where the BIOS lock bit (msr
0x610, bit 63) was set. This occured because the return value of
rapl_read_data_raw() was being checked, rather than the value of the variable
passed in, locked.
This patch properly implments the rapl_read_data_raw() call to check the
variable locked, and now the Intel RAPL driver outputs the warning:
intel_rapl: RAPL package 0 domain package locked by BIOS
and does not initialize for the package.
Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Cc: Jacob Pan <jacob.jun.pan@linux.intel.com>
Cc: Radivoje Jovanovic <radivoje.jovanovic@intel.com>
Cc: Seiichi Ikarashi <s.ikarashi@jp.fujitsu.com>
Cc: Mathias Krause <minipli@googlemail.com>
Cc: Ajay Thomas <ajay.thomas.david.rajamanickam@intel.com>
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
---
drivers/powercap/intel_rapl.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/powercap/intel_rapl.c b/drivers/powercap/intel_rapl.c
index cc97f08..0b0d09d 100644
--- a/drivers/powercap/intel_rapl.c
+++ b/drivers/powercap/intel_rapl.c
@@ -1341,11 +1341,13 @@ static int rapl_detect_domains(struct rapl_package *rp, int cpu)
for (rd = rp->domains; rd < rp->domains + rp->nr_domains; rd++) {
/* check if the domain is locked by BIOS */
- if (rapl_read_data_raw(rd, FW_LOCK, false, &locked)) {
+ ret = rapl_read_data_raw(rd, FW_LOCK, false, &locked);
+ if (ret)
+ return ret;
+ if (locked)
pr_info("RAPL package %d domain %s locked by BIOS\n",
rp->id, rd->name);
rd->state |= DOMAIN_STATE_BIOS_LOCKED;
- }
}
--
1.7.9.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] powercap, intel_rapl.c, fix BIOS lock check
2015-12-08 18:33 [PATCH] powercap, intel_rapl.c, fix BIOS lock check Prarit Bhargava
@ 2015-12-08 23:30 ` Jacob Pan
2015-12-09 0:12 ` Seiichi Ikarashi
1 sibling, 0 replies; 4+ messages in thread
From: Jacob Pan @ 2015-12-08 23:30 UTC (permalink / raw)
To: Prarit Bhargava
Cc: linux-kernel, Rafael J. Wysocki, Radivoje Jovanovic,
Seiichi Ikarashi, Mathias Krause, Ajay Thomas, jacob.jun.pan
On Tue, 8 Dec 2015 13:33:22 -0500
Prarit Bhargava <prarit@redhat.com> wrote:
> Intel RAPL initialized on several systems where the BIOS lock bit (msr
> 0x610, bit 63) was set. This occured because the return value of
> rapl_read_data_raw() was being checked, rather than the value of the
> variable passed in, locked.
>
> This patch properly implments the rapl_read_data_raw() call to check
> the variable locked, and now the Intel RAPL driver outputs the
> warning:
>
> intel_rapl: RAPL package 0 domain package locked by BIOS
>
> and does not initialize for the package.
Looks good to me.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] powercap, intel_rapl.c, fix BIOS lock check
2015-12-08 18:33 [PATCH] powercap, intel_rapl.c, fix BIOS lock check Prarit Bhargava
2015-12-08 23:30 ` Jacob Pan
@ 2015-12-09 0:12 ` Seiichi Ikarashi
2015-12-09 13:27 ` Prarit Bhargava
1 sibling, 1 reply; 4+ messages in thread
From: Seiichi Ikarashi @ 2015-12-09 0:12 UTC (permalink / raw)
To: Prarit Bhargava, linux-kernel
Cc: Rafael J. Wysocki, Jacob Pan, Radivoje Jovanovic, Mathias Krause,
Ajay Thomas
On 2015-12-09 03:33, Prarit Bhargava wrote:
> Intel RAPL initialized on several systems where the BIOS lock bit (msr
> 0x610, bit 63) was set. This occured because the return value of
> rapl_read_data_raw() was being checked, rather than the value of the variable
> passed in, locked.
>
> This patch properly implments the rapl_read_data_raw() call to check the
> variable locked, and now the Intel RAPL driver outputs the warning:
>
> intel_rapl: RAPL package 0 domain package locked by BIOS
>
> and does not initialize for the package.
>
> Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
> Cc: Jacob Pan <jacob.jun.pan@linux.intel.com>
> Cc: Radivoje Jovanovic <radivoje.jovanovic@intel.com>
> Cc: Seiichi Ikarashi <s.ikarashi@jp.fujitsu.com>
> Cc: Mathias Krause <minipli@googlemail.com>
> Cc: Ajay Thomas <ajay.thomas.david.rajamanickam@intel.com>
> Signed-off-by: Prarit Bhargava <prarit@redhat.com>
> ---
> drivers/powercap/intel_rapl.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/powercap/intel_rapl.c b/drivers/powercap/intel_rapl.c
> index cc97f08..0b0d09d 100644
> --- a/drivers/powercap/intel_rapl.c
> +++ b/drivers/powercap/intel_rapl.c
> @@ -1341,11 +1341,13 @@ static int rapl_detect_domains(struct rapl_package *rp, int cpu)
>
> for (rd = rp->domains; rd < rp->domains + rp->nr_domains; rd++) {
> /* check if the domain is locked by BIOS */
> - if (rapl_read_data_raw(rd, FW_LOCK, false, &locked)) {
> + ret = rapl_read_data_raw(rd, FW_LOCK, false, &locked);
> + if (ret)
> + return ret;
> + if (locked)
> pr_info("RAPL package %d domain %s locked by BIOS\n",
> rp->id, rd->name);
> rd->state |= DOMAIN_STATE_BIOS_LOCKED;
> - }
> }
A good spot!
But this patch looks setting DOMAIN_STATE_BIOS_LOCKED bit to all package domains.
I suppose what you are going to do is like below.
--- a/drivers/powercap/intel_rapl.c 2015-11-02 09:05:25.000000000 +0900
+++ b/drivers/powercap/intel_rapl.c 2015-12-09 09:05:33.386142840 +0900
@@ -1340,10 +1340,13 @@ static int rapl_detect_domains(struct ra
for (rd = rp->domains; rd < rp->domains + rp->nr_domains; rd++) {
/* check if the domain is locked by BIOS */
- if (rapl_read_data_raw(rd, FW_LOCK, false, &locked)) {
+ ret = rapl_read_data_raw(rd, FW_LOCK, false, &locked);
+ if (ret)
+ return ret;
+ if (locked) {
pr_info("RAPL package %d domain %s locked by BIOS\n",
rp->id, rd->name);
- rd->state |= DOMAIN_STATE_BIOS_LOCKED;
+ rd->state |= DOMAIN_STATE_BIOS_LOCKED;
}
}
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] powercap, intel_rapl.c, fix BIOS lock check
2015-12-09 0:12 ` Seiichi Ikarashi
@ 2015-12-09 13:27 ` Prarit Bhargava
0 siblings, 0 replies; 4+ messages in thread
From: Prarit Bhargava @ 2015-12-09 13:27 UTC (permalink / raw)
To: Seiichi Ikarashi, linux-kernel
Cc: Rafael J. Wysocki, Jacob Pan, Radivoje Jovanovic, Mathias Krause,
Ajay Thomas
On 12/08/2015 07:12 PM, Seiichi Ikarashi wrote:
> On 2015-12-09 03:33, Prarit Bhargava wrote:
>> Intel RAPL initialized on several systems where the BIOS lock bit (msr
>> 0x610, bit 63) was set. This occured because the return value of
>> rapl_read_data_raw() was being checked, rather than the value of the variable
>> passed in, locked.
>>
>> This patch properly implments the rapl_read_data_raw() call to check the
>> variable locked, and now the Intel RAPL driver outputs the warning:
>>
>> intel_rapl: RAPL package 0 domain package locked by BIOS
>>
>> and does not initialize for the package.
>>
>> Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
>> Cc: Jacob Pan <jacob.jun.pan@linux.intel.com>
>> Cc: Radivoje Jovanovic <radivoje.jovanovic@intel.com>
>> Cc: Seiichi Ikarashi <s.ikarashi@jp.fujitsu.com>
>> Cc: Mathias Krause <minipli@googlemail.com>
>> Cc: Ajay Thomas <ajay.thomas.david.rajamanickam@intel.com>
>> Signed-off-by: Prarit Bhargava <prarit@redhat.com>
>> ---
>> drivers/powercap/intel_rapl.c | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/powercap/intel_rapl.c b/drivers/powercap/intel_rapl.c
>> index cc97f08..0b0d09d 100644
>> --- a/drivers/powercap/intel_rapl.c
>> +++ b/drivers/powercap/intel_rapl.c
>> @@ -1341,11 +1341,13 @@ static int rapl_detect_domains(struct rapl_package *rp, int cpu)
>>
>> for (rd = rp->domains; rd < rp->domains + rp->nr_domains; rd++) {
>> /* check if the domain is locked by BIOS */
>> - if (rapl_read_data_raw(rd, FW_LOCK, false, &locked)) {
>> + ret = rapl_read_data_raw(rd, FW_LOCK, false, &locked);
>> + if (ret)
>> + return ret;
>> + if (locked)
>> pr_info("RAPL package %d domain %s locked by BIOS\n",
>> rp->id, rd->name);
>> rd->state |= DOMAIN_STATE_BIOS_LOCKED;
>> - }
>> }
>
> A good spot!
> But this patch looks setting DOMAIN_STATE_BIOS_LOCKED bit to all package domains.
> I suppose what you are going to do is like below.
>
> --- a/drivers/powercap/intel_rapl.c 2015-11-02 09:05:25.000000000 +0900
> +++ b/drivers/powercap/intel_rapl.c 2015-12-09 09:05:33.386142840 +0900
> @@ -1340,10 +1340,13 @@ static int rapl_detect_domains(struct ra
>
> for (rd = rp->domains; rd < rp->domains + rp->nr_domains; rd++) {
> /* check if the domain is locked by BIOS */
> - if (rapl_read_data_raw(rd, FW_LOCK, false, &locked)) {
> + ret = rapl_read_data_raw(rd, FW_LOCK, false, &locked);
> + if (ret)
> + return ret;
> + if (locked) {
> pr_info("RAPL package %d domain %s locked by BIOS\n",
> rp->id, rd->name);
> - rd->state |= DOMAIN_STATE_BIOS_LOCKED;
> + rd->state |= DOMAIN_STATE_BIOS_LOCKED;
> }
> }
Oh geez :) Of course ... I'll resubmit shortly.
P.
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-12-09 13:27 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-08 18:33 [PATCH] powercap, intel_rapl.c, fix BIOS lock check Prarit Bhargava
2015-12-08 23:30 ` Jacob Pan
2015-12-09 0:12 ` Seiichi Ikarashi
2015-12-09 13:27 ` Prarit Bhargava
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).