[SOLVED] Linux KGSL driver deadlock within ioctl() routine on i.mx53

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

[SOLVED] Linux KGSL driver deadlock within ioctl() routine on i.mx53

Jump to solution
1,470 Views
alexeinomazov
Contributor II

Hello,

I am using i.mx 53 board with linux kernel 2.6.35.

I use Qt 5.3.2 over Linux X11.

I experience severe system failure when executing very simple Qt application.

User space:

Qt / QML application of texts and images (contains alpha blending) i get whole system stuck including serial and ethernet SSH services.

Kernel level scenario within ioctl():

      1.  ioctl(): case IOCTL_KGSL_CMDSTREAM_WAITTIMESTAMP executed with failure return status -1,  while hanging for 20 sec.

           Stucks for 20 sec within  kgsl_cmdstream_waittimestamp() on "status = device->ftbl.device_waittimestamp(device, timestamp, timeout)"

     While timeout = -1. Then, returns with status = -1.

2.  ioctl(): case IOCTL_KGSL_CMDSTREAM_ISSUEIBCMDS executed successfully.

      3.  Ioctl()::IOCTL_KGSL_CMDSTREAM_READTIMESTAMP execution causes deadlock.

           Deadlock within kgsl_cmdstream_readtimestamp(): hangs on GSL_API_MUTEX_LOCK() execution.

System Consequences:

1. Serial and Ethernet SSH services becomes unavailable

2. Qt application becomes CPU consuming zombie.

3. [events/0]  process becomes high CPU consuming. Actually it become such at beginning of 20 sec period of

Ioctl()::IOCTL_KGSL_CMDSTREAM_WAITTIMESTAMP execution.

I would be glad to receive explanation of the BUG both on user and kernel space and how to avoid it.

Thanks a lot for any help.

0 Kudos
1 Solution
1,137 Views
alexeinomazov
Contributor II

Moving to Yocto and updating Qt to 5.4.1 solves the problem.

View solution in original post

0 Kudos
3 Replies
1,138 Views
alexeinomazov
Contributor II

Moving to Yocto and updating Qt to 5.4.1 solves the problem.

0 Kudos
1,137 Views
igorpadykov
NXP Employee
NXP Employee

Hi Alexei

I would suggest to post this to meta-fsl-arm mailing list, so that someone familiar with

similar problems could try to assist you

https://lists.yoctoproject.org/listinfo/meta-freescale

.

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos
1,137 Views
alexeinomazov
Contributor II

Dear Igor,

Many thanks for your reply.

Unfortunately, i am using LTIB and not Yocto.

It would be greatful if you could give me some direction to find out root cause of the problem in user space, within Qt application.

Specifically, i would like to understand Ioctl()::IOCTL_KGSL_CMDSTREAM_WAITTIMESTAMP call function and why application could call for it.

It seems there is no call for Ioctl()::IOCTL_KGSL_CMDSTREAM_WAITTIMESTAMP within properly working application.

Thanks,

Alexei.

0 Kudos