we were trying to get the best result with software PWM on raspberry pi with Raspbian. We made a python script which starts PWM on a GPIO pin, and observed the results with the oscilloscope.
It didn't do well, the delay wasn't acceptable.
After that we set the realtime priority of our software PWM process to 99 and changed the scheduling to real time round robin, anf later to fifo (1865 is the process pid).
sudo chrt -f -p 99 1865 sudo chrt -r -p 99 1865
It acted the same as before the priority change.
ALL the other processes were run with nonrealtime priorities. However, there were around 3000 interrupts per second going on from the timer and USB.
In this question the answer stated:
... the vanilla kernel handles real time priorities, which gives them higher priority than normal tasks, and those tasks will generally run until they voluntarily yield the CPU
Any ideas why the change of priority didn't have a visible efect? Do real time priorities influence what will happen with the process on interrupts?