The meaning of thermal throttle counters and package power limit notifications in Linux
- by Trustin Lee
Whenever I do some performance testing on my Linux-installed MacBook Pro, I often see the following messages in dmesg:
Aug 8 09:29:31 infinity kernel: [79791.789404] CPU1: Package power limit notification (total events = 40365)
Aug 8 09:29:31 infinity kernel: [79791.789408] CPU3: Package power limit notification (total events = 40367)
Aug 8 09:29:31 infinity kernel: [79791.789411] CPU2: Package power limit notification (total events = 40453)
Aug 8 09:29:31 infinity kernel: [79791.789414] CPU0: Package power limit notification (total events = 40453)
I also see the throttle counters in the sysfs increases over time:
trustin@infinity:/sys/devices/system/cpu/cpu0/thermal_throttle
$ ls
core_power_limit_count package_power_limit_count
core_throttle_count package_throttle_count
$ cat core_power_limit_count
0
$ cat core_throttle_count
41912
$ cat package_power_limit_count
67945
$ cat package_throttle_count
67565
What do these counters mean?
Do they affect the performance of CPU or system? Do they result in increased deviation of performance numbers? (i.e. Do they prevent me from getting reliable performance numbers?)
If so, how do I avoid these messages and increasing counters? Would running the performance tests on a well-cooled desktop system help?