FIFO vs RR scheduling

Hi all,

We have an application with a constant number of threads – likely 10 or so, 1 for each “module” and we intend to set each module’s priority explicitly. We also intend not to duplicate any priority levels. Thus it should become obvious that both FIFO and Round-Robin scheduling will act the same (no preemption until a higher priority thread is ready – there’s no timeslices to give out since no two thread priorities are the same).

So I have a question: Will using FIFO scheduling improve performance at all? Right now we are intending to use Round-Robin scheduling just in case sometime in the future we need to use the same priority for multiple threads, but if FIFO scheduling would give us some sort of benefit, that would be our optimal solution.

A fairly simple question, it was just something that had come up that I don’t quite know how to approach directly. I realize the performance benefit might not be much, but if we’re not losing anything, then why not?

Thanks for any pointers,
– Matthew P. Del Buono

Never tested it down the the nanoseconds but I wouldnt expect any difference. That being said, I thing FIFO is to be avoided because if rely on, it will break a design if its run on a multi-core system.