Project Home
Project Home
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - io-display pends on a mutex indefinitely: (4 Items)
   
io-display pends on a mutex indefinitely  
I'm using SDP 6.4.1 on a vmware box.
I have a strange issue when I try to use OpenGL.
The code creates in sequence:
- 2 surfaces capable of 3D operations (flag GF_SURFACE_CREATE_3D_ACCESSIBLE)
- from the previous surfaces creates a 3d target surface
- then use it as native for EGL
- after the code try to create a surface for offscreen drawing (offscreen framebuffer) but at this point my code wait 
indefinitely on a reply from io-display.

Looking on io-display I can see that one thread is waiting to lock a mutex. Seems that this mutex wasn't unlocked on the
 last AGF operation. Using the symbols and looking deeper in the mutex is possible to see that the values are very 
strange, like an uninitialized mutex.
As attachment I send the screen shot of the "injured" thread call stack.

Thanks,
Mario.
Attachment: Image io-display.jpg 101.6 KB
Re: io-display pends on a mutex indefinitely  
The __count is 0x80000001, and the owner is 0xb0200001, which looks perfectly normal.
Looks like thread 1 (I assume of the same process) has the process locked.

If you post the backtrace of thread1 then the graphics guys will likely be able to tell
you the cause.  You should also post the output of pidin

Mario Mastrodicasa wrote:
> I'm using SDP 6.4.1 on a vmware box.
> I have a strange issue when I try to use OpenGL.
> The code creates in sequence:
> - 2 surfaces capable of 3D operations (flag GF_SURFACE_CREATE_3D_ACCESSIBLE)
> - from the previous surfaces creates a 3d target surface
> - then use it as native for EGL
> - after the code try to create a surface for offscreen drawing (offscreen framebuffer) but at this point my code wait 
indefinitely on a reply from io-display.
> 
> Looking on io-display I can see that one thread is waiting to lock a mutex. Seems that this mutex wasn't unlocked on 
the last AGF operation. Using the symbols and looking deeper in the mutex is possible to see that the values are very 
strange, like an uninitialized mutex.
> As attachment I send the screen shot of the "injured" thread call stack.
> 
> Thanks,
> Mario.
> 
> 
> 
> _______________________________________________
> 
> OpenGL ES
> http://community.qnx.com/sf/go/post42622
> 
> 
> ------------------------------------------------------------------------
> 

-- 
cburgess@qnx.com
Re: io-display pends on a mutex indefinitely  
Attached the new screenshot. I have omitted the first thread because it is simply waiting for SIGTERM. 
The others are waiting for work to be done rather than the third that want to serve the request from my process.

Here the output of pidin. My process is 303137.


     pid tid name               prio STATE       Blocked                     
       1   1 boot/procnto-instr   0f READY                                   
       1   2 boot/procnto-instr 255r RECEIVE     1                           
       1   3 boot/procnto-instr 255r RECEIVE     1                           
       1   4 boot/procnto-instr  10r RUNNING                                 
       1   5 boot/procnto-instr 255r RECEIVE     1                           
       1   6 boot/procnto-instr  10r RECEIVE     1                           
       1   7 boot/procnto-instr  10r RECEIVE     1                           
       1   8 boot/procnto-instr  10r RECEIVE     1                           
       1   9 boot/procnto-instr  10r RECEIVE     1                           
       1  15 boot/procnto-instr  10r RECEIVE     1                           
       1  16 boot/procnto-instr  10r RECEIVE     1                           
       1  18 boot/procnto-instr  10r RECEIVE     1                           
       2   1 sbin/tinit          10o REPLY       1                           
    4099   1 proc/boot/pci-bios  10o RECEIVE     1                           
    4100   1 proc/boot/slogger   10o RECEIVE     1                           
    4101   1 proc/boot/io-usb    10o SIGWAITINFO                             
    4101   2 proc/boot/io-usb    21r RECEIVE     4                           
    4101   3 proc/boot/io-usb    21r RECEIVE     7                           
    4101   4 proc/boot/io-usb    21r RECEIVE     1                           
    4101   5 proc/boot/io-usb    10o RECEIVE     10                          
    4101   6 proc/boot/io-usb    10r NANOSLEEP                               
    4101   7 proc/boot/io-usb    10o RECEIVE     10                          
    4102   1 proc/boot/io-hid    10o SIGWAITINFO                             
    4102   2 proc/boot/io-hid    21r RECEIVE     1                           
    4102   3 proc/boot/io-hid    10o RECEIVE     4                           
    4102   4 proc/boot/io-hid    15r RECEIVE     12                          
    4102   5 proc/boot/io-hid    10r REPLY       4101                        
    4102   6 proc/boot/io-hid    10o RECEIVE     4                           
    4102   7 proc/boot/io-hid     9r RECEIVE     16                          
    4103   1 /boot/devc-con-hid  10o RECEIVE     1                           
    4103   2 /boot/devc-con-hid  10o REPLY       4102                        
    8200   1 roc/boot/devb-eide  10o SIGWAITINFO                             
    8200   2 roc/boot/devb-eide  21r RECEIVE     1                           
    8200   3 roc/boot/devb-eide  21r RECEIVE     4                           
    8200   4 roc/boot/devb-eide  10o RECEIVE     10                          
    8200   6 roc/boot/devb-eide  10o RECEIVE     7                           
    8200   9 roc/boot/devb-eide  10o RECEIVE     7                           
    8200  11 roc/boot/devb-eide  10o RECEIVE     7                           
    8200  12 roc/boot/devb-eide  10o RECEIVE     7                           
    8200  14 roc/boot/devb-eide  10o RECEIVE     7                           
   20489   1 sbin/pipe           10o SIGWAITINFO                             
   20489   2 sbin/pipe           10o RECEIVE     1                           
   20489   3 sbin/pipe           10o RECEIVE     1                           
   20489   4 sbin/pipe           10o RECEIVE     1                           
   20489   5 sbin/pipe           10o RECEIVE     1                           
   24586   1 sbin/mqueue         10o RECEIVE     1                           
   61451   1...
