acpi: method: _PSS power dissipation levels can be equal to previous level

Submitted by Colin King on Aug. 1, 2012, 8:21 a.m.

Details

Message ID 1343809274-4227-1-git-send-email-colin.king@canonical.com
State Accepted
Headers show

Commit Message

Colin King Aug. 1, 2012, 8:21 a.m.
From: Colin Ian King <colin.king@canonical.com>

With newer CPUs we are seeing _PSS power dissipation levels that are equal
to the previous level and this is not necessarily an error in the _PSS data.
For example:

P-State 0: CPU 2501 Mhz, 35000 mW, latency 10 us, bus master latency 10 us.
P-State 1: CPU 2500 Mhz, 35000 mW, latency 10 us, bus master latency 10 us.
P-State 2: CPU 2400 Mhz, 33218 mW, latency 10 us, bus master latency 10 us.
P-State 3: CPU 2300 Mhz, 31470 mW, latency 10 us, bus master latency 10 us.

This patch only flags up an error of the level is greater than the previous
level rather than greater or equal.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 src/acpi/method/method.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Keng-Yu Lin Aug. 1, 2012, 8:31 a.m.
On Wed, Aug 1, 2012 at 4:21 PM, Colin King <colin.king@canonical.com> wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> With newer CPUs we are seeing _PSS power dissipation levels that are equal
> to the previous level and this is not necessarily an error in the _PSS data.
> For example:
>
> P-State 0: CPU 2501 Mhz, 35000 mW, latency 10 us, bus master latency 10 us.
> P-State 1: CPU 2500 Mhz, 35000 mW, latency 10 us, bus master latency 10 us.
> P-State 2: CPU 2400 Mhz, 33218 mW, latency 10 us, bus master latency 10 us.
> P-State 3: CPU 2300 Mhz, 31470 mW, latency 10 us, bus master latency 10 us.
>
> This patch only flags up an error of the level is greater than the previous
> level rather than greater or equal.
>
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  src/acpi/method/method.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
> index 032f42e..9e81f07 100644
> --- a/src/acpi/method/method.c
> +++ b/src/acpi/method/method.c
> @@ -2003,7 +2003,7 @@ static void method_test_PSS_return(fwts_framework *fw, char *name, ACPI_BUFFER *
>
>                 /* Sanity check descending power dissipation levels */
>                 if ((i > 0) && (prev_power != 0) &&
> -                   (pstate->Package.Elements[1].Integer.Value >= prev_power)) {
> +                   (pstate->Package.Elements[1].Integer.Value > prev_power)) {
>                         fwts_failed(fw, LOG_LEVEL_MEDIUM, "Method_PSSSubPackagePowerNotDecending",
>                                 "_PSS P-State sub-package %d has a larger power dissipation "
>                                 "setting than the previous sub-package.", i);
> --
> 1.7.10.4
>
This is interesting to know.

Acked-by: Keng-Yu Lin <kengyu@canonical.com>
Alex Hung Aug. 1, 2012, 11:59 p.m.
On 08/01/2012 04:21 PM, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> With newer CPUs we are seeing _PSS power dissipation levels that are equal
> to the previous level and this is not necessarily an error in the _PSS data.
> For example:
>
> P-State 0: CPU 2501 Mhz, 35000 mW, latency 10 us, bus master latency 10 us.
> P-State 1: CPU 2500 Mhz, 35000 mW, latency 10 us, bus master latency 10 us.
> P-State 2: CPU 2400 Mhz, 33218 mW, latency 10 us, bus master latency 10 us.
> P-State 3: CPU 2300 Mhz, 31470 mW, latency 10 us, bus master latency 10 us.
>
> This patch only flags up an error of the level is greater than the previous
> level rather than greater or equal.
>
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>   src/acpi/method/method.c |    2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
> index 032f42e..9e81f07 100644
> --- a/src/acpi/method/method.c
> +++ b/src/acpi/method/method.c
> @@ -2003,7 +2003,7 @@ static void method_test_PSS_return(fwts_framework *fw, char *name, ACPI_BUFFER *
>
>   		/* Sanity check descending power dissipation levels */
>   		if ((i > 0) && (prev_power != 0) &&
> -		    (pstate->Package.Elements[1].Integer.Value >= prev_power)) {
> +		    (pstate->Package.Elements[1].Integer.Value > prev_power)) {
>   			fwts_failed(fw, LOG_LEVEL_MEDIUM, "Method_PSSSubPackagePowerNotDecending",
>   				"_PSS P-State sub-package %d has a larger power dissipation "
>   				"setting than the previous sub-package.", i);
>

8.4.4.2 in ACPI: The list is sorted in descending order by typical power 
dissipation. It does not stop two states being equal.

Acked-by: Alex Hung <alex.hung@canonical.com>

Patch hide | download patch | download mbox

diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
index 032f42e..9e81f07 100644
--- a/src/acpi/method/method.c
+++ b/src/acpi/method/method.c
@@ -2003,7 +2003,7 @@  static void method_test_PSS_return(fwts_framework *fw, char *name, ACPI_BUFFER *
 
 		/* Sanity check descending power dissipation levels */
 		if ((i > 0) && (prev_power != 0) &&
-		    (pstate->Package.Elements[1].Integer.Value >= prev_power)) {
+		    (pstate->Package.Elements[1].Integer.Value > prev_power)) {
 			fwts_failed(fw, LOG_LEVEL_MEDIUM, "Method_PSSSubPackagePowerNotDecending",
 				"_PSS P-State sub-package %d has a larger power dissipation "
 				"setting than the previous sub-package.", i);