Linux driver concurrent periodic DMA transfers

Questions and discussions about the Xillybus IP core and drivers

Linux driver concurrent periodic DMA transfers

Postby Ves »

Hello,

We are trying to extend existing xillybus linux kernel driver to access multiple Xillybus-based devices, configured with the same IDT type.
We need to be able to perform periodic DMA operations concurrently in the kernel mode on the same IDT r/w channel and which are initiated from two different timer routines - one routine needs to write data block to the device every 100ms, the other needs to read data block (different offset) from the device every 20ms.
Would it be possible to safely access devices in such manner with 20ms latency?
Could you help with any instructions or advice regarding how to do it properly?
Also it would be desirable (but less critical) if the user mode file access-based functionality can be preserved.

Thanks in advance for any help
Ves
 
Posts: 1
Joined:

Re: Linux driver concurrent periodic DMA transfers

Postby support »

Hi,

It's not clear why you need to do anything with the Linux driver. If you want to have multiple endpoints with the same configuration, udev rules can be used to prevent the device files' name collisions. If you want to do periodic access -- that can be done from the user space as well. If you're unhappy with the device files a single core supplies -- make a custom one in the IP Core factory.

So why do you feel a need to play with the driver?

And by the way -- you didn't mention if you're working with PCIe or a Xillinux-based platform.

As for latency -- there have a few teams of Physics professors researching plasma reactions using Xillybus, working with latencies as low as 30-50 microseconds with userspace programs, so your 20 ms intervals should be more than possible. Odds are you'll have no problems at all with that.

For some guidelines for proper low-latency programming, see http://xillybus.com/doc/xillybus-latency

Regards,
Eli
support
 
Posts: 802
Joined:


Return to Xillybus