Re: intel j1900 and i915 realtime problems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Il 22/05/2019 14:10, Stéphane Ancelot ha scritto:
Hi,

I have got a problem with a celeron j1900 platform and i915 driver.

I have 3 realtime tasks that are launched sequentially.

task1 is clocked periodically at 3ms.

task1 wakes up task2 and takes 2 wakes up task 3 using priority scheduling (and SCHED_FIFO mechanism).

everything works well, until I am using graphic applications with activity (hide/show gui programs...,widgets creation /refresh etc).

The task1 always start periodically each 3ms, but the other threads execution time are delayed.

I mean normally, the whole computing processing timing (task1+task2+task3) takes normally around 800us time execution.

When I stress the graphic pages, This time becomes up to 1.6ms.

The 3 tasks are isolated on a cpu. I don't think the problem is involved by the CPU, but more by i915 driver and memory.

I have not managed to identify the right reason with perf utility.

One thing I am sure :

if I run the same gui pages through an ssh shell, the problem has not appeared. realtime is not "broken"

I know that the intel driver is involved.

I would need some help to identify the right problem and for finding solutions.ideas.

Regards,


What priorities you have given to your RT tasks?

I have experienced that running on an isolated CPU is not enough to ensure that the scheduling of your tasks is not influenced by other activities. In order to have my RT tasks running properly, I've been forced not only to set policy to SCHED_FIFO, but also to set a priority as high as possible, sort of:

      mysched.sched_priority = 99;
        if( sched_setscheduler( 0, policy, &mysched ) == -1 ) {
	......

for the first task, and slghtly lower priorities to the others.

Then with *top *you may see where are positioned your tasks in the scheduler priority.

Here's a snapshot of Top output (sorted by priority), with my 15 RT tasks being, in order of priority, /ymain/ to /erhndl/. Very little has higher priority, and all the rest has lower. This setup for me is insensitive to CPU graphic activities.



Of course if in your case the i915 driver happens to have a higher priority than the one you can manage to obtain programmatically for your tasks, then you're out of luck.

Hope that it helps,

Giuliano


--
Do not do to others as you would have them do to you.They might have different tastes.




[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux