When I tell Windows to always run the CPU at 100% speed, Planetside gains ~30% to minimum framerates (finally bringing it in line with everyone else's numbers). This also fixes the problem with that memory latency bench where Windows is slower (~130 ns) than Linux or Wine (both ~114 ns). I spend little enough time in Windows (and enough of it is for gaming) that running the CPU full-speed when in Windows isn't a huge problem, but I'm still curious what's going wrong here.
When this problem is occurring, all frequency readouts appear normal except that it isn't boosting. A tweaked version of the memory bench (a long-running single-threaded workload) looks like it brings one core to full speed and stays there, and doesn't jump around between cores much, but 130 ns is as if that core were only clocked at 2.35~2.4 GHz (locking it to 2.7 results in 123 ns, locking to 3.0 results in 116-117 ns).
This CPU only has three speeds for the OS to choose between: 1.55, 2.7, and 3.0 (which is actually 3.2+). The minimum makes about as much difference to the memory bench as the maximum does, almost like half the time it isn't running the thread on the same core the frequency logic thinks it is. The 130 ns results are very consistent, though (130 and 131 are all I've seen from it).
At one point I disabled Cool 'n' Quiet (in the BIOS), got 116 ns, re-enabled it, got 114 ns, opened HWiNFO to see what that looked like in terms of clocks, and it went back to (and stayed at) 130 ns.
It does seem like lately it's been reluctant to boost in both Linux and Windows. Back when I started building that bench, I saw a lot of results more like 110/111 ns, which would be in line for 3.7-ish GHz. Those don't happen now on either OS, and even 1T Prime95 sticks at 3.2. 16T Prime95 blend locked to full speed doesn't go over 55C, so it isn't a thermal problem.
After a CMOS clear, it was boosting properly, but ceased doing so after a couple of bench runs (~20 seconds of load). After turning the RAM back up to the proper speed, I got one but only one 106 ns run, started HWiNFO, and now am getting 122-124 ns repeatably. Locking it to full speed in-OS results in 110 ns. It doesn't appear to be boosting, but is being very liberal with voltage up to 1.2V (usually it uses 1.16V for 3.75 and 0.96V for 3.2).
Disabling global C-state control (necessary to prevent the idle crash bug without excessive SoC voltage) slowed it down a bit more to the old 130/114 numbers. This also keeps it from going over a volt, though doesn't appear to change frequencies at all.
Has anyone got any theories?