‎11-05-2010 06:56 AM
Hello. We have troubles with our old PCI-MXI-2 & VXI-MXI-2 cards. OS WinXP SP3, NI-VXI 3.6, VISA 4.6.2
Any viMOVEOUT command, issued in A24 adress space, returns VI_ERROR_IO status. I read old posts on this forum and tried to turn off DMA mode for MXI-2. It helps to remove error status but all operations became very slow, inadmissible slow. I'd also tried to switch off SYNC MXI (in regedit set UseSyncMXI=0), but it doesnt solve problem with error status.
Could you ask me how to solve this problem, while not slowing down perfomance?
Thank you for attention.
‎11-08-2010 11:41 AM
ABV-
I hope this helps. Have great day!
‎11-09-2010 04:01 AM
Hello.
Thank you very much for replay.
I've tried to decrease DmaCpuRequestDelay.
At first: I found mentioned regestry keys DmaCpuRequestDelay and DisableMiteDma not in
HKEY_LOCAL_MACHINE/Software/National Instruments/NI-VXI
, but in
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VXI\board0\. At second: I didn't found DmaCpuRequestDelay, but DmaCpuRequestDelayIn and DmaCpuRequestDelayOut.
So, anyway, I've changed value of both delay keys from "2" to "0". Register key DisableMiteDma = 2, so it means that DMA mode is turned on only for viMoveIn accesses. After reloading computer, I mentioned some speeding up of the VXI system. But the problem is still here. In some code places, where are many single register accesses (viIn or viOut) I mention very slow performance.
I want to clear some questions:
1) Is it possible, to turn on MITE DMA for all accesses (because of speed) and solve problem with VI_ERROR_IO in another way?
2) If it is not possible, how I can speed up single register accesses without MITE DMA?
3) Problem with VI_ERROR_IO while viMOVE is dealing with new PCI Express bus? What is the cause?
Thank you for support.
Andrew Bolsky.
Engineer.
Unipax Systems.
‎11-10-2010 04:24 PM
Hi ABV-
Here is another KnowledgeBase article that may help as you debug this issue. It talks specifically about Linux, but I think that the principles still apply here. The key takeaway is that when you disable DMA, the driver falls back to PIO (Programmed I/O) mode. This means that instead of the PCI-MXI-2 fetching memory itself, the CPU fetches memory and then transfers it to the PCI-MXI-2 board. This results in higher CPU use during VXImove and viMove transfers. Also, because the syncMXI protocol cannot be used over the MXI bus when using PIO mode, transfer rates are slower when using PIO over a MXI-2 cable than when using DMA.
Hopefully this helps.
‎11-11-2010 08:23 AM
Hello.
At least, now I understand what happens with MXI-2 controller. On our old computers all works fine. But since we've renewed our computers, appear problem with viMove. OK, will work with DMA off.
Thank you for support.
Andrew Bolsky.
Engineer.
Unipax Systems