[etherlab-dev] wait_event() causes uninterruptible_sleep
    Geller, Nir 
    nir.geller at servotronix.com
       
    Wed Jan 29 11:31:15 CET 2020
    
    
  
Hi There,
we are working with etherlab's ethercat master and recently we've encountered a problem that is related to a non interruptible wait_event().
The scenario:
A multi-threaded user space app cyclically reads SDO from some ecat slave.
The user space app then crashes.
All the threads end besides the one that performs the SDO read:
.....
1022  1022 TS       -   0  19   0  0.0 Zl   task_dead                abcde <defunct>
1022  1202 RR       2   -  42   0  0.6 Dl   ecrt_master_sdo_upload   abcde1
.....
This situation interferes with debugging the app, and prevents a core dump from being generated.
In master.c in ecrt_master_sdo_upload() I see an invoke of wait_event_interruptible() followed by an invoke of wait_event().
After changing wait_event() to wait_event_interruptible() the app can successfully crash, and it is now easier to debug.
Needless to say, we need a core dump to be generated when the app crashes at costumer's site.
The question is what is the reason behind using wait_event() instead of wait_event_interruptible() ?
Is it safe for us to change the code?
Thanks,
Nir.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-dev/attachments/20200129/406a569c/attachment.html>
    
    
More information about the etherlab-dev
mailing list