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

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

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

10 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hello Lokeshraj,

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

Pat

 

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

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.

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

 

 

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

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?

 

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?

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".

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.

Leave a Comment

Please sign in to add a comment. Not a member? Join today