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

login
register
mail settings
Submitter Colin King
Date Aug. 1, 2012, 8:21 a.m.
Message ID <1343809274-4227-1-git-send-email-colin.king@canonical.com>
Download mbox | patch
Permalink /patch/174400/
State Accepted
Headers show

Comments

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(-)
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

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);