My MSR Tool works well. You can crash a computer if you randomly write values into the wrong MSR but if you have the Intel manuals handy and only write to where you should be writing to, then things are OK. A lot of MSRs seem protected and are read only so you can't write junk to them. I tried.
My bios has a supposed option to disable EIST but when you boot up and actually look at MSR 0x1A0, you can see that the bios did not disable it and it is in a locked state so there's no way to change it. I think there are quite a few motherboards and bios versions out there that do this. Users assume that when they turn something off in the bios that it actually gets turned off but that's not always true.
If 800 MHz is the correct SLFM frequency for a T7100 then I guess it must be dropping to 200 MHz X 4.0 which is different than your P8400 which can drop to a 3.0X multiplier. It's possible that the manuals aren't accurate and a T7100 also drops to 3.0X.
While on load it appears to work fine but during low loads it occasionally gives the incorrect reading. See attached log files.
I had a look at the log files and I think i7 Turbo is mostly working correctly. There are a couple of instances where it showed a brief overshoot and reported a multiplier like 9.2X which of course is impossible but other than that, I think what it is telling you at idle is actually very accurate.
When i7 Turbo is not reporting a steady multiplier at idle and it is jumping up and down like a yo-yo, it's usually doing this for a reason. Internally your multiplier can be constantly jumping up and down and most software misses this.
Software like CPU-Z simply samples MSR 0x198 once per second and reports that multiplier. The load CPU-Z puts on a CPU while sampling can force a CPU to the higher multiplier so it will report a nice steady multiplier number while internally the multiplier is jumping up and down hundreds of times a second. I believe that is what i7 Turbo is showing you.
If you are using Vista or Windows 7, go into the control panel -> Power Options and play around with the Minimum processor state. For XP you may need to set it to mobile CPU, even for Desktop CPUs to get this working properly. If you drop this setting to a low number like 5%, this will typically get your actual multiplier to settle down to a steady 6.0. You might also have to adjust C1E and EIST. There seems to be times where the hardware and the software can't agree on what the multiplier should be set to when the CPU is idle so it will rapidly cycle back and forth between say 9.0X and 6.0X. i7 Turbo reports the average of this somewhere around 7.5X but it will be constantly jumping around this number based on background load and how much time it is spending at each multiplier. It also spends time at the intermediate multipliers between the Min and Max multis.
When your log files show the calculated multiplier dropping down towards 3.00, that's a good sign that SLFM is working. As before, multipliers aren't always constant numbers like CPU-Z has led us to believe. The multiplier can be constantly transitioning as it heads towards idle or towards full power. The i7 Turbo average gives you a more accurate picture compared to a single snapshot of an MSR once per second.
To me, the PI-1 IDA log looks OK except for one or two overshoots during transition that I mentioned before. It should be easy for me to get that fixed up.
The PI-1 Norm looks interesting. i7 Turbo is reporting an average multiplier somewhere around 8.75. It shows the first core close to the IDA multi of 9.0 and the other core that is not running SuperPI is at 8.5 so the overall average makes sense. CPU-Z is reporting 9.0 which is correct for core 0. If you run two instances of CPU-Z and you right click on the first instance of CPU-Z and tell it to monitor Core #0 and then you right click on the second instance of CPU-Z and tell it to monitor Core #1, you will likely find CPU-Z is reporting 9.0X for one side of your CPU and 8.5X for the other core.
I've seen this happen with a Q6600 desktop CPU where there was a problem with the bios. The first two cores would run with a 9.0X multi at full load but the other two cores were being limited to only 6.0X. CPU-Z was reporting the full 9.0X which was true for the core that it was reading. One user was scratching his head why i7 Turbo was only reporting an average of 7.5 and I too did some head scratching that day. It wasn't until I used that CPU-Z trick to monitor cores individually that it all started to make sense.
The MSR column in the log file reads the multiplier from the MSR for each core and then averages them. It is reporting 8.75 at full load which confirms one core at 9.0 and the other at 8.5.
Reading the multiplier by reading a single MSR is always a compromise. There are two things you can do to try and improve things but both methods have issues. If you write some code and you simply read the MSR multiplier, the act of reading this value usually causes the multiplier to jump up to its higher state just as you read it. The multi might be idle 99.999% of the time at 6.0 but every time you wake it up and read it, the multi jumps up and reports it's at 9.0X. One trick that is often times used is just before you read the multiplier you do a Sleep(1) and let the CPU settle down a bit. The goal is to try and read it by sneaking up on it and not disturbing it too much. The problem with this method at idle is that it tends to underestimate the multiplier and will report a steady 6.0X even though the multiplier can be jumping around. All software uses one of the two methods or some slight variation of the above but no matter what you do, there is no 100% accurate way to determine the multiplier by reading this MSR. It just gives you a snapshot of the multiplier at that one particular instance in time.
Back to the logs. PI-2 IDA shows both cores fully loaded and that you are getting the full 9.0X multiplier on both cores. CPU-Z says 9.0, i7 Turbo shows 9.000 on both cores and the MSR multiplier in the log file also shows that both cores are reporting the full 9.0X multi. Given that IDA or turbo boost on this CPU is only an extra multiplier of 0.5, it looks like it is capable of running this full time. Core i7 CPUs can drop the turbo boost on some motherboards if they start running too hot and your CPU is likely the same. You might be able to see this since your CPU has been tweaked a little. The other two factors on a Core i7 that effect this are current flow and power consumption of your CPU. Any of these 3 factors can disable turbo boost until the CPU gets within spec again. I'm not sure how advanced the Core 2 mobile CPUs are when turbo throttling.
A T9500 that has the possibility of a full +1.0 multiplier turbo boost doesn't give you the full boost when both cores are fully loaded. Interesting. The idle multiplier jumping up and down is accurately telling you what's going on. The MSR multiplier in the log is being reported as 6.0 because I'm obviously doing a Sleep(1) just before reading it so it has a chance to settle down. CPU-Z will typically report a solid 8.5 or 9.0 when this is going on but I believe that's about as accurate as reporting 6.0. Neither value is truly accurate if the multiplier is constantly changing back and forth between 6.0 and 9.0.
PI-2 Norm with no IDA shows the correct 8.5X at full load. The log file shows at full load both it and the MSR reporting the same.
I apologize about the log file. I'm a bit anal about writing things to the hard drive all the time when testing so I think I cache data and only write it out once per minute or when you exit the program. I'll have a look at that. When sampling, I try to create as small a foot print as possible so the act of sampling is changing the results as little as possible. Use a program like
Process Explorer and you'll be able to see how big an elephant CPU-Z is when sampling. The load it creates sometimes hides the truth.
Thanks for your help with this. Try playing around with EIST / C1E and the Minimum processor state and see how they effect the calculated multiplier at idle. I'm hoping you will be able to see the Calculated Multiplier settle down to 6.0 or close to it at idle and 3.0 when SLFM kicks in. When all power saving features are in agreement, it usually lets the CPU settle down and do its thing.
I tried to access your website but Avast flagged it as having a Trojan. Likely BS but I didn't look into it too much. I have to keep my computer clean because I haven't properly backed it up in the last year or so. Typical.
Edit: I was just wondering, can you set the SLFM bit in MSR 0x199 and force your computer to use use this mode even when fully loaded? On my E8400 I can use this MSR to set the half multi but SLFM isn't supported.