View Full Message
Attachment: Image io-display.jpg 94.41 KB
Re: io-display pends on a mutex indefinitely  
Attached the dump of io-display during stalling.

> Attached the new screenshot. I have omitted the first thread because it is 
> simply waiting for SIGTERM. 
> The others are waiting for work to be done rather than the third that want to 
> serve the request from my process.
> 
> Here the output of pidin. My process is 303137.
> 
> 
>      pid tid name               prio STATE       Blocked                     
>        1   1 boot/procnto-instr   0f READY                                   
>        1   2 boot/procnto-instr 255r RECEIVE     1                           
>        1   3 boot/procnto-instr 255r RECEIVE     1                           
>        1   4 boot/procnto-instr  10r RUNNING                                 
>        1   5 boot/procnto-instr 255r RECEIVE     1                           
>        1   6 boot/procnto-instr  10r RECEIVE     1                           
>        1   7 boot/procnto-instr  10r RECEIVE     1                           
>        1   8 boot/procnto-instr  10r RECEIVE     1                           
>        1   9 boot/procnto-instr  10r RECEIVE     1                           
>        1  15 boot/procnto-instr  10r RECEIVE     1                           
>        1  16 boot/procnto-instr  10r RECEIVE     1                           
>        1  18 boot/procnto-instr  10r RECEIVE     1                           
>        2   1 sbin/tinit          10o REPLY       1                           
>     4099   1 proc/boot/pci-bios  10o RECEIVE     1                           
>     4100   1 proc/boot/slogger   10o RECEIVE     1                           
>     4101   1 proc/boot/io-usb    10o SIGWAITINFO                             
>     4101   2 proc/boot/io-usb    21r RECEIVE     4                           
>     4101   3 proc/boot/io-usb    21r RECEIVE     7                           
>     4101   4 proc/boot/io-usb    21r RECEIVE     1                           
>     4101   5 proc/boot/io-usb    10o RECEIVE     10                          
>     4101   6 proc/boot/io-usb    10r NANOSLEEP                               
>     4101   7 proc/boot/io-usb    10o RECEIVE     10                          
>     4102   1 proc/boot/io-hid    10o SIGWAITINFO                             
>     4102   2 proc/boot/io-hid    21r RECEIVE     1                           
>     4102   3 proc/boot/io-hid    10o RECEIVE     4                           
>     4102   4 proc/boot/io-hid    15r RECEIVE     12                          
>     4102   5 proc/boot/io-hid    10r REPLY       4101                        
>     4102   6 proc/boot/io-hid    10o RECEIVE     4                           
>     4102   7 proc/boot/io-hid     9r RECEIVE     16                          
>     4103   1 /boot/devc-con-hid  10o RECEIVE     1                           
>     4103   2 /boot/devc-con-hid  10o REPLY       4102                        
>     8200   1 roc/boot/devb-eide  10o SIGWAITINFO                             
>     8200   2 roc/boot/devb-eide  21r RECEIVE     1                           
>     8200   3 roc/boot/devb-eide  21r RECEIVE     4                           
>     8200   4 roc/boot/devb-eide  10o RECEIVE     10                          
>     8200   6 roc/boot/devb-eide  10o RECEIVE     7                           
>     8200   9 roc/boot/devb-eide  10o RECEIVE     7                           
>     8200  11 roc/boot/devb-eide  10o RECEIVE     7                           
>     8200  12 roc/boot/devb-eide  10o RECEIVE     7                           
>     8200  14 roc/boot/devb-eide  10o RECEIVE     7                           
>    20489   1 sbin/pipe           10o SIGWAITINFO                             
>    20489   2 sbin/pipe           10o RECEIVE     1                           
>    20489   3...
View Full Message
Attachment: Text io-display.core.gz 309.3 KB