Re: C-states of Intel CPU's cause firewire transfer corruptions
Brought to you by:
aeb,
bencollins
From: Clemens L. <cl...@la...> - 2012-08-08 13:50:55
|
Nizamov Shawkat wrote: > On old PC this CCD camera was connected using VT6307 card. I used this > setup for more than the year and it showed no corruptions at all [...] > However, after connecting the same camera using the same VT6307 card > to the quad-core p5@2.8GHz The P5 was sold in 1993. Do you mean the i5-2300? > 8 Gb RAM (Linux), I noticed that there are corruptions in the acquired > frames. [...] > With the same VT6307 card and CCD camera on my newer Linux workstation, > I noticed that about 1 byte in 15000 bytes would be lost (actually in > my case that means that approximately 1 line of pixels would be zeroed > out in every 5-10 frames). Please note that modern Intel chipsets do not have PCI support, so many mainboards include some PCIe/PCI bridge chip -- and almost all vendors try to save a few cents by using cheap crap. Which bridge do you have (lspci)? PCI transfers data one 32-bit word at a time, while PCIe uses packets that can be much larger. How a PCI data burst is split into packets depends on the bridge implementation, especially on how much buffer space it has. PCIe cards with a PCI controller should use a suitable bridge; PCIe controllers do not have this problem. > I guess that this is very small error rate The expected error rate for a correctly designed and configured system is expected to be essentially zero. > I changed PCI ports, made sure that there is no other PCI devices on > the bus, adjusted all possible PCI bus and device settings including > exotic ones (memory/address stepping), played with giving real-time > priority to my test program, higher interrupt priority to the firewire > module, tried to force VT6307 to run in OHCI1.1 mode, recompile dc1394 > libraries, coriander etc. I tried a fresh Linux kernel 3.5. I got the > smaller rate of corruptions but never could get rid of them > completely. In theory, none of these should be able to affect your C-state problem. Were there methods that actually did have a significant effect? > I could not find the LSI chips with 4kb buffer therefore I > bought FW card with 2 Kb buffer, but with much more robust TI chip > (43AB23). PCI or PCIe? If the latter, which bridge? > I found an application note which blamed that newer Intel CPU's > introduced so known C-states for power consumption reduction. They > claimed that even if a single core of CPU gets into such state, not > only its frequency, but the bandwidth of buses will be reduced too! All modern CPUs include the memory controller, so they have to be woken up for the controller to be able to write data to memory. The deeper the sleep state, the longer it takes to wake up. (In theory, it should be possible to configure the MC to prevent it from sleeping, but I doubt that there is any BIOS option for this.) Regards, Clemens |