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

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

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

跳至解决方案
1,483 次查看
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 项奖励
1 解答
1,150 次查看
alexeinomazov
Contributor II

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

在原帖中查看解决方案

0 项奖励
3 回复数
1,151 次查看
alexeinomazov
Contributor II

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

0 项奖励
1,150 次查看
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 项奖励
1,150 次查看
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 项奖励