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

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

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

ソリューションへジャンプ
1,968件の閲覧回数
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.

ラベル(5)
0 件の賞賛
返信
1 解決策
1,635件の閲覧回数
alexeinomazov
Contributor II

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

元の投稿で解決策を見る

0 件の賞賛
返信
3 返答(返信)
1,636件の閲覧回数
alexeinomazov
Contributor II

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

0 件の賞賛
返信
1,635件の閲覧回数
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,635件の閲覧回数
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 件の賞賛
返信