This thread may be similar to Any way to disable specific CPU idle (Cx) states?
I have USB 2.0 CMOS sensor camera that needs to be controlled VIA labview. However , when it captures images sequentially, I notice there is a tear in the image randomly. Upon questioning this with the camera company , I was told the following:
The low frame rate using USB cameras and damaged images of FireWire cameras are caused by the idle states of the CPU. As far as we know, following happens: The communications controller receives a list of commands from the CPU. It starts to execute this list. Now the CPU is idle again and changes in the C3 state for power saving. When the communications controller has finished the command list, it asks the CPU for new commands. While it waits for the CPU coming from C3 into C0, the video capture device keeps sending data, which are not picked up by the communications controller. This causes a buffer overrun and leads to lost data blocks. The USB camera driver can detect these incomplete images and will drop them. The FireWire camera driver can not detect them and therefore you will see the disturbed images. In case you use an Intel CPU, you may try Processor Idle State Manger. It tries to prevent the CPU going into C3 state. The program can be downloaded from http://www.imagingcontrol.com/en_US/downloads/tools/
Here is an example of ImageTear :
This certainly means its because of the CPU Cx states. Is there anyway I can disable them and try capturing images again, My system is always ON. So there is no worry of power issues or power efficiency managements.