AnsweredAssumed Answered

3700U p-state increases with GPU load

Question asked by hasteech on Feb 23, 2020

When idling and plugged in, AMD uProf says all cores are in the P0 state, with occasional brief changes to other P states.  In the P0 state, the CPU frequency is roughly 2GHz.  When playing videos or games, AMD uProf says all cores are in the P2 state, with occasional brief changes to other P states correlated with CPU load from programs other than the video player or game.  In the P2 state, the CPU frequency is roughly 1.4GHz.  This harms performance, sometimes to the point of being troublesome.


This occurs with a Lenovo e595 with a 3700U running the drivers.


Some of the programs that exhibit the issue: 

  • VLC
    • Windowed: P2 while playing/paused
    • Fullscreen: P2 while playing/paused
  • Movies & TV
    • Windowed: P2 always
    • Fullscreen: P2 always
  • GTA4
    • Windowed: thermal throttling when active, as expected
    • Fullscreen: P2 always
  • Faster Than Light
    • Windowed: no problem
    • Windowed fullscreen: P2 when active
    • Exclusive fullscreen: P2 when active
  • Dolphin
    • Windowed: no problem
    • Fullscreen: P2 when active
  • RetroArch (menu only)
    • Windowed: no problem
    • Fullscreen: P2 when active


Performance problems are most noticeable when the program is single threaded and CPU bound.  In the case of windowed Dolphin, all cores are in P0, the socket power usage is under the TDP, and temperatures are around 50C when windowed.  However, in fullscreen mode and when active, all cores shift to P2, socket power usage drops further below TDP, and temperatures drop under 50C, at the cost of FPS.


There seem to be two symptoms here, likely related.  When the problem occurs, all cores shift to P2.  Additionally, load from the first thread of the problematic program does not cause the utilized core to shift P state.  Load from other programs can cause shifts in P state on utilized cores, but those cores will shift back to P2 when the load ends.  It seems like load from additional threads from the problematic program do cause P state shifts.


Is this an AMD or Lenovo issue?  Are there even any vendor controls that can cause P state shifts like this?