priority inversion regarding workqueues?

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

 



Hello,

i think I noticed a priority inversion regarding workqueues. I have a high-
prio task (SCHED_FIFO prio 69) that reads a file in sysfs which actually 
starts a SPI transfer (4 Bytes). I already boosted (manually) the IRQ thread 
to SCHED_FIFO prio 96 and also the workqueue (imx35-cspi.0) attached to the 
SPI driver (spi-imx). The execution time of my task is usually about 600us, 
but with that SPI it sometimes (well rather often though) it is of about 2ms 
or even mugh higher.
When I remove the SPI transfer from the driver behing the sysfs file the 
execution time is rather stable, so the problem lies in that SPI transfer. 
After trying some debug output I came to the conclusion i have change the 
priority of [kworker/u:1] to SCHED_FIFO prio 97 in my case. I think this 
should be done automatically. To be held: I do not know what [kworker/u:1] 
actually is. There seem to be a task for that workqueue already, so what is 
this kworker? BTW: This is a v3.4.33-rt47 kernel.

As the some low priority tasks can delay my high-prio task waiting for SPI 
transfer completion this seems like priority inversion to me.
Any opinions?

Best regards,
Alexander

PS: I tried a 3.10.39-rt40 kernel and the problem is still the same, just the 
kworker task names have changed.

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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