-
Notifications
You must be signed in to change notification settings - Fork 426
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
lowlatency kernel cannot use XDMA driver properly #41
Comments
This is likely an issue with the use of simple wait queues. Please try to use later kernel (at least 4.18 or better 5.0+) and report if it does not work. |
The "xdma_xfer_submit" function in libxdma.c calls "spin_lock (& engine-> desc_lock)" and then calls the "wait_event_interruptible_timeout" function with sleep nature. This caused the problem of "BUG: scheduling while atomic: dma_from_device / 3266 / 0x00000000" in the low-latency kernel, but there was no problem in the general kernel. |
ive seen this in QDMA as well. |
Any suggestion to fix that? |
Honestly, it could be related to: #49 I used aligned memory, and the problems lesssned (i think) |
On 5.3.15 x86_generic it will not cause this problem. It happens on my AARCH64 (kernel 4.9.140) board with RT patch. However, even on x86_generic the |
I'm not sure. You should ping xilixn on their forums. There was a XDMA driver written by others that fixed many aarch64 issues. It may fix yours. It was on gitlab if I remember |
I suspect the usage of "swait.h" in this driver causes a lot of problems since the simple wait queue is "BROKEN wait queue" in the kernel now. |
I have personally tested the fix on AARCH64. I would appreciate feedback on the following pull request, which I believe fixes this issue: |
Maybe keep this open until xilinx acknowledge s this? |
Still very buggy on my device, I think it is related to kernel version. |
Hello, My name is Mark Harfouche. I am not affiliated with Xilinx in any way. Over the I've created a fork of dma_ip_drivers which I intend to maintain and work with the The fork can be found https://github.com/hmaarrfk/dma_ip_drivers For now, I am stating the main goals of the repository in If you are interested in working together, feel free to open an issue or PR to Best, Mark |
When I load the XDMA driver with a low-latency kernel on Ubuntu1604, a segmentation fault occurs when running run_test.sh. At this time, I can see the following information through dmesg:
BUG: scheduling while atomic: dma_from_device / 3266 / 0x00000000
The text was updated successfully, but these errors were encountered: