-
Notifications
You must be signed in to change notification settings - Fork 13
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
[linux kernel 5.16, HS38x2] uio driver waiting queue can't wakeup by calling function wake_up_interruptible(). #136
Comments
If I understood you correctly, uio_read runs in a while loope because this check: Could you please check the contents of idev->event and listener->event_count? |
Hi Evgenii, Long time no see!!! Thanks for your quick reply. Yes, you fully understand my question. As your suggestion, I try to print some message when uio waiting IRQ and got IRQ. It seems idev->event had update correctly(log file line 3). But read function can't wakeup and run the while loop when notify function do wake_up_interruptible(). So, I didn't get the event count check message that in read while loop. Does there has other thing need confirm?? I had attach the uio.c and log file as uio_code_and_log_0.zip Thanks, Joshua |
Hi Evgenii, When I stuck in schedule() after execute wake_up_interruptible(). I got following message period. rcu: INFO: rcu_preempt self-detected stall on CPU Stack Trace: Thanks, Joshua |
Hi Joshua, Sorry for delayed reply! Indeed, for some reason wakeup is not working properly. Thanks, |
Hi Evgeniy, Thanks for your reply. Thanks, |
Hi Evgenii, I found some phenomena about this issue. Do you have any recommend for this phenomena ? Thanks, Joshua |
Hi expert,
I try to use uio driver to handle memory access and one IRQ signal. I use those functions to reach this goal: open, write, read. After open uo device and before waiting interrupt by read function. I use write function to renew the IRQ. But sometimes I will stuck in read function.
Then I use "cat /proc/interrupts" to check interrupt trigger time. That uio has one trigger. And I observe the function uio_event_notify(), it has execute the function wake_up_interruptible(). But the uio_read() still stuck in while loop.
Do you know why or there has more method can debug this issue ??
Thanks, Joshua
The text was updated successfully, but these errors were encountered: