Assistance Needed for Kernel mode driver Soft Lockup Issue
Tom Mitchell
niftylinkern at niftyegg.com
Sun Oct 20 18:11:20 EDT 2024
--
Tom M
On Sun, Oct 20, 2024 at 08:02 Muni Sekhar <munisekharrms at gmail.com> wrote:
> On Sun, Oct 20, 2024 at 6:18 PM Denis Kirjanov <kirjanov at gmail.com> wrote:
>
> >>
> >> Analysis:
> >> The soft lockup seems to be caused by the continuous while loop in the
> >> empty_rx_fifo() function. The RX FIFO takes a considerable amount of
> >> time to empty, sometimes up to 1000 seconds. As a result, from the
> >> first occurrence of
> >
> > I guess that you can switch on interrupt model or run a thread to check
> the status there (here I mean check RX empty and release cpu)
> Thanks for your response.
>
> Switching to an interrupt model should resolve it, but unfortunately,
> the hardware I am using does not support interrupts for this
> functionality.
> Would adding udelay() in the while loop after every few iterations
> help avoid CPU hogging, allowing other processes to take control of
> the CPU?
>
> >
> >> 2. Do soft lockup issues auto-recover like this? Is this something I
> >> should consider serious, or can it be ignored?
> >
> >
> > The kernel tells you that your cpu resource is stuck instead of doing
> something useful
> >
> >>
> >> I would appreciate any guidance on how to resolve or mitigate this
> problem.
>
Do as little you can to drain the FIFO into a buffer (one of three).
How deep is the FIFO?
Set a data flow block when the second is full.
Do the math on the data rate the device delivers.
Then add an interruptible thread to process the buffer ( shift and what
ever)
A udelay() can allow other work to proceed and can be a good thing.
A user space driver pinned to a dedicated core can also work.
Interrupts can be costly.
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20241020/517bcdb0/attachment.html>
More information about the Kernelnewbies
mailing list