13

I just got a new Toshiba Tecra S11 notebook, which has a Core i5 520M CPU, and it appears to suffer from a well-known problem: a high pitched noise when the CPU is idle.

Googling around revealed that this is caused by a specific power-saving mode in the CPU. In most cases, C4 mode is blamed for the noise.

So my question is: is it possible to disable C4 mode (or any other "sleep" mode) using some utility or BIOS setting? I don't mind if it hurts battery life.

I'd appreciate any advice on this matter. It's driving me crazy.

FYI: I'm running Windows 7 64-bit

5
  • Is the system alseep when it's whistling, or is it awake and just 'idle', like you've stated in the quesiton? Mar 19, 2010 at 23:23
  • It happens when the CPU is idling (not asleep). So when it's not doing any work (just sitting at the desktop, or waiting for a key stroke in a word processor). It's a known problem, and it's apparently caused by one of the power saving states of the CPU. So if I can disable this state, the problem should be fixed Mar 20, 2010 at 8:42
  • if the system isn't in a sleep state, then it's probably not going to be a sleep state that's causing it. :) Have you contacted Toshiba about it? Mar 21, 2010 at 23:23
  • The CPU is entering "idle" mode, one of the power saving modes. It's definitely this idle mode which is causing the problem. It's described all over the net, so it's a common problem. The only problem is that the few tools that can fix this problem do not work with newer CPUs like the Core i5. Mar 22, 2010 at 7:26
  • I changed the title to refer to "idle (Cx) states", since "sleep" usually refers to the S-states. The C-states generally just seem to be called "C-states" or "Cx".
    – coneslayer
    Feb 3, 2011 at 14:30

12 Answers 12

11
+100

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.

6
  • Please stay around at SU (and please start selling Apple things too) ;-) Great action!
    – Arjan
    Mar 22, 2010 at 19:36
  • After trying everything, I figured it may indeed be the best solution (sending it back). Mar 22, 2010 at 20:08
  • I asked several people to listen to my laptop, and they all said that there's a very annoying high-pitched sound coming from the keyboard area. (I was starting to think it was just me). So I'm going to return it tomorrow, because it's driving me mad. Mar 22, 2010 at 20:29
  • @Phil: If it's been more than 30-days, and it's not from an enormous chain-store (none for those sell Tecra's around here), please don't expect it to be replaced, it'll be repaired. Also, you'll be dealing with an independent repair depot in contract with Toshiba, they don't stock every part for every notebook, and instead rely on Toshiba's inventory and shipping methods (which is usually next-day on any in-stock part). @Arjan: I'll be sticking around, I'm hooked. ;) Mar 22, 2010 at 21:58
  • I just got it (last friday), so I'll be very disappointed if I have to wait for it being repaired. After all, I bought the thing because I needed a laptop. If it's going to take weeks to repair, I won't be "happy"... Mar 23, 2010 at 7:39
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.

3
  • I have Core i5 460M and whenever I try to update that register I get BSOD. Are there any other steps you had to do to get this to work?
    – Kevin
    May 4, 2011 at 11:53
  • Trying to change the 0xe2 register value (using the tools on biosbits.org) also fails on all CPUs. The value is 0x6008407 and it fails with any other value. I'm wondering if the register address I'm using is wrong.
    – Kevin
    May 4, 2011 at 12:30
  • Take note that just months after this answer (version 040), the information shifted to Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3C: System Programming Guide, Part 3. And since 2017 (version 062) it moved again to Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 4: Model-specific Registers.
    – mirh
    Nov 24, 2022 at 16:15
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.

http://support.dell.com/support/topics/global.aspx/support/dsn/en/document?c=us&cs=19&dl=false&l=en&s=dhs&docid=0A7D5CD2E17F5125E0401E0A55176204&doclang=en

Google "cpu whine" or "how to disable c4 state" for countless others. I can only post one link here.

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.

1
  • Curiously, the bit mask was originally 0x0007c044. Too bad it isn't documented anywhere, unlike its kind of "predecessor" CStateFlags (which shouldn't work in newer Windows, unlike AllowPepPerfStates, Capabilities, Overrides and DisableAsserts).
    – mirh
    Nov 24, 2022 at 18:12
2

