@MOF so many different variables for throttling one just has to do what one can. The biggest problem I personally see is with AVX2, this seems to operate via a VID table, that is it seems to try and keep core VID below a certain value and what ratio one gets is tied to that.
Here's an example running just one thread with affinity set, just a simply loop, no AVX2. Turbo in yellow.
CPU runs at it's max 30x ratio
Now see what happens when we run just one AVX2 opcode once every 50 milliseconds on one thread of each core.
Power control gets ready for AVX2 by slamming down the ratio to 25x and from what I am led to believe leaves it there for 1 millisecond after the last AVX2 instruction before returning to the top ratio, 30x in this case. The irony in this case is that it doesn't even run the AVX2 as 256bit but needs a warm up period. Some info on Agner Fog's blog, for instance
http://www.agner.org/optimize/blog/read.php?i=387. Limit reasons shows EDP logged, with the event being logged in yellow.
Now if we run the same opcode once every millisecond
Ratio is now dropping to 25x and we can see EDP continually active (red) and only using 37W of power, no current or power throttling..