Software Tuning, Performance Optimization & Platform Monitoring
Discussion regarding monitoring and software tuning methodologies, Performance Monitoring Unit (PMU) of Intel microprocessors, and platform updating.

P & T states are not exposed in Intel Core i7 - 3770 CPU

slokeshraj
Beginner
653 Views

As per the Intel Spec, the processor Intel Core i7-3770 cpu has Intel Speed Step Technology and it was enabled in BIOS configuration and When we try to retrive the P and T state , it always shows not available in both Windows 7 and Windows 8.

Whereas in Intel Core i7 - 2600 CPU we can able to get the P and T states successfully.

Please help me regarding this issue.

Thanks & Regards

Lokeshraj S

0 Kudos
9 Replies
Patrick_F_Intel1
Employee
653 Views

Hello Lokeshraj,

How are you trying to retrieve the P & T states? And what exactly do you mean by 'shows as not available'?

Pat

 

0 Kudos
slokeshraj
Beginner
653 Views

We have an ACPI driver , which will construct the ACPI tables (PSS object and TSS Object) from ACPI registries  and will gives the information of no of P and T states available for the proscessor. 

>>"shows as not availbale"

Always we are getting no of P and T states as none.

Thanks & Regards

Lokeshraj S

0 Kudos
Patrick_F_Intel1
Employee
653 Views

As I understand it, the _PSS table is in the SSDT acpi table. The SSDT tables (in my experience) appear multiple times, that is, there are multiple SSDT tables. Windows only put the first instance of the table in the registry.

Are you reading the ACPI tables from the registery? If so, you may not be able to get the correct SSDT table.

0 Kudos
slokeshraj
Beginner
653 Views

Hello Patrick ,

           As you mentioned, we are reading the ACPI tables from the registry only and we can able to successfully retrive the P and T states information in i3, i5, and i7 processors. Only in i7-3770 CPU , fails.

 and  Thanks for the quick reply.

Thanks & Regards

 

Lokeshraj S

 

 

0 Kudos
Patrick_F_Intel1
Employee
653 Views

I would suggest checking your code to see if the reason for the error message is that you didn't find the _PSS, _TSS tables in the "in registry" SSDT table and, if this is the reason, print a more specific message (like "didn't find _PSS, _TSS info in the one SSDT table in the registry").

Pat

0 Kudos
slokeshraj
Beginner
653 Views

Currently we are doing as you mentioned, displaying as "No P and T States found".

From where and how can we  read the entire SSDT tables?

 

0 Kudos
Patrick_F_Intel1
Employee
653 Views

The only way I know of (besides reading from the registry) is to read the ACPI tables from memory.

You will need a ring0 driver to read physical memory, then search for the tables in memory and decode the tables. Even if you get this working, I have found problems where I can crash some systems with this approach. Given that some folks probably spend their whole careers getting this working, you should expect to spend a considerable amount of time debugging this if you want it to be robust. And I won't even get started on the security issues of drivers that can read arbitrary memory regions. This effort is beyond the scope of this forum.

Here are a couple of links: http://wiki.xomb.org/index.php?title=ACPI_Tables and http://wiki.osdev.org/RSDP

A better approach might be to ask: what are you trying to accomplish and why?

0 Kudos
Patrick_F_Intel1
Employee
653 Views

You can also see the linux acpidump utility.

The freebsd version can be seen at http://mirrors.mit.edu/FreeBSD/development/FreeBSD-CVS/src/usr.sbin/acpi/acpidump/

The logic is pretty similar to what you'd need to do on windows except for "how to read memory on linux versus windows".

0 Kudos
Bernard
Valued Contributor I
653 Views

You can also try to use windbg in its kenrnel mode  to inspect(debug) acpi, but I suppose that checked version of acpi.sys driver needs to be installed

I was not able to get it working because of lack of checked build components.

0 Kudos
Reply