I disabled Intel SpeedStep in my Dell 1557 laptop bios (no option for disabling C3, C4 etc there) and that's seemingly fixed the whining problem for me! But of course this is hardly a fix, I've never used my laptop's battery, so at this moment in time this is perfectly okay for me.

And if I ever wanted to maximize my battery performance at the expense of whine, I could just make a simple bios alteration. I'm sure if you get into the habit of changing this bios option on and off, it's not such a big deal, just like typing a user account password when logging onto an OS.

If it works for you, please spread the word! Blogs, YouTube (videos and comments) wherever. So many people have this exceedingly annoying problem!

Of course a better work around would be for Dell and other laptop manufacturers to update their bios to automatically switch off SpeedStep when AC power IS detected and then switch it back on when AC power IS NOT present, or removed. An option for leaving SpeedStep off permanently would be good to keep as well, for those who are willing to sacrifice battery performance for a lack of whine!

If SpeedStep can be switched on and off through software as well, they could make a simple program to do the same thing.

Perhaps someone wants to start up a petition and get websites like anandtech.com, lifehacker.com, thinq.co.uk etc, magazines and online shows like Tekzilla to put pressure on laptop manufacturers to do this? Personally I've got too many health probs at the moment to bother with all this malarkey, so someone else will have to pick up the ball. I have no idea what percentage of people this will work for, but if it works for a significant amount of people, it may well be worth pursuing! Of course other fixes like the Bluetooth and RMClock ones should be mentioned.

1
  • On my Lenovo laptop I can set speedstep to be on or off depending on whether or not it's plugged in. Feb 3, 2011 at 14:56
2

My interpretation of this "(Behavior is the same as 000b)" from the documentation is that the CPU will behave like it is not sleeping, which is true for C1 as the CPU is just halted and can resume to work instantaneously.

Unfortunately for Nehalem C2 (stopped clock) cannot be specified as limit and C3 (low voltage) is causing the problem, so C1 limit is the only reasonable alternative.

However, even with C0 or C1 limit my CPU is not overheating and the fan is not going crazy like it happens with the other fix (to disable idling of the CPU from Windows power management) so I suppose even with C0 limit there are some enabled power saving mechanisms.

When I'm on power supply it is enough for me that the fan is not crazy and there is no whine. When on battery I have not noticed life reduction greater than 30 minutes, but in case of desperate need I can always switch on the whine :)

2

I was confirming Petko's post as a working fix, and contributing by mentioning the possibility of BIOSbits.org modified GRUB configuring the BIOS for the user on startup. However, I do not know if the OS will override on startup.

After a few hours testing, I can confirm with Petko's similar results from today in XP and Windows 7. not so much heat or battery life difference, but a lot less whine.

The problem of having to manually open the program and enter the data can be solved by using a utility called Autohotkey from Autohotkey.com. It's free and allows you to compile a binary that will launch CPUID and enter the commands to disable the deeper Cstates.

0
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.

1

In general you should be able to change the power management settings in BIOS. Believe it will be the ACPI field.

1
  • I did that, and it's fine until Windows is booted. It seems Windows overrides the BIOS power management settings Mar 20, 2010 at 12:29
1

I have the same problem with my Dell M1330 with a 2.4 GHz C2D. I used RMClock to disable the C4 state (it's the only way I've found so far), and the whine went away instantly.

Every single other solution for the whine (disabling popup/popdown, undervolting, etc.) did absolutely nothing. Dell has no option to disable C4 in the bios. Unfortunately, RMClock usually/always freezes my system (Win7 x32) minutes after I click this setting, so I get a few minutes of blissful silence before the computer locks up.

I've been searching everywhere for another way to disable C4 - I doubt that it's disabling C4 itself that's locking up my system, but rather a bug in RMClock (which stopped development in '07).

1
  1. Download and install throttlestop
  2. Press the button which says c0, it is probably c7 on your pc.
  3. Set the limit to c0

enter image description here

0
0

i hope OS idle state is different from processor idle state.

i wrote a program for myself to prevent the system going idle though i had full control of the operating system.

IF this could be useful THEN

http://vikku.info/programming/win32api/prevent-windows-system-entering-idle-state-using-windowless-timers-getlastinputinfo.htm see the download section

ELSE

just add a comment stating that my answer is irrelevant then i will remove my answer so that it will not mislead the users.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .