-
Notifications
You must be signed in to change notification settings - Fork 119
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
Non zero-copy dma_test errors after recent DMA refactor #73
Comments
Hi!
Could you try to run it under nice -n -20? |
This does not happen on fb1513e:
Lower niceness does not help. |
I can cause the same problem on both old and new versions with some CPU load and some positive niceness, but can't detect any difference between them yet. Still trying. Most likely you don't see anything in dmesg because overflows and underflows are reported with dev_dbg() which is not compiled by default - I do see them after enabling, easiest way is
inside the module main.c (and probably these should be promoted to errors permanently). While reviewing the refactoring I found that the test logic should be corrected a bit - read verification should only start after all buffers are written: sergachev@52a814d - but that should only affect the beginning of the test. |
One more problem I spotted is that dma_test is not so good at detecting errors - even when the module reports overflows/underflows dma_test can show 0 errors. That's most likely because of static content and arrangement of buffers. Changing the data pattern and buffer sequence continuously would be best, but also ok is to at least zero read buffers - sergachev@be856eb - performance penalty looks unnoticeable. This is true both pre and post #65 . |
With 444e995#diff-6098cfbe69612f9e6f1723251f5efca9734bc9861bf188158b0787b361e7ce6e, writes are now done continously (as it was before in fact). We'll now just have to ensure that the length of the LFSR is different from the total length of a DMA loop. |
Was it? Look at something old enough:
|
Sorry, this was indeed the case before but in older version (c4c8705) I'm the one who simplified it :) |
After #65, non zero-copy
dma_test
occasionally results in errors:FWIW, I tried with the various error checking PRs I have created here, and it isn't a
read
orioctl
that's silently failing.cc @sergachev
The text was updated successfully, but these errors were encountered: