Priority inversion when using MTD

Sekhar Nori nori.sekhar at gmail.com
Thu May 17 09:20:34 EDT 2007


Hi,

I have a high priority SCHED_FIFO task which runs out of a squashfs file system.
When this process needs to fetch a page from the flash (due to demand paging),
it is sometimes made to wait for another low priority SCHED_NORMAL
task which is doing an erase on some other mtd partition.

This helps other middle priority processes have a free run causing a
priority inversion issue.

The get_chip function in cfi_cmdset_0001.c uses a per chip wait queue
for all processes which need to wait for chip access.

Is there any way to avoid this scenario? Any help/pointers would be appreciated.

Thanks,
Sekhar Nori.




More information about the linux-mtd mailing list