Kernel: 3.17rc5 (but also 3.14, 3.10 and probably all other) hw: Dell XPS 15 9530 cpu: i7-4702HQ This CPU has 4 normal cores and 4 HT cores. I was using maxcpus=4 on this machine. After resume from ram machine immediately eats ~10W more. Initially I thought this is some Intel GPU bug and reported https://bugs.freedesktop.org/show_bug.cgi?id=83914 But it looks like after resume all 8 cores are up, eating power while linux kernel only manages first 4. The reset 4 cores are only eating power and producing heat. dmesg: https://bugs.freedesktop.org/attachment.cgi?id=106351 How to reproduce: - boot with maxcpus=4 (with minimal userspace for example) - measure power usage with powertop - suspend to ram, resume from ram - measure power usage again, it rises ~10W How to workaround the problem, online CPUS and then make then offline again: for cpu in $(grep -l 0 /sys/devices/system/cpu/cpu*/online); do echo 1 > $cpu sleep 1 echo 0 > $cpu done After this power usage is back to normal. So, I guess if maxcpus is being used linux kernel should apply some action to other, offline cores, too to avoid them being power hungry.
"all 8 cores are up" - by writting that I mean hardware is up/eating power but kernel still thinks these are offline etc.
maxcpus= cmdline causes Linux to ignore those cpus both at boot-time, and at resume-time. In both cases, they are left in whatever state the BIOS leaves them in. Hopefully that is a low power state, but in this case, it seems the BIOS is not leaving them in a low power state on resume from suspend. Not immediately clear that it is Linux's job to fix this issue.