DMA problems

Dr. Rolf Jansen rj at obsigna.com
Wed May 15 23:10:46 UTC 2019


I am in the process of deploying to a computer of a customer a software for measurement of electrical signals by the way of a data acquisition board from National Instruments NI PCIe-6351.

My development machine and the computer of the customer are running the latest FreeBSD 12.0-RELEASE-p4. Other software installations and settings are nearly identical.

The development system consist of an ASrock B250M Pro4 motherboard, equipped with a Core i7-7700K @ 4.2 GHz + 16 GB of RAM.
The deployment machine is a Dell OptiPlex 7060 Minitower XCTO, which employs a Core i5-8500 CPU @ 3.00GHz + 8 GB of RAM.

On the dev machine, my software is running perfectly and by utilizing DMA I can drive the ADC scan rate up to 1 Msamples/s and the DAC update rate up to 2.8 Msamples/s. On the deployment computer, DMA seems to be non-functional. While slow, on demand ADC sampling and DAC updating does work like all other functions of said DAQ board seem to work OK. However, once DMA is involved, the customer’s system hangs, waiting for the DMA channels filling with measurement data which doesn’t seem to happen.

I am a little bit lost now.

May it be that the DMA controller of the Dell OptiPlex is somehow incompatible with FreeBSD and/or the NI DAQ board?
How may I debug this issue?

The DMA memory is allocated by a kernel module and the virtual and physical addresses are informed to the user land measurement software which in turn adjusts the NI-DAQ board respectively.

Once, again, on the ASRock i7 system DMA works perfectly, on the OptiPlex i5 DMA hangs. I got older systems having old NI PCI-6251 boards installed on Intel D510M motherboards wit Dual Core Atom  @1.6 GHz + 2 GB of RAM. On these systems, DMA is working as well in quite a similar way. What’s the problem with DMA and Dell?

Any insights would be highly appreciated.

Best regards

Rolf


More information about the freebsd-drivers mailing list