Any way to disable specific CPU idle (Cx) states?
Rise to the top 3% as a developer or hire one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: Cosmic Puzzle
--
Chapters
00:00 Any Way To Disable Specific Cpu Idle (Cx) States?
00:47 Accepted Answer Score 11
02:09 Answer 2 Score 6
05:09 Answer 3 Score 4
06:31 Answer 4 Score 3
07:59 Answer 5 Score 2
08:39 Thank you
--
Full question
https://superuser.com/questions/121883/a...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#cpu #noise #intelcorei5
#avk47
ACCEPTED ANSWER
Score 11
I've checked the Toshiba (Canada) site and there no mention of that problem, either in their technical service bulletins, or from users in the forums.
I then called Toshiba personally (we're a Toshiba reseller/repair depot), and got them to dig around in their notes to see if there are any reports outside of what's on the website. They told me that they can't find anything relating to this being a common, or even previously reported, problem with the Tecra line.
I questioned them on possible warranty replacement, and they responded that if it's under warranty and it's determined that it's not a disk in the DVD drive, or a fan that's failing/whining because it's full of dirt, then that whine is not acceptable, and it would be repaired.
Which is how I would expect to deal with it if you had brought it directly to us.
My suspects would be LCD inverter first (common whiner), and if that proves to be OK, then the next step would be to test with a new CPU (only because it's easier), and then replace the motherboard with the intention being to get rid of faulty voltage controllers and capacitors that are (more likely) causing the noise. None of this "it's normal" crud. ;)
So, if you're under warranty (Tecra's usually have 3 years of warranty; you can check yours here) it sounds like it'd be covered, and that's probably your best bet to get rid of it, and not hamper your battery life (or alike) by disabling features.
ANSWER 2
Score 6
There is a way, even when your goddamn OEM provider locked out everything from your bios just in case you try fix the annoying whine problem in their laptop.
You need to write one Model Specific Register (MSR). It can be done with several utilities (RW-Everything, CrystalCPUID or whatever you can find).
The exact MSR address and the C-State values for a plenty of Intel CPUs can be found in Intel® 64 and IA-32 Architectures Software Developer’s Manual (Volume 3B: System Programming Guide, Part 2).
I have Core i5 520M and the register for it is MSR_PKG_CST_CONFIG_CONTROL (0x00E2). You need to specify the highest possible value in Package C-State limit field (bits 2:0) for which the whine disappears. (In my case the change was from 3 down to 1)
In case of RW-Everything you need to add the register and its address manually using the user list function of the MSR access window.
In case of CrystalCPUID you can set the value per core (Core i5 520M has 2 cores which are displayed as 4 CPUs) and basically downgrading one core is enough to stop the whine.
Unfortunately both utilities I've found doesn't give a way to make them do what's needed automatically, so you need to start them and change the value manually every time you start your PC, but at least the configuration is remembered and you can close the utilities after the change.
Newly added:
RW-Everything actually provide an automated method, a script can be loaded from the command line via rw.exe /command=ScriptName.rw
In my case the script is:
>CPU 3
>WRMSR 0x00e2 0x00000000 0x02000401
>RwExit
CPU 3
focuses the second core of the CPU, if omitted the first core (CPU 1 and CPU 2) will be focused. If both cores must be configured separate WRMSR
commands are needed after focusing each of the cores.
Keep in mind that the value to be written is probably CPU model specific. Your default can be seen in the RW-Everything's MSR window.
The next step is to create a scheduled task which to run the application at startup and after resuming from sleep (the config is reset then).
EDIT: please take note this is only going to work if CFG Lock (aka MSR 0xE2[15] bit) is not set. If that's the case the aforementioned control bits will be protected, and any write attempt is gonna raise a STATUS_PRIVILEGED_INSTRUCTION exception (that can in turn lead to RWE's driver rwdrv.sys throwing a SYSTEM_SERVICE_EXCEPTION blue screen).
There are actually many ways to disable this thing (and some BIOS may even have a dedicated GUI toggle for it), but they all involve at least some mild familiarity with the system BIOS.
ANSWER 3
Score 4
Philippe is right on about cpu whine and how common it is. I am an IT technician and can testify. It not really the cpu that whines but rather a coil on an inductor on the motherboard near the cpu voltage regulators. When certain voltages are applied a resonance can sometimes be heard. I've had lcd monitors that whined when in power save mode. Opening it up and applying a drop of hot glue fixes it. Similar principle and could probably be fixed the same way. Most of the core 2's and up have some sort of whine in certain power states if you can listen closely. Factors like case design and fan placement affect the degree you can hear it. Like most of the other posters, I too at first thought it must be an lcd inverter, or some moving part like a fan or hard drive, but you can open up the machine and use a straw by your ear to isolate the sound. If your bios had an option to disable enhanced power states you'd be good. I'm currently dealing with the same issue on a core i5 430 Asus laptop. This is common in certain macbooks from a few years ago. Dell even has a KB article describing it.
Google "cpu whine" or "how to disable c4 state" for countless others. I can only post one link here.
ANSWER 4
Score 3
From Microsoft Support (for a different issue, but still helpful):
You can disable the Advance Configuration and Power Interface (ACPI) C-states by using a BIOS firmware option on the computer. If the firmware does not include this option, a software workaround is available. You can disable the ACPI C2-state and C3-state by setting a registry key. To do this, follow these steps:
1. At a command prompt, run the following command:
reg add HKLM\System\CurrentControlSet\Control\Processor /v Capabilities /t REG_DWORD /d 0x0007e066
2. Restart the computer.
Note The computer idle power consumption will increase significantly if the deeper ACPI C-states (processor idle sleep states) are disabled. Windows Server 2008 R2 uses these deeper C-states on the Xeon 5500 series as a key energy-saving feature.
To continue to benefit from these energy-saving states, remove the registry key that you set in step 1 after you install the hotfix that this article describes. To do remove the registry key, follow these steps:
1. At a command prompt, run the following command:
reg delete HKLM\System\CurrentControlSet\Control\Processor /v Capabilities /f
2. Restart the computer.
ANSWER 5
Score 2
Rather than some BIOS setting, on my first MacBook keeping the webcam running would ensure some specific power saving never happened, and kept the "CPU Whine"† from occurring.
Likewise, in an answer by nik, a Dell support article is mentioned which blames the C3 (clock-stopped) power state. It suggests enabling bluetooth to keep the C3 state from entering.
† Despite the name "CPU Whine", it's often --if not always-- not the CPU, but the capacitors of the power supply that cause the whine.